程序中,和Excel有关的代码如下          
                 Excel.Application myExcel;
Excel._Workbook myWB;
Excel._Worksheet myWS = null;
Excel.Range myRange = null;
string filePath = Server.MapPath("\\excel\\");

string strP ="liwen.xls";
FileInfo file = new FileInfo(strP);
try
{
myExcel = new Excel.Application();
         myExcel.Visible =true;
myWB = myExcel.Workbooks.Add(true);
myWS = (Excel._Worksheet)myWB.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
myWS = (Excel._Worksheet)myWB.Sheets[1];
myExcel.Cells[ 1 , 1 ] = "第一行第一列" ; 
myExcel.Cells[ 1 , 2 ] = "第一行第二列" ;
myWB.SaveAs(file.FullName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

}
catch(Exception e1)
{
Response.Write("初始化Excel文件出错,错误信息如下: "+e1.ToString());
return;
}
 
myWB.Close(false, Type.Missing, Type.Missing);
myExcel.Workbooks.Close();
myExcel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(myRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myWS);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myWB);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
myWS = null;
myWB = null;
myExcel = null;
运行完成后,系统出错信息如下:初始化Excel文件出错,错误信息如下: System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Excel 不能访问文件“C:\WINNT\system32”。 可能原因有: * 指定的文档名称或路径不存在。 * 所要打开的文档被其他程序占用。切换到相应程序,关闭文档后再试。 * 所要保存的工作簿的名称与另一个只读文档同名。请用其他名称保存文档。 at Excel.WorkbookClass.SaveAs(Object Filename, Object FileFormat, Object Password, Object WriteResPassword, Object ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout) at WebApplication1.goonjiaojie1.Button4_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication1\goonjiaojie.aspx.cs:line 115 请问大虾该如何解决,急急急!!!!!!!!!

解决方案 »

  1.   

    把Excel文件所在的文件夹的安全属性设置为IIS可以访问,就是点击该文件夹,选属性=-安全,然后就在权限里就找到了,一般只有User一个用户,你可以把系统中的ASPNET用户加进去,在Win2003里好像不叫这个,2003的是IIS6,反正这些问题在不同的操作系统和环境有所不同,完成这步应该可以了。
    程序好像还有个问题,就是把Office组件生成的对象清除后,最好执行一下垃圾回收操作。GC.Collect();