2012-09-12 2 views
1

Я пытаюсь создать файл excel и сделать его доступным для загрузки. Но у меня есть некоторые проблемы с частью загрузки.Чтение потока памяти

Я использую EPPlus для создания xml-файла. У меня это работает. Но только местные. Я не уверен, как принудительно загрузить файл.

Это мой код:

public Stream GetXlsxDocument(IQueryable data) 
{ 
    const string sheetName = "Sheet1"; 
    var localFile = new FileInfo(@"C:\test2.xlsx"); 
    var file = new FileInfo("test2.xlsx"); 
    // Used for local creation 
    //ExcelPackage p = new ExcelPackage(); 
    MemoryStream stream = new MemoryStream(); 
    using (ExcelPackage p = new ExcelPackage(stream)) 
    { 
     p.Workbook.Worksheets.Add("Sheet1"); 
     ExcelWorksheet ws = p.Workbook.Worksheets[1]; 
     ws.Name = sheetName; 
     ws.Cells.Style.Font.Size = 11; 
     ws.Cells.Style.Font.Name = "Calibri"; 
     ws.SetValue(1, 1, "aaa"); // Test data 
     // Used for local creation 
     //p.SaveAs(localFile); 
     p.SaveAs(stream); 
    } 
    return stream; 
} 

Как я уже говорил ранее. Создание файла xlsx локально на моем C: \ диске работает. Но как я могу заставить загрузить созданный файл xlsx?

Прямо сейчас, предоставляя мне файл xlsx из 0 байтов. Мне нужно будет вернуть поток, который не пуст. Любая идея, как я могу это сделать .. ??

+0

Я думаю, что есть какая-то отсутствует информация здесь. Вы скажете «скачать», но является ли это обработчиком метода для HTTP-запроса? Вы возвращаете поток (не очень хорошая идея BTW), но кому? –

ответ

1

перемотать его:

stream.Position = 0; 
return stream; 
+0

Спасибо, это все, что я должен был сделать! – Vivendi

Смежные вопросы