nodejs读写excel并对内容加解密

该代码示例展示了如何在Node.js环境中使用js-base64库进行Base64加密和解密操作,同时结合node-xlsx库读取和写入Excel文件。程序首先读取名为123.xlsx的Excel文件,处理Sheet1中的数据,对用户表的工号进行加密,并将加密后的值写入新的Excel文件denglu.xlsx中。
摘要由CSDN通过智能技术生成

1.cnpm install js-base64

2.cnpm install node-xlsx

3.代码:

1)加解密:

var { Base64 } = require('js-base64');

// 加盐

let salting = 'admin-authority'

// 加密

const encryptString = (name) => {

    return Base64.encode(name + salting)

}

// console.log(encryptString("1074116101"))

// var a = encryptString("1074116101")

const decodeString = (name) => {

    let decodeName = Base64.decode(name) || ''

    if (decodeName && decodeName.split && decodeName.split(salting) && decodeName.split(salting)[0]) {

        return decodeName.split(salting)[0]

    } else {

        return ''

    }

}

// console.log(decodeString(a))

// export { encryptString, decodeString }

module.exports = { encryptString , decodeString}

2)读写excel

var { encryptString, decodeString } = require("./index4")

var xlsx = require('node-xlsx');

var fs = require('fs');

// 读取Excel数据

try {

    //用户表数据

    var userTableData = [];

    //部门表数据

    var miData = [];

    //表数据

    var tableData = xlsx.parse("123.xlsx");

    //循环读取表数据

    for (var val in tableData) {

        //下标数据

        var itemData = tableData[val];

        //用户表

        if (itemData.name == 'Sheet1') {

            //循环读取用户表数据

            for (var index in itemData.data) {

                //0为表头数据

                if (index == 0) {

                    continue;

                }

                //添加部门表数据

                userTableData.push({

                    gonghao: itemData.data[index][0]

                });

            }

        }

    }

    // userTableData.forEach(item => console.log(item.gonghao))

    userTableData.forEach(item => {

        // let secretgonghao = window.atob(item.gonghao)

        // console.log(secretgonghao)

        console.log(item.gonghao)

        let se = encryptString(item.gonghao)

        miData.push({ "gonghao": item.gonghao, "se": se })

    })

    //输出用户表数据

    console.log("----输出用户表数据-------------");

    miData.forEach(item => console.log(item))

    console.log("---------------------");

    console.log(decodeString("MTA3NDExNjE0MmFkbWluLWF1dGhvcml0eQ=="))

    console.log("+++++++++++++++++++++++++++++++");

    var excelData = [];

    //表1

    {

        //添加数据

        var addInfo = {};

        //名称

        addInfo.name = "用户表";

        //数据数组

        addInfo.data = [

            ["gonghao", "jiamigonghao", "xiaozhang"],

        ];

        //添加数据

        // addInfo.data.push();

        // addInfo.data.push([10001, "李四", "男", 40]);

        miData.forEach(item => addInfo.data.push([item.gonghao, item.se, 0]))

        //添加数据

        excelData.push(addInfo);

    }

    //表2

    // {

    //     //添加数据

    //     var addInfo = {};

    //     //名称

    //     addInfo.name = "部门表";

    //     //数据数组

    //     addInfo.data = [

    //         ["部门ID", "部门名称"],

    //     ];

    //     //添加数据

    //     addInfo.data.push([10000, "技术部"]);

    //     addInfo.data.push([10001, "财务部"]);

    //     //添加数据

    //     excelData.push(addInfo);

    // }

    // 写xlsx

    var buffer = xlsx.build(excelData);

    //写入数据

    fs.writeFile('./denglu.xlsx', buffer, function (err) {

        if (err) {

            throw err;

        }

        //输出日志

        console.log('Write to xls has finished');

    });


 

}

catch (e) {

    //输出日志

    console.log("excel读取异常,error=%s", e.stack);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值