繁体   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