Est-il possible de créer et de modifier un document Excel à l'aide d'OpenXML SDK sans créer de fichier local?
Selon la documentation, la méthode Create
exige un filepath
, qui crée une copie locale du fichier.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
Je fais référence à l'article MSDN ici: https://msdn.Microsoft.com/en-us/library/office/ff478153.aspx
Mon exigence est de créer le fichier, et il doit être téléchargé par le navigateur en cliquant sur un bouton.
Toute suggestion?
Vous pouvez utiliser la surcharge de SpreadsheetDocument.Create
qui prend un Stream
et lui passe 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");
Notez que selon cette question StackOverflow vous n'avez pas besoin de supprimer le Stream car il sera fait pour vous par la classe FileStreamResult
.