excel创建和部分使用

一.excel导出是在开发中经常操作的内容,对于excel的导出也是有各种成熟的api组件

这里是最近的项目有通过ts处理,这里的内容通过ts

①引入const XlsxPopulate = require("xlsx-populate"); const XLSXChart = require("xlsx-chart");

通过命令行操作, pnpm xlsx-populate xlsx-chart

②对于excel的说明更有利于对构建excel的理解

1.整个单独的excel即为一个工作簿(workBook)

2.一个工作簿里面可以有很多工作表(sheet)

3.每个工作表有工作表的名称sheetName

4.每个工作表有头(header),体(body)存储数据

5.每列开始从a开始到之后都有唯一的.这里不多可以使用A1:${ 97+ header.lenth-1}.length(head.length)

二.上面说完之后就应该有熟悉的认识

XlsxPopulate.fromFileAsync(pathInfo.filePath)
      .then(async (workbook) => {
//导出路径格式
        const filePath = `./${
          pathInfo.folderName
        }/TicketsReport_${moment().unix()}.xlsx`;
//工作表名
        const newSheetName = "ReportData";
        const newSheet = workbook.addSheet(newSheetName);
//头部
        const header = [
          "Brand",
          "Branch code",
          "Branch name(TC)",
        ];
//体 数据存储位置 这里范围从A1开始后面的为获取具体的ASCll码
        const range = workbook
          .sheet(newSheetName)
          .range(
            `A1:${String.fromCharCode(97 + header.length - 1).toUpperCase()}header.length`
          );

        range.value([
          header,
          ...reportData.map((data) => [
            data.brandName,
            data.branchCode,
            data.branchName,
          ]),
        ]);

        // 写文件输出
        await workbook.toFileAsync(filePath);
})
      .catch((error) => {
        Logger.error(`Something went wrong - ${error?.message ?? JSON.stringify(error)}`, 'excel')
      });

___________________________________________________________________________

第二部分:

一.对于要将结果变.csv格式的纯文本格式的这种内容就简单很多了,

这个部分只是文字,只是header和body部分需要写上,之后加上换行符"/n"就可以

 const header = [

        "id",

        "token",]

let body= "";
      csvContent.forEach((ticket) => {
        let rowData = '';
        header.forEach((key)=>{
          let value='';
          value =  ticket[key]??' ';
          rowData += value + ",";
        });
        rowData= rowData.slice(0, -1) + "\n";
        body+= rowData;
      });

const headerString = header.join(",") + "\n";

const data= headerString+body

这里将内容转换成需要的内容之后,拼接起来,之后通过fs将结果导出即可

await fs.promises.writeFile(filePath,data,'utf-8');

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值