簡體   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