NodeJS excel 导入(js-xlsx)

js-xlsx github地址:https://github.com/SheetJS/js-xlsx

1、准备 excel文档
##

这里写图片描述

2、解析方法
const XLSX = require("xlsx");

function importExcel(filePath, callback) {
    var data = [];
    var err = null;
    try {
        // Everything went fine
        var workbook = XLSX.readFile(filePath); //整个 excel 文档
        var sheetNames = workbook.SheetNames; //获取所有工作薄名

        //console.log(sheetNames);

        //解析
        var sheet1 = workbook.Sheets[sheetNames[0]]; //根据工作薄名获取工作薄

        /*
         sheet1['!ref'] 获取工作薄的有效范围 'A1:C20'
         XLSX.utils.decode_range 将有效范围转为 range对象
         range: {s: {r:0, c:0}, e: {r:10, 3}}
         */
        var range = XLSX.utils.decode_range(sheet1['!ref']);

        //循环获取单元格值
        for(var R = range.s.r; R <= range.e.r; ++R) {
            var row = [],flag = false;
            for(var C = range.s.c; C <= range.e.c; ++C) {
                var row_value = null;
                var cell_address = {c:C, r:R}; //获取单元格地址
                var cell = XLSX.utils.encode_cell(cell_address); //根据单元格地址获取单元格
                if(sheet1[cell]) //获取单元格值
                    row_value = sheet1[cell].v;
                else
                    row_value = '';
                row.push(row_value);
            }
            //判断整行是否都为空,是则去掉
            for(var i = 0; i < row.length; i++){
                if(row[i] != '') {
                    flag = true;
                    break;
                }
            }
            if(flag) data.push(row);
        }
    } catch (e) {
        err = '解析出错' + e.toString();
    }

    callback(err, data);
}

importExcel('in.xlsx', function (err, data) {
    if(err){
        console.log(err);
    } else {
        console.log(data)
    }
})

3、测试结果

这里写图片描述

————————╮(╯_╰)╭————————
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以帮你写这个脚本。首先,需要安装 `node-xlsx` 模块,可以通过以下命令安装: ``` npm install node-xlsx ``` 然后,可以使用以下代码实现你的需求: ```javascript const xlsx = require('node-xlsx'); const fs = require('fs'); const path = require('path'); const directoryPath = '/path/to/xlsx/files'; // xlsx文件所在的目录 const searchString = '特定内容'; // 要删除的单元格包含的内容 // 读取目录下的所有xlsx文件 fs.readdir(directoryPath, (err, files) => { if (err) throw err; files.forEach((file) => { if (path.extname(file) === '.xlsx') { // 只处理xlsx文件 const filePath = path.join(directoryPath, file); const sheets = xlsx.parse(filePath); // 解析xlsx文件 // 遍历工作表,查找包含特定内容的单元格并删除 sheets.forEach((sheet) => { for (let i = sheet.data.length - 1; i >= 0; i--) { const row = sheet.data[i]; for (let j = row.length - 1; j >= 0; j--) { const cell = row[j]; if (typeof cell === 'string' && cell.includes(searchString)) { row.splice(j, 1); } } if (row.length === 0) { sheet.data.splice(i, 1); } } }); // 将修改后的工作表重新写入xlsx文件 const buffer = xlsx.build(sheets); fs.writeFile(filePath, buffer, (err) => { if (err) throw err; console.log(`File ${filePath} processed`); }); } }); }); ``` 这个脚本会读取指定目录下的所有xlsx文件,并且遍历每个文件中的工作表,查找包含特定内容的单元格并删除。最后将修改后的工作表重新写入文件。你需要将 `directoryPath` 和 `searchString` 替换为你实际的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值