Angular 7 только видимые строки таблицы данных разбитого на страницы углового материала 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');
}
Но в заголовке теперь указатели, а не заголовки полей.
Вот стек, описывающий проблему.
Должен ли я использовать второй метод, добавив строку заголовка в массив с помощью .push()
а потом скачать? Или лучше использовать ng-table-export
библиотека?
2 ответа
Попробуйте использовать параметр 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');
exportexcel(): void {
/* list object is passed over here */
const result = this.companyList.map((x) => ({
// ColumnName: x.data,
COMPANY_ID: x.COMPANY_ID,
COMPANY_EMAIL: x.COMPANY_EMAIL,
COMPANY_NAME: x.COMPANY_NAME,
ADDRESS: x.ADDRESS,
COMPANY_CONTACT: x.COMPANY_CONTACT,
}));
const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(result);
/* generate workbook and add the worksheet */
const wb: XLSX.WorkBook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
/* save to file */
XLSX.writeFile(wb, this.fileName);
}