JQuery DataTable Export Excel не может применить встроенный стиль к пустой ячейке - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь применить стиль к excel, используя attr ('s', '20') из расширения кнопки из jquery datatable. https://datatables.net/reference/button/excelHtml5 Ниже приведен код, как я применяю стиль к 3-му дочернему элементу строки:

$('#DataTable').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            customize: function (xlsx) {
                var sheet = xlsx.xl.worksheets['sheet1.xml'];
                $('row[r!=1]', sheet).each(function () {
                    $(this).children().eq(2).attr('s', '20');//apply style to 3rd child of the row.
                });
            }
        }]...............

Проблема в том, что когда ячейка пуста, стиль не применяется.

Когда 3-я ячейка представляет собой пустую строку или нуль в таблице данных, стиль не будет применяться к файлу Excel. Я отладил код и обнаружил, что $ (this) .children (). Eq (2) не существует, когда ячейка представляет собой пустую строку. Если в 3-й ячейке есть текст, стиль будет применен.

Кто-нибудь знает, как обойти это? Или есть способ применить стиль ко всему ряду.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Использовать "createEmptyCells": true,

Пример {extend: 'excelHtml5', текст: «Экспорт в Excel», "createEmptyCells": правда, exportOptions: {title: null, ортогональный: «экспорт» } },

0 голосов
/ 03 мая 2018

Чтобы задать стиль третьей ячейки для каждой строки, исключая заголовок , вам нужен этот селектор:

$('row[r!=1] c:nth-child(3)', sheet).attr('s', '20');

Стиль будет применяться, даже если ячейка пуста. Проверьте этот пример Я создал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...