• node.excel


    今天突然间想起来用node如何操作excel,记得之前用Java的poi操作excel,感觉特别爽,计算机代替人的工作,非常有用,所以决定摸索一下。

    在网上找了各种模块,有导出的,有导入的,有转为json的。觉得靠谱的就两种方法:

    1、stackoverflow中,通过类csv(用tab代替,)来转换,保存为xls。以fs为基础。这种方法生成xls格式,不能使用xlsx,由于我电脑上没有07版,所以这种不靠谱。

    2、node-xlsx,可以读写xlsx的格式:

    //读出
    var xlsx=require('node-xlsx');
    var obj = xlsx.parse('fs.xlsx');
       //第一个工作表的数据
       var data = obj.worksheets[0].data;
       //列数
       var maxCol = obj.worksheets[0].maxCol;
       //行数
       var maxRow = obj.worksheets[0].maxRow;
       for(var i=0;i<maxRow;i++) {
           console.log("第"+(i+1)+"行的数据:");
           for(var j=0;j<maxCol;j++) {
               console.log(data[i][j].value);
           }
       }

    // 解析 新版 写法

     var obj = xlsx.parse(uploaded_path);
     // 二维数组
     var data = obj[0].data;

     

    node-xlsx 0.11.0

    const result = [[1, 2, 3], [true, false, null, 'sheetjs'], ['foo', 'bar', new Date('2014-02-19T14:30Z'), '0.3'], ['baz', null, 'qux']];
    var buffer = xlsx.build([{name: "sheetname", data: result}]); // Returns a buffer
    fs.writeFile(path.resolve('./public/data/result.xlsx'),buffer,function(err){  
      if(err)  
        return console.error(err);  
        console.log('保存文件成功');  
    });

    新版node-xlsx写入采用buffer的形式;

    path.resolve(): 参数是绝对路径;

    不需要新建result.xlsx;

  • 相关阅读:
    条款1:理解模板类型推导
    非受限联合体
    整型
    vector作为函数返回类型
    SQL Server数据库空间管理 (1)
    1085 PAT单位排行 (25 分
    1084 外观数列 (20 分)
    1083 是否存在相等的差 (20 分)
    1082 射击比赛 (20 分)
    1081 检查密码 (15 分)
  • 原文地址:https://www.cnblogs.com/wang-jing/p/3968700.html
Copyright © 2020-2023  润新知