要在Angular 6中格式化导出Excel表格,您可以使用xlsx和file-saver库。下面是一个示例解决方案:
npm install xlsx file-saver --save
import { Injectable } from '@angular/core';
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
@Injectable()
export class ExcelService {
constructor() { }
exportToExcel(data: any[], fileName: string): void {
const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(data);
const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
this.saveAsExcelFile(excelBuffer, fileName);
}
private saveAsExcelFile(buffer: any, fileName: string): void {
const data: Blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
saveAs(data, fileName + '_export_' + new Date().getTime() + '.xlsx');
}
}
import { Component } from '@angular/core';
import { ExcelService } from './excel.service';
@Component({
selector: 'app-root',
template: `
`,
providers: [ExcelService]
})
export class AppComponent {
constructor(private excelService: ExcelService) { }
exportToExcel(): void {
const data = [
{ name: 'John', age: 30, city: 'New York' },
{ name: 'Mike', age: 25, city: 'Chicago' },
{ name: 'Lisa', age: 35, city: 'Los Angeles' }
];
this.excelService.exportToExcel(data, 'sample');
}
}
在上面的示例中,我们创建了一个名为ExcelService的服务,它包含一个exportToExcel方法,该方法将数据导出为Excel文件。然后,我们在AppComponent中使用该服务,通过点击按钮调用exportToExcel方法来导出Excel。
请注意,这只是一个基本的示例,您可以根据自己的需求进行调整和扩展。