2015-04-27 31 views
9

È possibile creare e modificare un documento Excel utilizzando OpenXML SDK senza creare un file locale?Come creare un file Excel usando OpenXML senza creare un file locale?

Come per la documentazione, il metodo "Crea" richiede un percorso file, che crea una copia locale del file.

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook); 

mi riferisco l'articolo di MSDN qui: https://msdn.microsoft.com/en-us/library/office/ff478153.aspx

La mia esigenza è quella di creare il file, e dovrebbe essere scaricati dal browser facendo clic su un pulsante.

Qualche suggerimento?

risposta

18

Si potrebbe utilizzare il sovraccarico di SpreadsheetDocument.Create che prende un Stream e passargli un 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"); 

Si noti che secondo this StackOverflow question non è necessario smaltire il flusso, come sarà fatto per voi da la classe FileStreamResult.

+0

Grazie petelidi. Ha funzionato –