Używam więc eleganckiej biblioteki EPPlus do napisania pliku Excela i wysłania go użytkownikowi do pobrania. W przypadku poniższej metody używam tylko niektórych danych testowych, aby zminimalizować kod, a następnie dodam kod, którego używam do połączenia się z bazą danych później. Teraz mogę pobrać plik w porządku, ale kiedy idę do otwarcia pliku, Excel skarży się, że nie jest to prawidłowy plik i może być uszkodzony. Kiedy patrzę na plik, mówi się, że ma on 0 KB. Moje pytanie brzmi: gdzie się mylę? Zakładam, że jest z MemoryStream. Nie robiłem jeszcze wiele pracy ze strumieniami, więc nie jestem do końca pewny, czego tu użyć. Każda pomoc będzie doceniona!ASP.NET MVC EPPlus Pobierz plik Excel
[Authorize]
public ActionResult Download_PERS936AB()
{
ExcelPackage pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("Sample1");
ws.Cells["A1"].Value = "Sample 1";
ws.Cells["A1"].Style.Font.Bold = true;
var shape = ws.Drawings.AddShape("Shape1", eShapeStyle.Rect);
shape.SetPosition(50, 200);
shape.SetSize(200, 100);
shape.Text = "Sample 1 text text text";
var memorystream = new MemoryStream();
pck.SaveAs(memorystream);
return new FileStreamResult(memorystream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "PERS936AB.xlsx" };
}
Naprawiono to naprawdę dobrze, ustawiając pozycję. Dzięki! – Chiggins