C# 在C中使用Microsoft.Office.Interop.Excel创建新的Excel.工作簿时显示ReportINI.xls消息#

C# 在C中使用Microsoft.Office.Interop.Excel创建新的Excel.工作簿时显示ReportINI.xls消息#,c#,excel,visual-studio-2010,office-interop,C#,Excel,Visual Studio 2010,Office Interop,我对c#中的Microsoft.Office.Interop.Excel有问题 创建新的Excel.工作簿时: Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\..."); 从excel中显示以下消息: 找不到ReportINI工作表。请确保ReportINI.xls位于-office-程序的-xlstart-子目录中 我已经

我对c#中的Microsoft.Office.Interop.Excel有问题

创建新的Excel.工作簿时:

Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\...");
从excel中显示以下消息:

找不到ReportINI工作表。请确保ReportINI.xls位于-office-程序的-xlstart-子目录中

我已经尝试禁用excel消息或excel工作表中的宏,但找不到解决方案

另外,我使用VisualStudio2010和Office2007。当然,我对C#、VisualStudio和Microsoft环境都是新手

有人知道我如何解决这个问题吗


谢谢

原因可能直接是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;

原因可能直接是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;

您看到这种情况的原因是您正在打开一个Calypso报告,该报告依赖于
ReportINI.xls
文件中的帮助函数。如果您试图使用Calypso自动报告生成器,则需要先找到该文件并打开它,然后再打开报告

如果您不想使用Calypso自动报告生成器功能,那么应该从正在修改的Calypso报告文件中删除所有VBA代码。它有一些运行在open上的函数,这些函数指向
ReportINI.xls
文件

或者只抑制在open上运行的宏,如下所示:

Excel.Application xlApp = new Excel.Application();
xlApp.EnableEvents = False
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\...");
xlApp.EnableEvents = True

(在打开期间禁用事件将抑制工作簿的打开事件)

您看到这一情况的原因是您正在打开一个Calypso报表,该报表依赖于在
ReportINI.xls
文件中找到的助手函数。如果您试图使用Calypso自动报告生成器,则需要先找到该文件并打开它,然后再打开报告

如果您不想使用Calypso自动报告生成器功能,那么应该从正在修改的Calypso报告文件中删除所有VBA代码。它有一些运行在open上的函数,这些函数指向
ReportINI.xls
文件

或者只抑制在open上运行的宏,如下所示:

Excel.Application xlApp = new Excel.Application();
xlApp.EnableEvents = False
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\...");
xlApp.EnableEvents = True

(在打开期间禁用事件将抑制工作簿\u打开事件)

实际上,我已经使用OleDb解决了问题,但使用互操作解决了问题。实际上,我使用OleDb解决了问题,但使用互操作解决了问题。