![](/img/trans.png)
[英]How can i return several fields directly in a WCF Response object, rather than wrapped in another object?
[英]How can I return a stream rather than writing to disk?
我正在使用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);
我不知道如何調整代碼,以便它返回一個Stream,顯示Excel文件與在磁盤上創建文件。
根據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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.