在Datatable Excel中,导出零值在PHP中出错

时间:2016-04-01 14:26:11

标签: php jquery excel datatable

我从datatable导出excel表使用插件。在工作表中,除零(0)值外,所有值都正确。

以下是数据表的代码。

$('#example').DataTable({
                     //"scrollY": 300,
                     //"scrollX": true
                      dom: 'Bfrtip',
                    buttons: [
                         { extend: 'excelHtml5', text: 'Get Excel' }
                    ],
                      "sScrollY" : "300",
                      "sScrollX" : true,
                      "bScrollCollapse" : true,
                      "bSort" : true,
                      "iDisplayLength": 5


                     });

我附上了错误的屏幕截图。enter image description here

3 个答案:

答案 0 :(得分:0)

尝试使用插件将字段类型设置为数字值。

看起来0被解释为字符串,这可以解释左对齐。

答案 1 :(得分:0)

您必须在buttons.html5.min.js文件中进行一些修改。 在buttons.html5.min.js和push方法中找到excelHtml5这个词 "数" === typeof a [c] || a [c] .match&& g.trim(a [c])。match(/ ^ - ?\ d +(。\ d +)?$ /)&& " 0" !== a [c] .charAt(0) 将" 0" 替换为 0
或以其他方式添加一个条件  !==(a [c] .charAt(0)&& a [c] .length> 1) 它会工作。希望它能满足你的要求。 一切顺利.. !!

答案 2 :(得分:0)

只需使用CSV按钮代替xcel按钮,它就可以正常工作: https://datatables.net/extensions/buttons/examples/html5/simple.html

无论

    $(document).ready(function() {
    $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copyHtml5',
            'excelHtml5',
            'csvHtml5',
            'pdfHtml5'
        ]
    } );
} )

或更个性化的方法(假设字体很棒,并应用一点CSS使其看起来更好)

    //initialise the main table
table = $('#report').DataTable( {
    "bFilter": true,
      "bSort": true,
      "bInfo": true,
      "scrollX": scrollX,
    lengthChange: true,
    fixedHeader: {
        header: true,
        footer: footerFixed
    },
    buttons: [ 
        {
            extend: 'copy',
            text: '<i class="fa fa-files-o"></i>',
            titleAttr: 'Copy'
        },
        {
            extend: 'csv',
            text:      '<i class="fa fa-file-excel-o"></i>',
            titleAttr: 'CSV',
            title: 'Subscribers'
        },
        {
            extend: 'colvis',
            text:      '<i class="fa fa-columns"></i>',
            titleAttr: 'Columns'
        },

    ],
} );

table.buttons().container()
    .appendTo( '#report_length' );

$('#report_length > label').css('padding-right', '10px');