[英]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')。
在這種情況下,我使用LinqToCsv ( http://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.