Ich bin mir nicht sicher, was ich hier vermisse. Ich habe einen Knopf, den ich benutze Javascript, um einen Controller aufzurufen. Dieser Controller sollte eine Excel-Datei erstellen und sie an den Benutzer zurückgeben, damit sie die Datei herunterladen/speichern kann. Ich habe ein paar verschiedene Methoden ausprobiert, aber es gelingt mir nicht, es zum Laufen zu bringen. Hier ist meine Javascript-Seite:.NET C# Export nach Excel über JS Post mit ExcelPackage
function exportList() {
var val = $("#team-dropdown").val();
const date = new Date().toISOString();
const param = {
"Date": date,
"GroupID": 1
}
$.ajax({
url: "@Url.Action("ExportToExcel", "Home")",
type: "POST",
data: param
});
}
Hier ist meine Server-Seite:
public FileResult ExportToExcel(DateTime date, int groupID)
{
Load l = new Load();
List<Load> loadList = l.GetLoadsForGroup(date, groupID);
var fileDownloadName = "fileName.xlsx";
var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
ExcelPackage pck = new ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("New workbook");
ws.View.ShowGridLines = true;
ws.DefaultColWidth = 25;
ws.Cells[1, 1].Value = "Order #";
var currRow = 2;
foreach (var load in loadList)
{
ws.Cells[2, 2].Value = load.LoadNumber;
}
var fs = new MemoryStream();
pck.SaveAs(fs);
fs.Position = 0;
var fsr = new FileStreamResult(fs, contentType);
fsr.FileDownloadName = fileDownloadName;
return (fsr);
}
nicht sicher, was der beste Weg, dies zu tun. Wenn es einen besseren Weg gibt, zögern Sie nicht, es auszuarbeiten.
Hallo, ich habe 'ActionResult' anstelle von FileResult und die Ausgabe, die ich gesendet habe, indem: 'Response.Clear(); Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; Response.AddHeader ("Inhaltsdisposition", "Anhang; Dateiname = \" "+ Dateiname +" \ ""); Response.BinaryWrite (Daten); Response.Flush(); Response.End(); ' –
Hallo wieder. Ich habe einfach Ihren Code benutzt und konnte die Arbeitsmappe mit einem HTML-Formular erstellen. Wie folgt: '
' ein –@VagnerLucas versuchen Verstanden zu arbeiten. Danke für Ihre Hilfe! – James