Câu hỏi Làm thế nào để tạo tệp Excel bằng OpenXML mà không cần tạo tệp cục bộ?


Có thể tạo và chỉnh sửa tài liệu excel bằng SDK OpenXML mà không cần tạo tệp cục bộ không?

Theo tài liệu Create phương pháp yêu cầu cho một filepath, tạo bản sao cục bộ của tệp.

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

Tôi đang giới thiệu bài viết MSDN ở đây: https://msdn.microsoft.com/en-us/library/office/ff478153.aspx

Yêu cầu của tôi là tạo tệp và tệp sẽ được trình duyệt tải xuống khi nhấp vào nút.

Bất kì lời đề nghị nào?


12
2018-04-27 04:59


gốc




Các câu trả lời:


Bạn có thể sử dụng quá tải SpreadsheetDocument.Create mất một Stream và vượt qua nó một 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");

Lưu ý rằng theo câu hỏi StackOverflow này bạn không cần phải vứt bỏ Luồng vì nó sẽ được thực hiện cho bạn bởi FileStreamResult lớp học.


22
2018-04-29 16:58