【问题标题】:jQuery / DataTables - Export to ExceljQuery / DataTables - 导出到 Excel
【发布时间】:2014-04-14 21:58:41
【问题描述】:

我正在创建一个 MVC 5 / Bootstrap 应用程序。我需要允许用户将表格数据发送到 Excel。我知道 TableTools 可以做到这一点。但是,除了导出到 Excel 之外,我不想将 DataTables/TableTools 用于其他任何事情。我不想用它来做任何表格样式。我正在为此使用 Bootstrap。

那么,有没有一种方法可以严格地使用 DataTables/TableTools 来达到这个目的?而且我还希望能够在表单的某处放置一个按钮(不一定是默认的 TableTools 按钮),并且在单击时执行 Excel 导出。这可能吗?

【问题讨论】:

    标签: jquery datatables


    【解决方案1】:

    我会说很可能不是因为 TableTools 插件旨在对 DataTables 对象进行操作。如果不想使用 DataTables,我个人不会花任何时间研究这个,而是我将分享我如何为 ASP.NET MVC 5/Bootstrap 站点实现类似功能的概述。

    只需在我的视图上放置一个按钮:

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

    在我的视图的脚本部分中,我为点击事件添加了一个函数(在本示例中,我传递了 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 插件进行完整表导出时如何重新绑定我的自定义参数,因此发现这种方法更可取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2016-08-19
      • 2016-12-21
      • 2018-04-24
      • 1970-01-01
      相关资源
      最近更新 更多