
ارسال jquery ajax ریوکست به اکشن mvc و شروع به دانلود فایل اکسل ایجاد شده
آخرین بروز رسانی: 1401/03/16
public async Task<IActionResult> OnPostUploadFileAsync()
{
var result = new List<ResultModel>();
using var resultPackage = new ExcelPackage();
var sheet = resultPackage.Workbook.Worksheets.Add("Test");
for (var i = 0; i < result.Count; i++)
{
sheet.Cells[i + 1, 1].Value = result[i].NationalCode;
sheet.Cells[i + 1, 2].Value = result[i].Result;
}
var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
var excelData = await resultPackage.GetAsByteArrayAsync();
return File( excelData , contentType);
}
و در نهایت کد سمت کلاینت
var formData = new FormData();
formData.append("file", $('[name=xlsFile]')[0].files[0]);
formData.append('__RequestVerificationToken', $('[name = __RequestVerificationToken]').val());
$.ajax({
type: "POST",
url: "/BaseInfo/UploadFile",
data: formData,
contentType: false,
processData: false,
xhrFields: { responseType: 'blob' },
success: function(data) {
let a = document.createElement('a');
a.href = window.URL.createObjectURL(data);
a.download = 'BankInquiry.xlsx';
document.body.append(a);
a.click();
},
error: function(error) {
}
});