我正在使用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 回答
您可以使用Office 2003互操作重新编译,虽然这只是.NET 1.1和(我认为)只能通过Office 2003安装程序获得 - 在每个应用程序下查找“.NET自动化支持”或类似内容 . 我已经看到使用为.NET 1.1构建的代码的问题,但是,特别是构造函数失败 - 但完全可重复,所以如果它工作,那么没有问题 .
您可以直接使用Excel COM对象 . 然后,结果应适用于Excel 7及更高版本 . 函数签名大致相同,但您现在需要将所有枚举转换为整数以传递到函数中 .
如果您只是使用Excel创建一个简单的电子表格(或相对简单的电子表格),您可以完全跳过Excel而use one of these libraries来生成电子表格 .