Angular 7 только видимые строки таблицы данных разбитого на страницы углового материала 6 экспортируются вместо всего массива с использованием библиотеки xlsx - PullRequest
0 голосов
/ 21 декабря 2018

Мне нужно экспортировать таблицу данных углового материала в файл 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?

1 Ответ

0 голосов
/ 26 июня 2019

Попробуйте использовать параметр параметров функции 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');
...