قم بتنزيل ملف Excel من خلال Ajax في MVC
]عند معالجة أشكال كبيرة في MVC ، قد تحتاج إلى إنشاء ملف Excel يحتوي على بيانات لمجموعة فرعية محددة من النموذج دون التأثير على الباقي. يوفر Ajax حلاً لهذا من خلال السماح لك بتقديم طلبات جزئية إلى الخادم.
لا يمكن تنزيل ملف Excel مباشرة
لسوء الحظ ، لا يمكنك إرجاع الملف الذي تريد تنزيله مباشرة عبر Ajax. بدلاً من ذلك ، استكشف طرقًا بديلة لنشر البيانات ذات الصلة على الخادم باستخدام Ajax.
توليد ملف جانب الخادم والاستجابة
]على الخادم الخاص بك ، يمكنك استخدام رمز من جانب الخادم لإنشاء ملفات Excel. للقيام بذلك ، فكر في استخدام مكتبات مثل Epplus أو NPOI. يمكنك بعد ذلك تمرير المسار أو اسم الملف للملف الذي تم إنشاؤه كقيمة الإرجاع مرة أخرى إلى مكالمة AJAX الخاصة بك.
إعادة توجيه إلى ملف تنزيل
]] في JavaScript للعميل ، يمكنك استخدام window.location = '/reports/download؟ file =' returnvalue
لتعيين موقع نافذة javaScript على عنوان URL للملف ، مما يدفع المتصفح إلى تنزيله.
تجربة مستخدم سلسة
]يوفر هذا النهج تجربة مستخدم سلسة لأن عملية تنزيل الملف لا تترك صفحة المصدر.
Ajax Call مثال
]]فيما يلي مثال على مكالمة Ajax التي تحقق هذا:
$.ajax({
type: 'POST',
url: '/Reports/ExportMyData',
data: '{ "dataprop1": "test", "dataprop2" : "test2" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (returnValue) {
window.location = '/Reports/Download?file=' returnValue;
}
});
طريقة وحدة التحكم لتنزيل الملف
قد تكون طريقة وحدة التحكم المقابلة لعملية التنزيل كما يلي:
[HttpGet]
public virtual ActionResult Download(string file)
{
string fullPath = Path.Combine(Server.MapPath("~/MyFiles"), file);
return File(fullPath, "application/vnd.ms-excel", file);
}
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3