簡體   English   中英

內存不足,無法創建Excel工作簿

[英]insufficient memory to create an excel workbook

我的原始代碼:

    Excel.Application xlErrorApp;
    Excel.Workbook xlErrorWorkBook;
    Excel.Worksheet xlErrorWorkSheet;
    object misValue = System.Reflection.Missing.Value;
    xlErrorApp = new Excel.Application();
    xlErrorWorkBook = xlErrorApp.Workbooks.Add(); // -> error
    xlErrorWorkSheet = (Excel.Worksheet)xlErrorWorkBook.Worksheets.get_Item(1);

第6行出現get錯誤。

錯誤信息:

由於內存或磁盤空間不足,應用程序Microsoft Excel無法打開或保存文檔。

您正在使用哪個庫?

我已經說過了,但實際上Microsoft目前不建議也不支持任何無人參與的非交互式客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office應用程序自動化。在此環境中運行Office時,可能會表現出不穩定的行為和/或死鎖。

我建議您尋找像Open Office XML這樣的免費庫,或者像Aspose這樣的免費庫。

這個怎么樣:

Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing);

來自MSDN的 Workbooks.Add()方法;

Parameters
Template
Type: System.Object

可選對象。 確定如何創建新工作簿。 如果此參數是指定現有Microsoft Excel文件名稱的字符串,則會使用指定文件作為模板來創建新工作簿。 如果此參數為常量,則新工作簿將包含指定類型的單個工作表。 可以是以下XlWBATemplate常數之一:xlWBATChart,xlWBATExcel4IntlMacroSheet,xlWBATExcel4MacroSheet或xlWBATWorksheet。 如果省略此參數,Microsoft Excel將創建一個具有許多空白工作表的新工作簿(工作表數由SheetsInNewWorkbook屬性設置)。

如果您嘗試創建新的工作簿,請嘗試執行以下操作;

Workbook newWorkbook = this.Application.Workbooks.Add(missing);

抱歉,我之前找不到該鏈接。 我使用了EPPlus支持。 http://epplus.codeplex.com

感謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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