Li Ming

使用 nodejs 创建 Excel 文件

项目中需要使用到 Excel 作为附件,研究了一下当前的主要方案:

  • excel-export:生成的 excel 文件,Mac 下的 Excel 打开会报错
  • node-xlsx:支持打开 xlsx 和 创建 xlsx

创建一个 Excel,并保存为本地文件

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

var data = [
    ['名称', '简介', '报酬', '时间', '人员', '编号', '金额', '手机'],
    ['test', 'intro', '100块', new Date(2017, 11, 9), 'Li Ming', '编号001', 500, '\'13800138000']
];
var result = xlsx.build([{name: "MySheet1", data: data}]); 
var uploadDir = __dirname;
var filename = 'filename';    // 只支持字母和数字命名
var random = Math.floor(Math.random()*10000+0);
var filePath = uploadDir + "/" + filename + random + ".xlsx";

fs.writeFile(filePath, result, 'binary',function(err){
    if(err){
        console.log(err);
    }
});

创建一个两个 sheet 的文件

唯一的区别是 xlsx.build() 接受的数组,有两个对象