Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用OpenXML创建Excel文件而不创建本地文件?_C#_Excel_Openxml_Openxml Sdk - Fatal编程技术网

C# 如何使用OpenXML创建Excel文件而不创建本地文件?

C# 如何使用OpenXML创建Excel文件而不创建本地文件?,c#,excel,openxml,openxml-sdk,C#,Excel,Openxml,Openxml Sdk,是否可以在不创建本地文件的情况下使用OpenXMLSDK创建和编辑excel文档 根据文档,Create方法需要一个filepath,它创建文件的本地副本 SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook); 我在这里指的是MSDN文章: 我的要求是创建该文件,并且应该通过浏览器单击按钮下载该文件 有什么建议吗?您可以使

是否可以在不创建本地文件的情况下使用OpenXMLSDK创建和编辑excel文档

根据文档,
Create
方法需要一个
filepath
,它创建文件的本地副本

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
我在这里指的是MSDN文章:

我的要求是创建该文件,并且应该通过浏览器单击按钮下载该文件


有什么建议吗?

您可以使用的重载接受
并将
内存流
传递给它:

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");

请注意,根据,您不需要处理流,因为
FileStreamResult
类将为您处理流。

添加另一个答案,因为我花了太多时间搜索此答案:另一种将电子表格文档保存到流的方法是调用


它的好处是,即使您是从不想保存到的文件或流中创建文档,也可以保存到流中。

这仍然会将数据缓冲到内存中。我发现此选项可以使用只写不可查找的流创建excel文件: