【问题标题】:C# opening Excel: Exception from HRESULT: 0x800A03ECC# 打开 Excel:HRE​​SULT 异常:0x800A03EC
【发布时间】:2016-03-18 21:31:27
【问题描述】:

在我的应用程序中,我需要打开一个现有的 Excel 文件以逐行写入/重写一些数据。

使用VS Express 2015,制作一个Windows Form App。

当我运行应用程序并单击应该打开、写入和关闭 Excel 的按钮时,我得到了这个:

未处理的类型异常 'System.Runtime.InteropServices.COMException' 发生在 WindowsFormsApplication2.exe 附加信息:来自的异常 HRESULT: 0x800A03EC

它指向代码中应该打开 Excel 文件的行。

 // Open EXCEL
       Excel.Application EXCEL = new Excel.Application();
       string path = "D:\\profily.xls";
        Excel.Workbook Wbook = EXCEL.Workbooks.Open(path , 0, false, 2, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); // THERE IS PROBLEM
      Excel.Worksheet Sheet;

【问题讨论】:

  • 路径后面的都是可选的,也许你可以通过将open命令只剥离到路径来调试,然后一个一个地添加参数。

标签: c# excel


【解决方案1】:

最可能的原因是您试图将太多数据写入xls 文件。我不知道是单个单元格的数据过多 (source) 还是整个文件的数据过多 (source)。

如果您更改为读取/写入较新的xlsx 文件格式,您应该避免这些问题。

【讨论】:

    【解决方案2】:

    重命名你的文件名D:\profily.xlsx

    这两个文件扩展名之间的主要区别在于,XLS 是在 2007 之前的 Excel 版本上创建的,而 XLSX 是在 Excel 2007 及更高版本上创建的。它们在信息存储方式的基础上也有所不同。 XLS 是二进制格式,而 XLSX 是 Open XML 格式。

    【讨论】:

    • 从 xls 更改为 xlsx 没有帮助。问题可能出在版本上,只有 1.6.0.0 但找不到 14.0.0 可供下载
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2023-04-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    相关资源
    最近更新 更多