Экспортировать большую HTML-таблицу в Excel с помощью javascript

Я использую следующий код для создания файла excel из таблицы html. Он отлично работает для небольшого набора данных. Когда дело доходит до набора данных большой таблицы html, он показывает ошибку загрузки.

   //creating a temporary HTML link element (they support setting file names)
    var a = document.createElement('a');
    //getting data from our div that contains the HTML table
    var data_type = 'data:application/vnd.ms-excel';
    var table_div = document.getElementById('dataTable');
    var table_html = table_div.outerHTML.replace(/ /g, '%20');
    a.href = data_type + ', ' + table_html;
    //setting the file name
    a.download = 'Sample.xls';
    //triggering the function
    a.click();
    //just in case, prevent default behaviour
    e.preventDefault();  

person Dimuthu    schedule 26.12.2016    source источник


Ответы (2)


Я нашел один способ решить эту проблему, используя FileSaver.js 1: https://github.com/eligrey/FileSaver.js/ Пожалуйста, проверьте следующее

HTML введите здесь описание изображения

Javascript

введите здесь описание изображения

это отлично работает для меня с большим набором данных таблицы HTML.

person Dimuthu    schedule 26.12.2016

Разбор больших таблиц HTML может быть очень медленным из-за большого количества элементов DOM. Рассмотрите возможность использования чистой сетки данных на основе холста HTML5, подобной этой (https://github.com/openfin/fin-hypergrid) или что-то в этом роде.

Также подумайте, будет ли сохранение в формате CSV быстрее, чем сохранение в формате xls.

person Eddie    schedule 26.12.2016