角7个材料6的分页数据表中的唯一可见的行被使用的xlsx库中导出,而不是整个阵列(Angular 7

2019-10-28 09:08发布

我需要一个角的材料数据表导出到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库?

Answer 1:

尝试使用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');


文章来源: Angular 7 only visible rows of paginated data table of angular material 6 are exported instead of the whole array using xlsx library