5

我正在使用 OpenXML SDK。

OpenXML SDK 创建了一个名为 CreatePackage 的方法,如下所示:

public void CreatePackage(string filePath)
{
    using (SpreadsheetDocument package = SpreadsheetDocument.Create(filePath,               SpreadsheetDocumentType.Workbook))
    {
        CreateParts(package);
    }
}

我从我的程序中调用它,如下所示,它将创建 Excel 文件到给定路径:

gc.CreatePackage(excelFilePath);
Process.Start(_excelFilePath);

我不确定如何调整代码,使其返回一个显示 Excel 文件的流,而不是让它在磁盘上创建文件。

4

1 回答 1

2

根据文档,SpreadsheetDocument.Create有多个重载,其中一个需要Stream.

所以将您的代码更改为:

public void CreatePackage(Stream stream)
{
    using (SpreadsheetDocument package = SpreadsheetDocument.Create(stream,               SpreadsheetDocumentType.Workbook))
    {
        CreateParts(package);
    }
}

然后用任何有效的调用它Stream,例如:

using(var memoryStream = new MemoryStream())
{
   CreatePackage(memoryStream);
   // do something with memoryStream
}
于 2012-12-19T16:21:04.293 回答