使用nodejs读取多个格式相同的xlsx文件,提取每个xlsx文件D4,D6,Q5等很多位置的数据,汇总后生成一个新的xlsx文件
时间: 2024-01-22 14:17:34 浏览: 142
nodejs使用node-xlsx生成excel的方法示例
可以使用 `xlsx` 模块来读取和写入 Excel 文件,可以使用 `glob` 模块来匹配多个文件,然后遍历每个文件,提取所需的单元格数据并存储到一个数组中,最后将数组中的数据写入新的 Excel 文件中。
下面是一个示例代码:
```javascript
const XLSX = require('xlsx');
const glob = require('glob');
// 匹配所有需要读取的文件
glob('path/to/files/*.xlsx', {}, (err, files) => {
if (err) throw err;
const data = [];
// 遍历每个文件
files.forEach(file => {
// 读取 Excel 文件
const workbook = XLSX.readFile(file);
// 获取第一个工作表
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
// 提取所需的单元格数据
const d4 = worksheet.D4 ? worksheet.D4.v : '';
const d6 = worksheet.D6 ? worksheet.D6.v : '';
const q5 = worksheet.Q5 ? worksheet.Q5.v : '';
// 存储到数据数组中
data.push([d4, d6, q5]);
});
// 创建一个新的工作簿
const newWorkbook = XLSX.utils.book_new();
// 创建一个新的工作表
const newWorksheet = XLSX.utils.aoa_to_sheet(data);
// 将工作表添加到工作簿中
XLSX.utils.book_append_sheet(newWorkbook, newWorksheet, 'Sheet1');
// 写入新的 Excel 文件
XLSX.writeFile(newWorkbook, 'path/to/output.xlsx');
});
```
在上面的代码中,我们使用 `glob` 模块匹配所有需要读取的 Excel 文件,然后使用 `XLSX` 模块读取每个文件的第一个工作表,并从中提取所需的单元格数据。我们将这些数据存储在一个数组中,然后使用 `aoa_to_sheet()` 方法将数组转换为一个工作表,并将其添加到新的工作簿中。最后,我们使用 `writeFile()` 方法将新的工作簿写入到一个 Excel 文件中。
阅读全文