美文网首页报表
使用nodejs处理Excel文件

使用nodejs处理Excel文件

作者: Cathy_daydayup | 来源:发表于2019-02-18 16:18 被阅读0次

    目前支持写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文件

        本文链接:https://www.haomeiwen.com/subject/xsnaeqtx.html