![](/img/trans.png)
[英]In C# Excel Interop whats Difference between new Excel.Workbook() and default(Excel.Workbook)
[英]ReportINI.xls message when create new Excel.Workbook with Microsoft.Office.Interop.Excel in C#
我在 c# 中遇到 Microsoft.Office.Interop.Excel 問題。
當我創建一個新的 Excel.Workbook 時:
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"D:\...\...");
出現來自excel的以下消息:
無法找到 ReportINI 表。 請確保 ReportINI.xls 位於 -office- 程序的 -xlstart- 子目錄中。
我已經嘗試禁用 excel 消息或禁用 excel 表中的宏,但我找不到解決方案......
附言。 我使用 Visual Studio 2010 和 Office 2007。當然,我是 C#、Visual Studio 和 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;
您看到這種情況的原因是您正在打開一個依賴於ReportINI.xls
文件中的輔助函數的 Calypso 報告。 如果您嘗試使用 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 事件)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.