Angular实现将后台传入的数据导出为Excel

1.安装插件

npm install xlsx --save

2.建立Service,导入模块,实现方法共用

相关代码:

import { Injectable } from '@angular/core';
import * as XLSX from 'xlsx';

@Injectable({
  providedIn: 'root'
})
export class DownloadExcelService {

  constructor() { }
  /**
   * @method downloadExcel 导出为excel档
   * @param fname 文件名
   * @param json excel内容
   */
  downloadExcel(fname, json): void {
    const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);
    const workbook: XLSX.WorkBook = { Sheets: { data: worksheet },SheetNames: ['data'] };
    const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
    const blob = new Blob(
      [excelBuffer],
      { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' }
    );
    saveAs(blob, fname + '-' + new Date().valueOf() + '.xlsx');
  }

}

3.传入后台所给数据,在Component调用Service

this.downExcelService.downloadExcel('CT',data) //CT是文件名称  data是相关数据为Json格式

4.其他方法,此处未建立Service,可在Function()直接引用(需要先导入 XLSX模块)

该方法相对简单一点,相关代码:

    import * as XLSX from 'xlsx';
   
    //导出Excel方法
    const ws:XLSX.WorkSheet=XLSX.utils.json_to_sheet(data); //data是Json格式的相关数据

    const wb: XLSX.WorkBook=XLSX.utils.book_new();

    XLSX.utils.book_append_sheet(wb,ws);

    /*saveto file*/
    XLSX.writeFile(wb,'filename'); //此处filename是导出时的文件名称,该名称要加.xlsx后缀才可导出.xlsx文件,例如Excel.xlsx
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值