我正在尝试打开Excel 2000文件。当我尝试使用Excel 2007时它工作正常,但当我在开发服务器上检查它时,它无法正常工作。打开excel文件时出现错误。我使用以下代码。
// file
string sFile = @"c:\testfile.xls";
// create excel file
Excel.Application oExcel;
Excel.Workbook oBook;
Excel.Worksheet oSheet;
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
oExcel = new Excel.ApplicationClass();
oBook = oExcel.Workbooks.Add(Type.Missing);
oBook = oExcel.Workbooks.Open(sFile, 0, false, 5, "", "", true,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false,
0, true, true, false);
oSheet = (Excel.Worksheet)oBook.Worksheets.get_Item(2);
oSheet.Cells[2, 1] = "Successfully Created";
oSheet.Cells[2, 2] = "Sample excel updated";
oExcel.DisplayAlerts = false;
// save & close
oBook.Close(true, sFile,false);
oExcel.Quit();
Marshal.ReleaseComObject(oExcel);
oExcel = null;
GC.Collect();
错误消息如下:
“未处理的异常:System.AccessViolationException:试图执行 读或写受保护的内存。这通常表明这一点 其他记忆是腐败的。在 Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename,Object Upda teLinks,Object ReadOnly,Object Format,Object Password,Object WriteResPasswor d,Object IgnoreReadOnlyRecommended,Object Origin, 对象分隔符,对象Edi表,对象通知,对象转换器, Object AddToMru,Object Local,Object Co rruptLoad)at TestExcel.Program.Main(String [] args)“
答案 0 :(得分:2)
不幸的是,这几乎是不可能的。你说:
但是当我在开发服务器上检查它时它无法正常工作
这有点暗示这是一项服务。如果是这种情况,那么你无能为力Microsoft Office applications are not designed to run in services。
答案 1 :(得分:0)
您的服务器是否也安装了Office 2007?在我看来,情况并非如此,这意味着您需要使用与服务器上安装的版本兼容的旧库。