Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert excel workbook to byte[]

I have an "excel library" workbook and want to convert it to a byte[] so I could return the data with the File method exist in asp.net mvc controller.
There are "Save" and "SaveToStream" method, but no convert to byte[].

How can I return the excel file without saving it in server before?

like image 983
gdoron is supporting Monica Avatar asked Nov 20 '11 13:11

gdoron is supporting Monica


2 Answers

If you have a SaveToStream you could pass in a MemoryStream into that method. Then, once all the bytes are written call ToArray() on the memory stream, which should give you a byte array.

like image 137
blowdart Avatar answered Oct 18 '22 19:10

blowdart


Do you need to convert it to a byte[]? File can also return a stream.

Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");
worksheet.Cells[0, 1] = new Cell(9999999);

workbook.Worksheets.Add(worksheet);

MemoryStream m = new MemoryStream();
workbook.SaveToStream(m);

return File(m, "application/vnd.ms-excel");
like image 28
Dallas Avatar answered Oct 18 '22 19:10

Dallas