簡體   English   中英

jQuery / DataTables - 導出到Excel

[英]jQuery / DataTables - Export to Excel

我正在創建一個MVC 5 / Bootstrap應用程序。 我需要允許用戶將表數據發送到Excel。 我知道TableTools可以做到這一點。 但是,除了導出到Excel之外,我不想將DataTables / TableTools用於其他任何事情。 我不想用它來做任何表格樣式。 我正在使用Bootstrap。

那么,有沒有一種方法可以將DataTables / TableTools用於嚴格的目的? 而且我還希望能夠在我的表單上放置一個按鈕(不一定是默認的TableTools按鈕),並且在單擊時,執行Excel導出。 這可能嗎?

我想說很可能不是因為TableTools插件是為了操作DataTables對象而設計的。 我個人不會花時間調查這個,如果不想使用DataTables,而是我將分享我如何為ASP.NET MVC 5 / Bootstrap網站實現類似功能的概述。

只需在我的視圖上放置一個按鈕:

<button id="export" type="button">Export</button>

在我的視圖的腳本部分,我為click事件添加了一個函數(在這個例子中,我傳入了我的DataTable的附加參數):

$("#export").click(function (e) {
var myTableSettings = dataTable.dataTableSettings[0];

$.ajax(
    {
        url: "GenerateCsv",
        type: "POST",
        data: myTableSettings.oAjaxData,
        success: function (data) {
            document.location.href = 'DownloadCsv';
        }
        error: function () {}               
    });
});

由於ajax調用不處理標題以啟動文件下載,因此需要采用兩步方法:首先是ActionResult來生成文件('GenerateCsv')和FileStreamResult來返回文件('DownloadCsv')。

在這種情況下,我使用LinqToCsvhttp://www.codeproject.com/Articles/25133/LINQ-to-CSV-library )生成CSV文件。 我提到了CSV格式,因為TableTools創建了一個由Excel識別的CSV文件而不是真正的Excel文件( http://datatables.net/extensions/tabletools/buttons )。

當我最初研究TableTools時,我遇到了一個關於如何在使用Download插件進行全表導出時重新綁定自定義參數的問題,因此發現這種方法更可取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM