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;

原文地址:https://www.cnblogs.com/wang-jing/p/3968700.html