Экспорт данных JSON в файл Excel с помощью Angular 4 - PullRequest
0 голосов
/ 19 мая 2019

У меня есть список объектов Array.Я хочу экспортировать эти данные в файл Excel (.xlsx или .xls).

Шаблон файла Excel также предоставляется.Что нужно сделать, это только сопоставление с существующим файлом Excel.Файл Excel находится в самом проекте Angular.Как я могу добиться этого, используя Angular 4.

[
   {
      "name": "Roshan",
      "age": "35"
   },
   {
      "name": "Ritika",
      "age": "29"
   }
]

Приведенные выше данные должны быть сопоставлены с Excel с именами столбцов Employee_Name и Employee_age.

1 Ответ

1 голос
/ 19 мая 2019

попробуйте пакет xlsx

установить xlsx в ваш проект

 npm install xlsx --save

 import { Injectable } from '@angular/core';
 import * as FileSaver from 'file-saver';
 import * as XLSX from 'xlsx';

const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
const EXCEL_EXTENSION = '.xlsx';

@Injectable()
export class ExcelExportService {
    constructor() { }

    public exportAsExcelFile(json: any[], excelFileName: string): void {
        const worksheet: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(json);
        const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
        const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });
        this.saveAsExcelFile(excelBuffer, excelFileName);
    }

    private saveAsExcelFile(buffer: any, fileName: string): void {
        const data: Blob = new Blob([buffer], {
            type: EXCEL_TYPE
        });
        FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
    }
}

export class AppComponent {
  name = 'Angular 6';
  data: any = [{
    eid: 'e101',
    ename: 'ravi',
    esal: 1000
  },
  {
    eid: 'e102',
    ename: 'ram',
    esal: 2000
  },
  {
    eid: 'e103',
    ename: 'rajesh',
    esal: 3000
  }];
  constructor(private excelService:ExcelExportService ){

  }
  exportAsXLSX():void {
    this.excelService.exportAsExcelFile(this.data, 'sample');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...