System.ComponentModel.Win32Exception: 拒绝访问。
   在 System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly)
   在 System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId)
   在 System.Diagnostics.Process.get_MainModule()
   在 ohmygod.SqlToExcel.ValueToExcel(Object Value, String ExcelColNum, String ExcelRowNum, String FilePath) 位置 e:\net\EXCEL\App_Code\ohmygod.cs:行号 49
   在 _Default.Button2_Click(Object sender, EventArgs e) 位置 e:\net\EXCEL\Default.aspx.cs:行号 76
这个是什么问题呢????

解决方案 »

  1.   

    using System; 
    using System.Collections.Generic; 
    using System.Text; 
    using System.Data; 
    using Excel;
    using System.IO;
    using System.Reflection;namespace ohmygod 

       public class SqlToExcel 
        { 
            public void ValueToExcel(object Value,string ExcelColNum,string ExcelRowNum,string FilePath) 
            { 
                object oMissing = System.Reflection.Missing.Value; 
                Excel.ApplicationClass xlApp = new Excel.ApplicationClass(); 
                try 
                { 
                    xlApp.Visible = false; 
                    xlApp.DisplayAlerts = false; 
                    Excel.Workbooks oBooks = xlApp.Workbooks; 
                    Excel._Workbook xlWorkbook = null;                 xlWorkbook = oBooks.Open(FilePath, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, 
            oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); 
                    Excel.Worksheet xlWorksheet = xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1); 
                    xlWorksheet.Activate();                 string RangeNum = ExcelColNum + ExcelRowNum; 
                    Excel.Range r = xlWorksheet.get_Range(RangeNum, RangeNum);                 r.Value2 = Value;                 r.EntireColumn.AutoFit();                 xlWorkbook.Save(); 
      
                } 
                catch 
                { 
                    throw; 
                } 
                finally 
                { 
                    xlApp.Quit(); 
                    foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) 
                    { 
                        if (p.MainModule.ModuleName == "EXCEL.EXE") 
                        { 
                                p.Kill(); 
                                break; 
                        } 
                    } 
                } 
            }     } 
    } 这个是使用的方法
      

  2.   

    确定是这段代码吗? 我感觉好像没什么问题!这几天我也在看关于Excel的报表的问题!
      

  3.   

    已经 搞定了。。是kill进程那里的问题吗比的写文件能写半个小时!