使用nodejs读取多个格式相同的xlsx文件,从每个xlsx文件的相同位置提取部分字段作为一行,汇总后生成一个新的xlsx文件
时间: 2024-01-22 18:17:17 浏览: 84
可以使用 `node-xlsx` 库来处理 Excel 文件,以下是实现的步骤:
1. 安装 `node-xlsx` 库
可以使用以下命令安装 `node-xlsx`:
```
npm install node-xlsx
```
2. 读取多个 Excel 文件
使用 `node-xlsx` 的 `parse` 方法读取 Excel 文件,可以通过遍历文件名数组来读取多个 Excel 文件。示例代码:
```javascript
const xlsx = require('node-xlsx');
const fs = require('fs');
const files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'];
const data = [];
for (const file of files) {
const filePath = `./${file}`;
const content = fs.readFileSync(filePath);
const sheetData = xlsx.parse(content)[0].data; // 只取第一个 sheet 的数据
data.push(sheetData);
}
```
这里将每个 Excel 文件的数据存入了 `data` 数组中。
3. 提取指定位置的字段
可以通过遍历每个 Excel 文件的数据,提取指定位置的字段。示例代码:
```javascript
const xlsx = require('node-xlsx');
const fs = require('fs');
const files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'];
const data = [];
for (const file of files) {
const filePath = `./${file}`;
const content = fs.readFileSync(filePath);
const sheetData = xlsx.parse(content)[0].data; // 只取第一个 sheet 的数据
// 提取需要的字段
const extractedData = sheetData.map(row => [row[0], row[1], row[2]]); // 假设需要提取第 1、2、3 列
data.push(extractedData);
}
```
这里将每个 Excel 文件中第 1、2、3 列的数据提取出来,存入了 `extractedData` 数组中。
4. 合并数据
可以使用 `Array.prototype.flat()` 方法将数据合并成一维数组,然后使用 `node-xlsx` 的 `build` 方法生成新的 Excel 文件。示例代码:
```javascript
const xlsx = require('node-xlsx');
const fs = require('fs');
const files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'];
const data = [];
for (const file of files) {
const filePath = `./${file}`;
const content = fs.readFileSync(filePath);
const sheetData = xlsx.parse(content)[0].data; // 只取第一个 sheet 的数据
// 提取需要的字段
const extractedData = sheetData.map(row => [row[0], row[1], row[2]]); // 假设需要提取第 1、2、3 列
data.push(extractedData);
}
// 合并数据
const mergedData = data.flat();
// 生成新的 Excel 文件
const newSheet = xlsx.build([{ name: 'Sheet1', data: mergedData }]);
fs.writeFileSync('output.xlsx', newSheet);
```
这里将所有 Excel 文件中第 1、2、3 列的数据合并成了一维数组 `mergedData`,然后使用 `newSheet` 生成了新的 Excel 文件 `output.xlsx`。
阅读全文