使用nodejs读取多个格式相同的xlsx文件,提取每个xlsx文件D4,D6,Q5位置的数据,汇总后生成一个新的xlsx文件
时间: 2024-01-22 18:17:33 浏览: 110
可以使用`xlsx`和`fs`模块来实现读取和写入xlsx文件,具体步骤如下:
1. 安装`xlsx`模块和`fs`模块
```
npm install xlsx
```
2. 创建一个空的工作簿用于存储数据
```
const xlsx = require('xlsx');
const wb = xlsx.utils.book_new();
```
3. 遍历所有的xlsx文件,读取数据并存储到工作簿中
```
const fs = require('fs');
// 读取所有xlsx文件
const files = fs.readdirSync('./path/to/folder').filter(file => file.endsWith('.xlsx'));
// 遍历每个xlsx文件
files.forEach(file => {
const workbook = xlsx.readFile(`./path/to/folder/${file}`);
// 读取D4,D6,Q5位置的数据
const sheet = workbook.Sheets['Sheet1'];
const data = [
{ D4: sheet.D4 ? sheet.D4.v : '', D6: sheet.D6 ? sheet.D6.v : '', Q5: sheet.Q5 ? sheet.Q5.v : '' }
];
// 存储到工作簿中
const ws = xlsx.utils.json_to_sheet(data);
xlsx.utils.book_append_sheet(wb, ws, file.split('.')[0]);
});
```
4. 将工作簿中的数据写入到新的xlsx文件中
```
xlsx.writeFile(wb, 'output.xlsx');
```
完整代码如下:
```
const xlsx = require('xlsx');
const fs = require('fs');
// 创建一个空的工作簿
const wb = xlsx.utils.book_new();
// 读取所有xlsx文件
const files = fs.readdirSync('./path/to/folder').filter(file => file.endsWith('.xlsx'));
// 遍历每个xlsx文件
files.forEach(file => {
const workbook = xlsx.readFile(`./path/to/folder/${file}`);
// 读取D4,D6,Q5位置的数据
const sheet = workbook.Sheets['Sheet1'];
const data = [
{ D4: sheet.D4 ? sheet.D4.v : '', D6: sheet.D6 ? sheet.D6.v : '', Q5: sheet.Q5 ? sheet.Q5.v : '' }
];
// 存储到工作簿中
const ws = xlsx.utils.json_to_sheet(data);
xlsx.utils.book_append_sheet(wb, ws, file.split('.')[0]);
});
// 将工作簿中的数据写入到新的xlsx文件中
xlsx.writeFile(wb, 'output.xlsx');
```
阅读全文