Экспортировать в Excel с помощью таблицы данных

Я хочу экспортировать в Excel. вот мой код.

$('#tabelku').dataTable({
                        
                        dom: 'Bfrtip',
                        "buttons": [{
                            extend: 'excel',
                            text: 'Excel'
                            
                            }
                        ],
                        dom: '<"row"<"col-lg-6"l><"col-lg-6"f>><"table-responsive"t>p',
                        "aLengthMenu": [
                            [10, 20, 30, 40, -1],
                            [10, 20, 30, 40, "All"] // change per page values here
                        ],
                        
                        "bProcessing": true,
                        "bServerSide": true,
                        "sServerMethod": "POST",
                        "bRetrieve": true,
                        "sAjaxSource": "<?= site_url() ?>monev/do_Tabel_Universitas",
                        // set the initial value
                        "iDisplayLength": 10,
                        "oLanguage": {
                            "sProcessing": '<i class = "fa fa-coffee"></i>&nbsp;Please wait...',
                            "sLengthMenu": "_MENU_ records",
                            "oPaginate": {
                                "sPrevious": "Prev",
                                "sNext": "Next"
                            }
                        },
                        "aoColumnDefs": [{
                                'bSortable': false,
                                'aTargets': [0, 8]
                            }
                        ],
                        
                    });

кнопка Excel уже отображается, но проблема в том, что раскрывающийся список содержит 10, 20, 30, 40 записей. прежде чем я добавлю этот код

dom: 'Bfrtip',
                        "buttons": [{
                            extend: 'excel',
                            text: 'Excel'
                            
                            }
                        ],

раскрывающийся список 10, 20, 30, 40 может показать.. какой-нибудь код, который мне не хватает ??

Просто наблюдение, а не ответ на ваш вопрос: код в вашем вопросе использует обработку на стороне сервера. Если предположить, что это реализовано правильно (на сервере, где предоставляются данные), то DataTables будет получать только одну страницу результатов за раз. Поэтому он может экспортировать в Excel только одну страницу данных, а не весь набор данных.

andrewJames 25.06.2024 17:21

Да, вы правы. Я пересматриваю dom, чтобы пользователь мог выбрать «Все» в раскрывающемся списке, а затем экспортировать в Excel.

user1004 26.06.2024 05:00

Хорошо, понял — но в таком случае действительно ли вам нужно использовать обработку на стороне сервера? Загрузка всех данных с сервера в DataTables противоречит основной цели обработки на стороне сервера. Либо (а) вам нужна обработка на стороне сервера, потому что у вас слишком много данных (и DataTables работает плохо)... или (б) у вас не слишком много данных для обработки DataTables - и, следовательно, вам не нужно использовать обработку на стороне сервера.

andrewJames 26.06.2024 05:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы указали параметр dom дважды, и, поскольку вы не видите раскрывающийся список длины, похоже, используется первый вариант (поскольку в нем нет l, поэтому отображается раскрывающийся список lдлины).

                        dom: 'Bfrtip',
                        "buttons": [{
                            extend: 'excel',
                            text: 'Excel'
                            
                            }
                        ],
                        dom: '<"row"<"col-lg-6"l><"col-lg-6"f>><"table-responsive"t>p',
                        "aLengthMenu": [
                            [10, 20, 30, 40, -1],
                            [10, 20, 30, 40, "All"] // change per page values here
                        ],

Чтобы отобразить и кнопки, и раскрывающийся список длины, удалите один из параметров dom и убедитесь, что тот, который вы используете, содержит как B (для кнопок B), так и l, например:

dom: '<"row"<"col-lg-6"Bl><"col-lg-6"f>><"table-responsive"t>p',

Больше информации здесь: https://datatables.net/reference/option/dom

Спасибо за ответ @Marleen, это очень помогает!

user1004 25.06.2024 10:53

Другие вопросы по теме