【问题标题】:Excel button issue in Safari using datatableSafari中使用数据表的Excel按钮问题
【发布时间】:2017-02-07 16:32:51
【问题描述】:

我的按钮有问题,它允许将数据导出到 .xlsx 文件。它适用于 Edge、Mozilla 和 Chrome,但如果我尝试 iPhone 或 Macbook 上的 Safari,则该按钮似乎丢失且不可见。

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

});

【问题讨论】:

    标签: javascript jquery excel datatables laravel-5.2


    【解决方案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 的新选项卡打开。在演示页面上试用。

    【讨论】:

      【解决方案2】:

      遇到了同样的问题,如上所述,它不受支持。但是,如果您想保持浏览器之间的完整性,您可以通过用户代理进行 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"
      

      【讨论】:

        【解决方案3】:

        Datatables.Buttons 的最新版本可在 Safari 中使用。

        【讨论】:

          猜你喜欢
          • 2018-07-31
          • 2010-09-06
          • 2017-06-17
          • 2017-04-12
          • 1970-01-01
          • 2023-03-17
          • 2023-03-05
          • 1970-01-01
          • 2014-10-07
          相关资源
          最近更新 更多