Кнопка dataTables Export to Excel не отображается

У меня есть проблема в jquery dataTables. «Экспорт в Excel» не отображается на iPad и мобильных устройствах. Это показывает на рабочем столе. Другие кнопки, такие как copy, csv и pdf, отображаются на iPad и на рабочем столе. Вот мой код:

$('#productDatatable').DataTable({
    dom: 'Bfrtip',
    buttons: [
        'copy', 'excel', 'pdf', 'csv'
    ]
} );
 Zaiman Noris11 февр. 2019 г., 04:17
@SarahTrees Как проверить, «button.html5.js» был загружен без содержимого? Моя уже в правильном порядке, но кнопка Excel все равно не отображается.
 Larsi14 февр. 2017 г., 10:56
Вы поняли это? Возникла та же проблема, скрипты в правильном порядке.
 Sarah Trees18 мар. 2018 г., 08:55
В моем случае файл "button.html5.js" был загружен без содержимого. Причиной этого была неправильная настройка в .htaccess, которая перенаправляла все файлы с помощью «html». Многие системы CMS работают с html-файлами перенаправления, поэтому стоит взглянуть на контент.

Ответы на вопрос(9)

страивает.

Для создания Datatable используйте это -

<link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
<script src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>

А для таблицы данных кнопки используйте эти ссылки -

<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.4.1/css/buttons.dataTables.min.css">
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.flash.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.print.min.js"></script>

«Кнопка excelHtml5 вообще не будет работать в Safari - как отмечено в документации к кнопке. Это из-за невыполненной функции в Safari».

Обратите внимание, что даже если вы используете Chrome в продуктах Apple, он все равно использует движок Safari, поэтому он не будет работать.

Это может быть исправлено в будущем, но сейчас я просто добавил кнопку CSV

 alanning18 июл. 2019 г., 15:24
Просто обновление, чтобы сказать, что экспорт в Excel теперь работает для меня с Safari и Chrome на OSX. Вам понадобитсяwindow.JSZip = jsZip линия, как отмечено здесь, хотя:stackoverflow.com/a/51469094/219238

Зайдите в настройки браузера (в моем случае Chrome)> Поиск Flash>

Нажмите «Управление», какую информацию веб-сайты могут использовать>, чтобы перейти к настройкам контента (chrome: // settings / content? Search = flash)>

Нажмите на Flash>

В блоке Разрешить добавьте свой сайт с помощью кнопки Добавить

что это очень старое, но так как я использовал Webpack 4 и Babel и импортировал файлы (ES6), мне пришлось поместить в глобальную область jsZip:

import 'datatables.net-bs';
import jsZip from 'jszip';
import 'datatables.net-buttons-bs';
import 'datatables.net-buttons/js/buttons.colVis.min';
import 'datatables.net-buttons/js/dataTables.buttons.min';
import 'datatables.net-buttons/js/buttons.flash.min';
import 'datatables.net-buttons/js/buttons.html5.min';

// This line was the one missing
window.JSZip = jsZip;

Надеюсь, это помогает Ура

 Ullullu01 авг. 2019 г., 21:08
Browserify:global.JSZip = require("jszip"); Я подозреваю, что это связано с тем, что xlsx - это, по сути, ZIP-файл в формате ZIP. Жаль, что это молча терпит неудачу, сообщение об ошибке в консоли спасло бы меня немного времени
 alanning18 июл. 2019 г., 15:25
Спасибо! Это ключевая часть, которую я пропустил и не видел ответа нигде. Должен быть добавлен в документацию с датой

если у кого-то все еще есть проблемы с отображением кнопок экспорта DataTable.

<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.html5.min.js"></script>

Ура!

у меня была точно такая же проблема (кнопка Excel не отображается, в то время как остальные кнопки), и кажется, что вам нужно включать файлы JavaScript в определенном порядке, иначе это не сработает.

Для меня проблема заключалась в том, что я включал button.html5.js перед jszip.js, но вы должны поместить их в следующем порядке:

jszip.js
buttons.html5.js

И вы также должны поместить эти два файла послеDataTables а такжеDataTables.buttons файлы

Что я считаю проблематичным, так это то, что если вы разместите их в неправильном порядке, в консоли браузера не будет отображаться ошибка JavaScript.

 Ninju22 нояб. 2016 г., 09:51
Порядок файлов правильный, но все равно не отображается.

Вы должны обратиться к★html5 версии

$('#productDatatable').DataTable({
  dom: 'Bfrtip',
  buttons: [
    'copyHtml5', 'excelHtml5', 'pdfHtml5', 'csvHtml5'
  ]
} );

причина: Когда используешьcopy, excel и т.д., вы на самом деле рискуете обратиться к реализации флэш-памяти, которая действительно должна рассматриваться только как запасной вариант. Вспышка удаляется / отключается с iPad и большинства смартфонов, поэтому кнопка Excel не работает. Если у вас все еще есть проблемы, убедитесь, что вы включили эти файлы библиотеки

jszip.min.js
pdfmake.min.js
vfs_fonts.js
buttons.html5.min.js
 Ninju22 июн. 2016 г., 13:57
я уже включил все эти библиотеки (jszip.min.js, pdfmake.min.js, vfs_fonts.js, buttons.html5.min.js).
 davidkonrad22 июн. 2016 г., 13:58
@Ninju, Да - просто напоминание, обратитесь кexcelHtml5.

что если вы добавите файлы CDN / JS на страницу _layout, то кнопки не будут отображаться на странице основного вида. вместо этого добавьте эти файлы CDN / JS на страницу, которую вы используете для таблицы данных. также убедитесь, что они в правильном порядке.

jquery.min.js
jszip.min.js
pdfmake.min.js
vfs_fonts.js
buttons.html5.min.js

Для меня я скучал поdom: 'Bfrtip', атрибут в моем определении таблицы.

 simo08 мая 2018 г., 10:55
Спасибо !, это решило мою проблему, но зачем использоватьdom Вот? и "Bfrtip"?
 Augustin Riedinger15 мая 2018 г., 11:51
Я не помню точно, где я нашел решение, но я думаю, что эта ссылка помоглаdatatables.net/forums/discussion/29527/dom-bfrtip
 Sanjay Kumar31 янв. 2019 г., 12:01
Спасибо, дом: «Bfrtip»,

Ваш ответ на вопрос