我正在使用OpenXML SDK.
OpenXML SDK创建了一个名为CreatePackage的方法:
public void CreatePackage(string filePath)
{
using (SpreadsheetDocument package = SpreadsheetDocument.Create(filePath, SpreadsheetDocumentType.Workbook))
{
CreateParts(package);
}
}
Run Code Online (Sandbox Code Playgroud)
我从我的程序中调用它如下,它将创建Excel文件到给定的路径:
gc.CreatePackage(excelFilePath);
Process.Start(_excelFilePath);
Run Code Online (Sandbox Code Playgroud)
我不知道如何调整代码,以便它返回一个Stream,显示Excel文件与在磁盘上创建文件.
根据文档,SpreadsheetDocument.Create有多个重载,其中之一需要Stream.
所以将您的代码更改为:
public void CreatePackage(Stream stream)
{
using (SpreadsheetDocument package = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook))
{
CreateParts(package);
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用任何有效的调用它Stream,例如:
using(var memoryStream = new MemoryStream())
{
CreatePackage(memoryStream);
// do something with memoryStream
}
Run Code Online (Sandbox Code Playgroud)