How to create Excel file using OpenXML without creating a local file?

后端 未结 2 1377
面向向阳花
面向向阳花 2020-12-03 05:07

Is it possible to create and edit an excel document using OpenXML SDK without creating a local file?

As per the documentation the Create method demands

相关标签:
2条回答
  • 2020-12-03 05:45

    You could use the overload of SpreadsheetDocument.Create that takes a Stream and pass it a MemoryStream:

    MemoryStream memoryStream = new MemoryStream();
    SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(memoryStream, SpreadsheetDocumentType.Workbook);
    
    //add the excel contents...
    
    //reset the position to the start of the stream
    memoryStream.Seek(0, SeekOrigin.Begin);
    
    return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    

    Note that as per this StackOverflow question you don't need to dispose the Stream as it will be done for you by the FileStreamResult class.

    0 讨论(0)
  • 2020-12-03 05:59

    Adding another answer as I spent way too much time searching for this: Another way to save a SpreadsheetDocument to a stream is by calling SpreadsheetDocument.Clone(Stream s)

    It has the benefit of letting you save to a stream even if you created the document from a file or a stream you don't want to save to.

    0 讨论(0)
提交回复
热议问题