Angular 7 экспортируются только видимые строки таблицы данных с разбивкой на страницы материала angular 6 вместо всего массива с использованием библиотеки xlsx

Мне нужно экспортировать таблицу данных углового материала в файл Excel, используя библиотеку xlsx.

Проблема в том, что если я использую разбиение на страницы в таблице данных и при экспорте, экспортируются только видимые строки:

exportTable()
  {
    //let data = Object.values(this.dataSource);
    const ws: xlsx.WorkSheet=xlsx.utils.table_to_sheet(this.table.nativeElement);
    const wb: xlsx.WorkBook = xlsx.utils.book_new();
    xlsx.utils.book_append_sheet(wb, ws, 'All Data Export');

    /* save to file */
    xlsx.writeFile(wb, 'ExportAllData.xlsx');
  }

Я пробовал экспортировать его с помощью json_to_sheet():

  exportTable()
  {
    let data = this.allData;
    const ws: xlsx.WorkSheet=xlsx.utils.json_to_sheet(data);
    const wb: xlsx.WorkBook = xlsx.utils.book_new();
    xlsx.utils.book_append_sheet(wb, ws, 'All Data Export');

    /* save to file */
    xlsx.writeFile(wb, 'ExportAllData.xlsx');
  }

Но теперь заголовок - это индексы, а не заголовки полей.

Вот stackblitz с описанием проблемы.

Следует ли использовать второй метод, добавив строку заголовка в массив с помощью .push(), а затем загрузить ее? Или лучше использовать ng-table-export библиотеку?


person alim1990    schedule 21.12.2018    source источник


Ответы (1)


Попробуйте использовать параметр options функции json_to_sheet;

let options:JSON2SheetOpts  = {header: ['Name', 'Surname', 'Age']};
const ws: XLSX.WorkSheet=XLSX.utils.json_to_sheet(data, options);
const wb: XLSX.WorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'All Data Export');
XLSX.writeFile(wb, excelFileName + '.xlsx');
person Selman Gun    schedule 26.06.2019