Safari中使用数据表的Excelbutton问题

我得到了关于我的button的问题,它允许将数据导出到.xlsx文件。 它适用于Edge,Mozilla和Chrome,但是如果我在iphone或Macbook上尝试Safari,看起来这个button只是缺失和隐藏。

我真的需要帮助,因为找不到合适的解决scheme。 数据导出应完全适用于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] } }, ] } ); 

});

Safari中不支持excelHtml5button。 有关它的文档中有一个注释( https://datatables.net/reference/button/excelHtml5 ):

Safari:没有

Safari目前不支持下载生成文件的function(请参阅WebKit错误156056)。 只要Safari已经解决了这个问题,它就会在这里发布。

尝试在Safari中打开他们的演示: https : //datatables.net/extensions/buttons/examples/initialisation/export.html你不会看到Safari中的Excelbutton。

此外基于论坛讨论( https://datatables.net/forums/discussion/30444/datatables-built-in-buttons-not-working-with-safari-browser)csvbutton在Safari中的支持有限&#x3002; 生成的csv的新选项卡打开。 尝试在演示页面上。

面临同样的问题,如上所述,不支持。 但是,如果你想保持浏览器之间的完整性,你可以通过用户代理进行safarivalidation,并将string传递给一个variables。 因为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"