2016-09-29 78 views
0

我得到了關於我的按鈕的問題,它允許將數據導出到.xlsx文件。它適用於Edge,Mozilla和Chrome,但如果我嘗試Safari或iPhone的Macbook似乎這個按鈕只是失蹤和不可見。使用數據表的Safari中的Excel按鈕問題

我真的需要幫助,因爲找不到合適的解決方案。數據導出應完全適用於Safari,Mozilla,Edge和Chrome。

也許有人面臨類似的問題? 我的代碼:

$(document).ready(function() { 
var table = $('#tableOrders').DataTable({ 
    "bFilter" : true,    
    "bLengthChange": true, 
    "paging": true, 
    "ordering": true, 
    "order": [[ @if ($user->role=='super_admin') 7 @else 6 @endif, "desc" ]], 
    "info":true, 
    dom: 'lBfrtip', 
    lengthMenu: [ 
     [ 10, 25, 50, -1 ], 
     [ '10', '25', '50', 'Show all' ] 
    ], 
    buttons: [ 
     { 
      extend: 'copyHtml5', 
      text: '<b>Copy all</b>', 
      exportOptions: { 
       columns: [@if($user->role=='super_admin') 0, 1, 2, 3, 4, 5, 6 @else 0, 1, 2, 3, 4 @endif] 
      } 
     }, 
     { 
      extend: 'excelHtml5', 
      text: 'Export all to <b>Excel</b>', 
      exportOptions: { 
       columns: [@if($user->role=='super_admin') 0, 1, 2, 3, 4, 5, 6 @else 0, 1, 2, 3, 4 @endif] 
      } 
     }, 
    ] 
}); 

});

回答

1

excelHtml5按鈕在Safari中不受支持。有一個在文檔中關於它的說明(https://datatables.net/reference/button/excelHtml5):

Safari瀏覽器:沒有

Safari瀏覽器目前不支持下載生成的文件(見WebKit的漏洞156056)的能力。只要Safari已經解決了這個問題,它就會在這裏發佈。

嘗試在Safari中打開他們的演示:https://datatables.net/extensions/buttons/examples/initialisation/export.html您將無法在Safari中看到Excel按鈕。

此外基於論壇討論(https://datatables.net/forums/discussion/30444/datatables-built-in-buttons-not-working-with-safari-browser)csv按鈕在Safari中的支持有限。生成的csv的新選項卡打開。在演示頁面上嘗試一下。

0

面臨同樣的問題,如上所述,它不被支持。但是如果你想保持瀏覽器之間的完整性,你可以通過用戶代理爲safari驗證並將字符串傳遞給變量。因爲CSV適用於Safari。

var xls; // variable csv ó excel 
    (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) ? xls = 'csv' : xls = 'excel'; //verify 

則擴展:

extend: xls, title: 'yourtitle', className: "btn-sm"