使用Interop在C#中打开Excel文件时出现异常

Toz*_*Toz 9 c# csv excel interop

我有一个程序在服务器上运行,每天从网站下载.xls文件,打开它然后将其转换为.csv,以便能够正确解析它并添加到数据库.

当我在我的本地PC上运行时,一切正常,它大部分时间都在服务器上工作,但也许每周一次或两次我得到这个例外:

发生异常:System.Runtime.InteropServices.COMException(0x800A03EC):来自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);
Run Code Online (Sandbox Code Playgroud)

我在线阅读了很多东西,很多解决方案都提到了安全设置,但我不认为这是我的情况,否则它根本不会起作用.人们还提到文件已损坏.我真的不确定.任何帮助将非常感激.

更新:

Excel安装在服务器上,尝试打开文件时发生异常.

小智 9

运行> dcomcnfg

这将打开组件服务并导航到控制台根\组件服务\计算机\我的电脑\ DCOM配置\ Microsoft Excel应用程序右键单击Microsoft Excel应用程序,然后选择属性

单击"标识"选项卡并选中选项.

当选择选项 - 交互式用户时,它适用于我

请试试,祝你好运!


小智 5

.Workbooks.Open(strPath, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失、 Type.Missing、Type.Missing、Microsoft.Office.Interop.Excel.XlCorruptLoad.xlExtractData);


Rav*_*via 0

你检查一下是不是权限问题?您可能正在尝试将文件保存到某个位置,而 .NET 没有写入该位置的权限。