繁体   English   中英

数据表导出为具有数据类型的excel

[英]Datatables export to excel with data types

我有一张桌子:

Name     Reg.number   Limit        Date
Jon      123455665    100 000.00   24.09.2018
Foo      123423423    55 000.00    23.09.2018

我正在使用数据表创建excel,它可以正常工作,但是我需要在导出的excel中指定数据类型。 现在在excel中,所有数据都被认为是“ Genereal”,但是我需要它来认识到:

Jon = text
Reg.number = text
Limit = Number (In perfect scenario with thousand separator and 2 digits after .)
Data = date

到目前为止,这是我的代码:

<script>

$(document).ready(function() {
    $('#datatable').DataTable();

    $.fn.dataTable.moment( 'D.M.YYYY' );

    var table = $('#datatable-buttons').DataTable({
        lengthChange: false,
        buttons: ['excel'],
    });

    table
        .order( [4 , 'desc'] )
        .draw();

    table.buttons().container()
        .appendTo('#datatable-buttons_wrapper .col-md-6:eq(0)');
} );

所以我当前的输出是:Excel,其中所有数据都被视为“常规”。

我期望的输出是:Excel,其中根据数据类型考虑所有列。 文字,数字(十进制),日期。

我真的无法在数据表文档中找到答案。 从字面上看,他们有1-2个示例,它们并不能说明太多,因此,我将感谢代码示例,而不是指向我过去几个小时一直在阅读的文档的链接。

如前所述,我相信您需要将这些值转换为可识别的值。 问题是Excel(或其他读者),它当然不能弄清楚应该将“ 55 000.00”视为一个数字。 作为一个人,我也不知道如何解释这一点:)

exportOptions: {
  format: {
     body: function(data, row, column, node) {
        switch (column) {
          case 2 :
            return data.replace(/ /, ',')
            break
          case 3 : 
            return moment(data, 'DD.MM.YYYY').format('MM/DD/YYYY')
            break
          default :
            return data
            break
        }
     }
  }    
}    

根据您的需要进行修改。 小提琴-> https://jsfiddle.net/sv42o8yw/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM