格式化輸出資料 - 匯出選項

Buttons 有兩種不同的方法可以將匯出的資料格式化,使其與表格中顯示的資料不同:正交選項和格式化函式,如本範例所示。它們基本上都以不同的方式實現相同的目的:即修改輸出資料。

匯出按鈕的格式化函式是透過將函式指派給 exportOptions 物件的 format 物件中的一個(或多個)來指定。可以使用三個格式化函式:headerfooterbody。這是使用格式化函式而非正交資料的主要優勢 - 標頭和頁腳也可以使用此方法格式化(當然,如果您喜歡,也可以同時使用正交方法和此格式化函式方法!)。

此範例使用 body 格式化函式從最後一欄中刪除 $, 字元,使其成為輸出資料中的數值。由於這對於使用的三個匯出按鈕來說是通用的,因此該函式會被放置在一個由每個按鈕重複使用的物件中 - 只是為了節省重複相同的程式碼!這不是必需的,但它可以是一個有用的技巧。

姓名 職位 辦公室 分機 開始日期 薪資
姓名 職位 辦公室 分機 開始日期 薪資
  • Javascript
  • HTML
  • CSS
  • Ajax
  • 伺服器端腳本
  • 註解

下面顯示的 Javascript 用於初始化本範例中顯示的表格

var exportFormatter = { format: { body: function (data, row, column, node) { // 從薪資欄位中移除 $ 以使其成為數值 return column === 5 ? data.replace(/[$,]/g, '') : data; } } }; $('#example').DataTable({ ajax: '../../../../examples/ajax/data/objects.txt', columns: [ { data: 'name' }, { data: 'position' }, { data: 'office' }, { data: 'extn' }, { data: 'start_date' }, { data: 'salary' } ], layout: { topStart: { buttons: [ { extend: 'copyHtml5', exportOptions: exportFormatter }, { extend: 'excelHtml5', exportOptions: exportFormatter }, { extend: 'pdfHtml5', exportOptions: exportFormatter } ] } } });
let exportFormatter = { format: { body: function (data, row, column, node) { // 從薪資欄位中移除 $ 以使其成為數值 return column === 5 ? data.replace(/[$,]/g, '') : data; } } }; new DataTable('#example', { ajax: '../../../../examples/ajax/data/objects.txt', columns: [ { data: 'name' }, { data: 'position' }, { data: 'office' }, { data: 'extn' }, { data: 'start_date' }, { data: 'salary' } ], layout: { topStart: { buttons: [ { extend: 'copyHtml5', exportOptions: exportFormatter }, { extend: 'excelHtml5', exportOptions: exportFormatter }, { extend: 'pdfHtml5', exportOptions: exportFormatter } ] } } });

除了上面的程式碼外,還載入了以下 Javascript 函式庫檔案以用於此範例中

    下面顯示的 HTML 是原始 HTML 表格元素,在經過 DataTables 增強之前

    此範例使用了一些除了從函式庫檔案(如下)載入之外的額外 CSS,以便正確顯示表格。下面顯示了使用的額外 CSS

    載入了以下 CSS 函式庫檔案以用於此範例中,以提供表格的樣式

      此表格透過 Ajax 載入資料。下面顯示了已載入的最新資料。當載入任何額外資料時,此資料將自動更新。

      下面顯示了用於執行此表格伺服器端處理的腳本。請注意,這只是一個使用 PHP 的範例腳本。伺服器端處理腳本可以使用任何語言編寫,使用 DataTables 文件中描述的協定

      其他範例