dom: 'Blfrtip',
buttons: [
{
text: "<img src='./assets/img/excel_new_design.svg' style='width:1.5rem; height:1.5rem;' />",
action: function (e, dt, button, config){
dt.one('preXhr', function (e, s, data){
data.length = -1;
}).one('draw', function (e, settings, json, xhr){
var excelButtonConfig = $.fn.DataTable.ext.buttons.excelHtml5;
var addOptions = { exportOptions: { 'columns': ':not(:last-child)'}, filename: file_name };
$.extend(true, excelButtonConfig, addOptions);
excelButtonConfig.action(e, dt, button, excelButtonConfig);
}).draw();
}
},
]
Выше приведен мой код для экспорта всех данных в файл Excel. Я получаю Excel правильно, но в консоли произошла следующая ошибка.
button.html5.min.js:8 Uncaught (в обещании) TypeError: l не является функцией
Я попытался использовать button.html5.js вместо файла min. Если я это сделаю, там сказано
cb - это не функция
Где мы можем найти вашу версию «button.html5.js»? В cdn.datatables.net/buttons/1.3.1/js/buttons.html5.js нет слова «cb»
Я использую версию 3.0.0 для кнопок.
Обсуждалась та же ошибка, но решения не дали. Пожалуйста, найдите обсуждение здесь datatables.net/forums/discussion/78309/…
@qrsngky if (zip.generateAsync) { // JSZip 3+ zip.generateAsync(zipConfig).then(function (blob) { _saveAs(blob, filename); cb(); }); } Это было в button.html5.js. Версия кнопок, использованная здесь, была 3.0.0.





Согласно https://cdn.datatables.net/buttons/3.0.0/js/buttons.html5.js, DataTable.ext.buttons.excelHtml5 имеет свойство action, которое определяется какfunction (e, dt, button, config, cb) {...}
Вы определили var excelButtonConfig = $.fn.DataTable.ext.buttons.excelHtml5; и использовали функцию следующим образом:excelButtonConfig.action(e, dt, button, excelButtonConfig);.
Вы ничего не передали для cb, поэтому cb не определено и не является функцией, поэтому cb() выдаст ошибку.
Чтобы избежать ошибки, вы можете передать пустую функцию, например. () => {}, лайкexcelButtonConfig.action(e, dt, button, excelButtonConfig, () => {});.
Может ли кто-нибудь ответить на это?