ローカルファイルを作成せずにOpenXML SDKを使用してExcelドキュメントを作成および編集することは可能ですか?
ドキュメントのとおり、Create
メソッドはfilepath
を要求し、ファイルのローカルコピーを作成します。
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
ここでMSDNの記事を参照しています: https://msdn.Microsoft.com/en-us/library/office/ff478153.aspx
私の要件はファイルを作成することであり、ボタンをクリックするとブラウザによってダウンロードされます。
なにか提案を?
SpreadsheetDocument.Create
はStream
を受け取り、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");
このStackOverflowの質問 のように、FileStreamResult
クラスによってストリームが破棄されるため、ストリームを破棄する必要はありません。