首页 文章

Excel 12 Interop HRESULT 0x800A03EC

提问于
浏览
0

我正在使用Excel 12 Interop在C#中编写程序,当我在安装了Microsoft Office 2003的Windows xp机器上运行它时,我的程序抛出了HRESULT 0x800A03EC异常 .

我的开发机器有Windows 7 64位和Microsoft Office 2007,程序运行正常 .

我的SaveAs代码是这样的:

wbk.SaveAs(path, Excel.XlFileFormat.xlExcel8, 
                   Type.Missing, 
                   Type.Missing,
                   Type.Missing,
                   Type.Missing,
                   Excel.XlSaveAsAccessMode.xlExclusive,
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing, 
                   Type.Missing);

是否有任何可以使用的变通方法,因此我不必在运行Windows XP的计算机上安装Office 2007?

UPDATE

我已经在Windows XP计算机上安装了Office 2007和Office 2010的互操作程序集,这也是64位,我仍然收到相同的错误 . 这可能是程序集的权限问题吗?

1 回答

  • 0
    • 您可以使用Office 2003互操作重新编译,虽然这只是.NET 1.1和(我认为)只能通过Office 2003安装程序获得 - 在每个应用程序下查找“.NET自动化支持”或类似内容 . 我已经看到使用为.NET 1.1构建的代码的问题,但是,特别是构造函数失败 - 但完全可重复,所以如果它工作,那么没有问题 .

    • 您可以直接使用Excel COM对象 . 然后,结果应适用于Excel 7及更高版本 . 函数签名大致相同,但您现在需要将所有枚举转换为整数以传递到函数中 .

    • 如果您只是使用Excel创建一个简单的电子表格(或相对简单的电子表格),您可以完全跳过Excel而use one of these libraries来生成电子表格 .

相关问题