目前支持写Excel的node.js模块:
node-xlsx: 基于Node.js解析excel文件数据及生成excel文件;
excel-parser: 基于Node.js解析excel文件数据,支持xls及xlsx格式文件;
excel-export : 基于Node.js将数据生成导出excel文件,生成文件格式为xlsx;
node-xlrd: 基于node.js从excel文件中提取数据,仅支持xls格式文件。
使用node-xlsx操作Excel文件
用一个处理Excel文件的项目来说明
首先新建文件夹xlsx,在此文件夹下安装依赖
$ npm init
$ npm install --save node-xlsx
新建input文件夹,并将需要修改的文件拷贝到此文件夹下
新建index.js文件
const xlsx = require('node-xlsx')
const fs=require('fs');
//readdir为读取该文件夹下的文件
fs.readdir('./input', function(err,files){
files.forEach((file) => {
let path = `${__dirname}/input/${file}`;
console.log(path);
//表格解析
let sheetList = xlsx.parse(path);
//对数据进行处理
sheetList.forEach((sheet) => {
sheet.data.forEach((row, index) => {
let rowIndex = index;
row.forEach((cell, index) => {
let colIndex = index;
if(cell !== undefined){
sheet.data[rowIndex][colIndex] = cell.replace(/replaced text1/g, '')
.replace(/replaced text2/g, '');
let reg = /\{([\u4e00-\u9fa5\.\w\:\、\/\d\s《》-]*)\|[\u4e00-\u9fa5\.\w\:\、\/\d\s《》-]*\}/;
let tempStr = sheet.data[rowIndex][colIndex];
while(reg.test(tempStr)){
tempStr = tempStr.replace(reg, RegExp.$1);
// console.log(tempStr);
}
sheet.data[rowIndex][colIndex] = tempStr;
}
})
})
console.log(sheet);
})
//数据进行缓存
let buffer = xlsx.build(sheetList);
//将缓存的数据写入到相应的Excel文件下
fs.writeFile(path.replace(/input/, 'output').replace(/\./, '修改版.'), buffer, function(err){
if (err) {
console.log(err);
return ;
}
});
})
})
执行js脚本:
node index.js
在output文件夹下查询修改后文件