nodejs分析excel文件将结果写入excel文件

背景

因为 Team 本身工作性质的问题,平时需要值班。值班数据可以导出为本地的Excel文件。之后需要对Excel中的结果数据做分析,并且制作图表写周报发给老大。

对于我这种对word都玩不转的人,别说用Excel中强大的公式分析数据了��。轮到我值班的时候就用nodejs写了一个脚本自动处理Excel中的数据,并且将数据再写入Excel文件。后来分享给同事,得到了老大的夸奖,自信心爆棚 ��

之前仅仅为了满足工作的需要写的比较的随便,刚好国庆有时间按照CMD规范重写一下。然后分享给大家。

脚本目的

读取Excel文件,分析Excel中的数据,并且将结果写入Excel中。

使用的第三方包

在这个过程中使用了两个第三方的包分别如下:

require('date-utils');
var xlsx = require('node-xlsx');

使用date-utils主要是用来做一些时间上的处理。比如说时间差,当前时间向后加七天的日期。这个包非常的强大。可以看下API:

具体的API详细文档可以参考这里:点击这里

### 使用ExcelJS库将文件写入相对路径的示例 以下是一个使用 ExcelJS 库在 Node.js 中将文件写入相对路径的示例代码。该代码展示了如何创建一个新的 Excel 文件,并将其保存到指定的相对路径中。 ```javascript // 引入 ExcelJS 库 const ExcelJS = require('exceljs'); // 创建一个新的工作簿 const workbook = new ExcelJS.Workbook(); // 添加一个新的工作表 const worksheet = workbook.addWorksheet('示例工作表'); // 向工作表中添加数据 worksheet.addRow(['姓名', '年龄', '城市']); worksheet.addRow(['张三', 28, '北京']); worksheet.addRow(['李四', 34, '上海']); // 将文件写入相对路径 async function writeToFile() { try { // 定义相对路径,例如 './output/example.xlsx' const filePath = './output/example.xlsx'; // 确保输出目录存在,如果不存在则创建 const fs = require('fs'); const path = require('path'); const dir = path.dirname(filePath); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } // 将工作簿写入文件 await workbook.xlsx.writeFile(filePath); console.log(`文件已成功写入 ${filePath}`); } catch (error) { console.error('写入文件时发生错误:', error); } } writeToFile(); ``` 上述代码首先引入了 `exceljs` 库[^1],然后创建了一个新的工作簿并添加了一个工作表。通过向工作表中添加几行数据后,使用 `workbook.xlsx.writeFile(filePath)` 方法将文件保存到指定的相对路径中。此外,还确保了输出目录的存在,如果目录不存在,则会递归地创建它。 #### 注意事项 - 在使用 `writeFile` 方法时,确保提供的路径是有效的,并且程序具有写入权限。 - 如果需要处理图片或其他复杂功能,可以参考 ExcelJS 的官方文档[^2],以实现更高级的功能。 ### 相关概念解释 - **相对路径**:相对于当前工作目录的路径。例如,`./output/example.xlsx` 表示当前目录下的 `output` 文件夹中的 `example.xlsx` 文件- **ExcelJS**:一个功能强大的 Node.js 库,用于读取、写入和操作 Excel 文件,支持 `.xlsx` 和 `.xlsm` 格式[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值