node模块之xlsx使用

作者: sujeking | 来源:发表于2018-12-27 20:21 被阅读67次

    最近同事在用java读取xlsx文件遇到困难,说是什么表格他复杂之类的,java呢,我不懂,那么就想用我伟大的nodejs,结果还真有那么厉害的。好了,我就不嫌弃java了,这里当做小笔记,绝非复制粘贴。

    npm i xlsx -S
    

    读取数据

    let xlsx = require('xlsx');
    
    let workbook = xlsx.readFile('susu.xlsx'); //workbook就是xls文档对象
    
    let sheetNames = workbook.SheetNames; //获取表明
    
    let sheet = workbook.Sheets[sheetNames[0]]; //通过表明得到表对象
    
    var data =xlsx.utils.sheet_to_json(sheet); //通过工具将表对象的数据读出来并转成json
    

    写数据

    let xlsx = require('xlsx');
    let json = [ 
        {"大标题":null},
        {null:"大标题"},
        {null:"大标题"},
        {null:"大标题"},
        { Name: 'name_01', Age: 21, Address: 'address_01' },
        { Name: 'name_02', Age: 22, Address: 'address_02' },
        { Name: 'name_03', Age: 23, Address: 'address_03' },
        { Name: 'name_04', Age: 24, Address: 'address_04' },
        { Name: 'name_05', Age: 25, Address: 'address_05' }, ];
    
    let ss = xlsx.utils.json_to_sheet(json); //通过工具将json转表对象
    let keys = Object.keys(ss).sort(); //排序 [需要注意,必须从A1开始]
    
    let ref = keys[1]+':'+keys[keys.length - 1]; //这个是定义一个字符串 也就是表的范围[A1:C5] 
    
    let workbook = { //定义操作文档
        SheetNames:['nodejs-sheetname'], //定义表明
        Sheets:{
            'nodejs-sheetname':Object.assign({},ss,{'!ref':ref}) //表对象[注意表明]
        },
    }
    
    xlsx.writeFile(workbook,"./suzhenwei.xls"); //将数据写入文件
    

    相关文章

      网友评论

        本文标题:node模块之xlsx使用

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