我正在编写一个后台服务应用程序,它必须自动从 Excel 2003 文件中读取数据。但无论我尝试什么,方法 OlePropertyGet() 总是在尝试从地址“00000800”读取时导致 EAccessViolation 错误。
该错误总是发生在此代码片段的最后一行,并且似乎与方法接收的参数无关:
Variant excel, workbooks;
try
{
excel = GetActiveOleObject("Excel.Application");
}
catch(...)
{
excel = CreateOleObject("Excel.Application");
}
workbooks = excel.OlePropertyGet("Workbooks");
我对此进行了一些广泛的谷歌搜索,但没有发现任何有帮助的东西,只有这个论坛帖子有人有同样的问题,但没有提供有关原因或解决方案的任何信息(有一点有点好笑作者提到他知道原因,但没有说是什么!)。
我愿意接受有关导致此问题的原因以及如何解决此问题的任何想法,以及 Excel OLE 自动化的替代方法。