使用nodejs处理Excel文件

目前支持写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文件夹下查询修改后文件

你可能感兴趣的:(使用nodejs处理Excel文件)