我有一个正在服务器上运行的程序,每天从一个网站下载一个 .xls 文件,然后将其转换为 .csv 文件以正确解析并添加到数据库中。
当我在本地 PC 上运行时,一切都很正常,在服务器上大部分时间也可以正常工作,但可能每周会出现一两次以下异常:
异常情况如下: System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
以下是代码片段:
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook wbWorkbook = app.Workbooks.Open(_dir + _fileNameTrim + ".xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wbWorkbook.SaveAs(_dir + _fileNameTrim + ".csv", Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wbWorkbook.Close(false, "", true);
我在网上看到了很多东西,很多解决方案都提到安全设置,但我认为这不是我的情况,否则它根本就不会工作。人们还提到文件可能损坏。我真的不确定。非常感谢任何帮助。
更新:
服务器上安装了Excel,并且在尝试打开文件时出现异常。