在jQuery数据表中将复选框的值导出为ex​​cel

Zak*_*iti 4 javascript jquery datatables

我正在使用jQuery Datatables来查看一些数据,我在我的表中有两个包含复选框的列,我试图使用excelexcelHtml5以及excelFlash按钮将表中的数据导出到XSLX文件但我得到两个空在文件中的列,我还在我的项目中包含了JSZip插件但是徒劳无功.如何在我的文件中将这些复选框的值作为布尔值获取.

Gyr*_*com 5

您正在使用DataTables 1.10.8.在此版本(1.10.7及更早版本)之前,有一些TableTools fnCellRender选项可以帮助您完成所需的操作.从1.10.8开始,TableTools扩展已被Buttons扩展名替换.

使用Buttons扩展,您可以使用exportOptions并告诉DataTables您想要用于排序的数据(orthogonal: 'sort').然后,您需要定义render函数并在执行排序时返回适当的数据(type === 'sort').

作为副作用,这将使您的复选框列也可以排序.

var table = $('#example1').DataTable({
    dom : 'Bfrtlip',    
    buttons: [
        {
            extend: 'excel',
            exportOptions: {
                orthogonal: 'sort'
            }
        }        
    ],
    columnDefs: [{
       targets:[0,5],
       render: function(data, type, row, meta){
          if(type === 'sort'){
             var $input = $(data).find('input[type="checkbox"]').addBack();
             data = ($input.prop('checked')) ? "1" : "0";
          }

          return data;    
       }
    }]
});
Run Code Online (Sandbox Code Playgroud)

DEMO

有关代码和演示,请参阅此jsFiddle.