2

我的原始代码:

    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 行出现错误。

错误信息:

由于内存或磁盘空间不足,应用程序 Microsoft Excel 无法打开或保存文档。

4

4 回答 4

2

您使用的是哪个库?

我已经说过了,但实际上微软目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office在此环境中运行 Office 时,可能会出现不稳定的行为和/或死锁。

我建议您寻找像 Open Office XML 这样的免费库或像 Aspose 这样的非免费库。

于 2013-01-09T10:03:27.670 回答
1

这个怎么样:

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);
于 2013-01-09T10:10:01.930 回答
1

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

Parameters
Template
Type: System.Object

可选对象。确定如何创建新工作簿。如果此参数是指定现有 Microsoft Excel 文件名称的字符串,则使用指定文件作为模板创建新工作簿。如果此参数是常量,则新工作簿包含指定类型的单个工作表。可以是以下 XlWBATemplate 常量之一:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或 xlWBATWorksheet。如果省略此参数,Microsoft Excel 将创建一个带有许多空白工作表的新工作簿(工作表的数量由 SheetsInNewWorkbook 属性设置)。

如果您尝试创建新工作簿,请尝试这样;

Workbook newWorkbook = this.Application.Workbooks.Add(missing);
于 2013-01-09T10:10:19.747 回答
1

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

感谢您尝试提供帮助!

于 2013-01-09T11:34:08.820 回答