ارسال 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) {

                }
            });

نظر دهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *