Angular导出excel数据

安装

	npm install file-saver
	npm install xlsx

导入

import * as FileSaver from 'file-saver';
import * as XLSX from 'xlsx';
//获取数据
 exp() {
    //表头
    let exportcolums = [
      { title: '时间', index: 'time' },
      { title: 'radii', index: 'radii' },
      { title: 'force', index: 'force' },
    ];
    let worksheet: XLSX.WorkSheet;
        if (this.infoList.length!>0) {
          //调用导出数据的方法
          this.downloaddata(this.infoList, exportcolums, worksheet)
        }
        else {
         console.log("导出失败")
        }
  }
   downloaddata(scoredata, exportcolums, worksheet) {
    //设置excel表的单元格宽度
        var long = {
          '001': [{ wch: 30 }, { wch: 15 }, { wch:15 }, { wch: 20 }, { wch: 30 }, { wch: 20 }, { wch: 30 }, { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 }, { wch: 15 },
          { wch: 10 }, { wch: 15 }, { wch: 15 }, { wch: 25 }, { wch: 15 }, { wch: 15 }, { wch: 15 }]
        }
        //设置excel表第一行的高度
        var row = {
          '001': [{ hpt: 30 }]
        }
        console.log("导出",exportcolums)
        if (scoredata.length) {
            //处理数据
          scoredata.forEach((element) => {
            for (var key in element) {
              let has = false;
              for (var item of exportcolums) {
                if (item.index == key) {
                  has = true;
                }
              }
            } 
          })
          worksheet = XLSX.utils.json_to_sheet(scoredata);
          let header = []
          //把excel表头的英文字段转化为中文字段
          for (let i = Number('A'.charCodeAt(0)); i <= Number('V'.charCodeAt(0)); i++) {
            header.push(String.fromCharCode(i) + '1')
          }
          //设置excel表的单元格宽度和表头高度
          worksheet['!cols'] = long['001'];
          worksheet['!rows'] = row['001']
          const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
          const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
        //保存excel表
          this.saveAsExcelFile(excelBuffer, '记录表');
        }
        else {
         console.log("没有数据")
        }
      }
      saveAsExcelFile(buffer: any, fileName: string) {
        const data: Blob = new Blob([buffer], {
          type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'
        });
        FileSaver.saveAs(data, fileName + '.xlsx');
      }

参考:https://blog.csdn.net/qq_41093493/article/details/110520938

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值