」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 使用AJAX下載MVC表單生成的Excel文件方法

使用AJAX下載MVC表單生成的Excel文件方法

發佈於2025-04-19
瀏覽:260

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

在MVC中通過AJAX下載Excel文件

處理MVC中的大型表單時,可能需要生成一個Excel文件,其中包含表單特定子集的數據,而不會影響其餘部分。 AJAX通過允許您向服務器發出部分請求來為此提供解決方案。

無法直接下載Excel文件

不幸的是,您無法直接通過AJAX返回要下載的文件。相反,請探索使用AJAX將相關數據發佈到服務器的替代方法。

服務器端文件生成和響應

在您的服務器上,您可以使用服務器端代碼生成Excel文件。為此,請考慮使用EPPlus或NPOI之類的庫。然後,您可以將已創建文件的路徑或文件名作為返回值傳遞回您的AJAX調用。

重定向到文件下載

在客戶端的JavaScript中,您可以使用window.location = '/Reports/Download?file=' returnValue將JavaScript窗口位置設置為文件的URL,從而提示瀏覽器下載它。

無縫的用戶體驗

這種方法提供了無縫的用戶體驗,因為文件下載操作不會離開源頁面。

AJAX調用示例

以下是實現此目的的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