2016-09-29 80 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"