从DataTable对象创建CSV

时间:2019-08-29 16:55:36

标签: jquery ruby csv datatable export

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

$.fn.dataTable.ext.buttons.my_button

并且我目前正在扩展CSV并在custom方法中编写我的逻辑。问题在于,这会导致通过CSV解析大量代码,而这似乎比创建我所需的CSV困难。我正在尝试合并数据单元格,更改标题等。

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

1 个答案:

答案 0 :(得分:0)

事实证明,这实际上非常简单。您需要做的就是将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;
    }
}