簡體   English   中英

在 C# 中使用 Microsoft.Office.Interop.Excel 創建新 Excel.Workbook 時的 ReportINI.xls 消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM