首页 > 解决方案 > 从 DataTable 对象创建 CSV

问题描述

我目前正在尝试使用 JQuery 从数据表中制作自定义 CSV。我创建了一个自定义导出按钮:

$.fn.dataTable.ext.buttons.my_button

我目前正在扩展 CSV 并在自定义方法中编写我的逻辑。这样做的问题是它导致通过 CSV 解析大量代码,而且它似乎比我应该创建我需要的 CSV 更难。我正在尝试合并数据单元格,更改标题等。

如果我可以从传递给自定义方法的 DataTable API 对象中读取并从头开始构建我自己的 CSV,那将会容易得多。这可能吗?

标签: jqueryrubycsvdatatableexport

解决方案


事实证明这实际上非常简单..您需要做的就是将 csv 重置为空白字符串,然后您可以将其重新构建。

$.fn.dataTable.ext.buttons.custom_1= {
    className: 'buttons-alert',
    extend: 'csv',
    text: 'SalesForce',
    filename: 'salesforce_export',

    customize: function(csv, button, dataTable){
       csv = 'New Column,New Column 2'
       dataTable.rows().every(function (rowId, tableLoop, rowLoop){
           var row_data = this.data();
           var custom_column_1 = row_data.cell + '$';
           var custom_column_2 = row_data.cell2 + ', ' + row_data.cell3;
           var row = [custom_column_1,custom_column_2].join();
           row += '\n';
           csv += row; 
       });
       return csv;
    }
}

推荐阅读