簡體   English   中英

如何返回流而不是寫入磁盤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM