我正在使用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?
更新
我已经在Windows XP计算机上安装了Office 2007和Office 2010的互操作程序集,这也是64位,我仍然收到相同的错误。这可能是程序集的权限问题吗?
答案 0 :(得分:0)
您可以使用Office 2003互操作重新编译,虽然这只是.NET 1.1和(我认为)只能通过Office 2003安装程序获得 - 在每个应用程序下查找“.NET自动化支持”或类似内容。我在2+中使用为.NET 1.1构建的代码时遇到了问题,但是,特别是构造函数失败 - 但是完全可重复,所以如果它工作则没有问题。
您可以直接使用Excel COM对象。然后,结果应适用于Excel 7及更高版本。函数签名大致相同,但您现在需要将所有枚举转换为整数以传递到函数中。
如果您只是使用Excel创建一个简单的电子表格(或相对简单的电子表格),您可以完全跳过Excel并use one of these libraries来生成电子表格。