当前位置: 首页 > news >正文

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');

http://www.lryc.cn/news/326021.html

相关文章:

  • pycharm使用远程服务器的jupyter环境
  • ES6 基础
  • 【双指针】Leetcode 有效三角形的个数
  • python项目练习——4.手写数字识别
  • 【目标检测】NMS算法的理论讲解
  • 3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?
  • 阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器
  • jdk11中自定义java类在jvm是如何被查找、加载
  • 单片机---独立按键
  • java分布式面试快问快答
  • AI:148-开发一种智能语音助手,能够理解和执行复杂任务
  • Kindling the Darkness:A Practical Low-light Image Enhancer
  • 图像处理与视觉感知---期末复习重点(4)
  • ABAP AMDP 示例
  • 发票查验接口C++语言如何集成、发票OCR
  • 【图论 | 数据结构】用链式前向星存图(保姆级教程,详细图解+完整代码)
  • 【蓝桥杯3.23小白赛】(详解)
  • 设计模式之抽象工厂模式精讲
  • 初识云原生、虚拟化、DevOps
  • 怎麼實現Nginx反向代理?
  • IOS面试题编程机制 71-75
  • JMeter元件作用域和执行顺序
  • Jmeter 聚合报告之 90% Line 正确理解
  • 2024 解决 Failed to launch process [ElasticSearch]
  • 平台介绍-搭建赛事运营平台(4)
  • 系列学习前端之第 7 章:一文掌握 AJAX
  • iOS - Runtime - Class的结构
  • MySQL高阶语句(一)
  • MySQL知识总结
  • Go-Gin-Example 第八部分 优化配置接口+图片上传功能