我在c#中遇到了Microsoft.Office.Interop.Excel的问题。
当我创建一个新的Excel.Workbook时:
<my-app>
<!-- the loader -->
<div id="loader-container"></div>
</my-app>
显示来自excel的以下消息:
无法找到ReportINI表。请确保ReportINI.xls位于-office-程序的-xlstart-子目录中。
我已经尝试过禁用excel消息或禁用Excel工作表中的宏,但我找不到解决方案...
聚苯乙烯。我使用Visual Studio 2010和Office 2007.当然,我是C#,Visual Studio和Microsoft环境的新手。
有人知道我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
原因可能是您的excel文件宏。手动打开excel文件并释放宏时,是否会出现相同的错误?
我建议在项目中使用c#代码禁用宏。 试试这个:
Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
//On here we disabled all macros
excelApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable;
答案 1 :(得分:0)
看到这种情况的原因是,您正在打开一个Calypso报告,该报告取决于ReportINI.xls
文件中的帮助程序功能。如果您尝试使用Calypso自动报告生成器,则需要在打开报告之前先找到该文件并先将其打开。
如果您不想使用Calypso自动报告生成器功能,则应从要修改的Calypso报告文件中剥离所有VBA代码。它具有指向ReportINI.xls
文件打开的一些功能。
或者只是抑制在open上运行的宏,如下所示:
Excel.Application xlApp = new Excel.Application();
xlApp.EnableEvents = False
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\...");
xlApp.EnableEvents = True
(在打开期间禁用事件将取消Workbook_Open事件)