"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > طريقة تنزيل ملف Excel الذي تم إنشاؤه بواسطة نموذج MVC باستخدام Ajax

طريقة تنزيل ملف Excel الذي تم إنشاؤه بواسطة نموذج MVC باستخدام Ajax

نشر في 2025-04-19
تصفح:382

How to Download an Excel File Generated from an MVC Form using AJAX?

قم بتنزيل ملف 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