一个NodeJS生成excel表格的小demo

环境准备

已经2018年了,广大人民群众基本都用上es6了,所以这里也配一下es6的环境

新建工程,创建一个package.json

1
2
3
4
5
6
{
"name": "projectName",
"version": "1.0.0",
"devDependencies": {},
"dependencies": {}
}

node版本建议不要太低,低版本对es6的兼容性不好,我这里使用的是8.9.0

然后安装babel

1
2
3
4
yarn add babel-cli

// 老版本babel-preset-2015已经废弃
yarn add babel-preset-env

然后再写几句es6测试一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 新建一个诗人类
class Poet {
poem(...poemText) {
console.log(poemText);
}
}

epxort default Poet;

//新建一个Test.js类
import Poet from './Poet';
let poet = new Poet();
poet.poem('苟', '岂');

// 然后用babel node指令跑一下Test.js
babel-node Test.js
// [ '苟', '岂' ]
// 成功念出我想念的诗

es6环境就ok了

生成excel

我这里用的是一个随便找的库excel-export,这个库的issue已经有人在喊”This project is DEAD!!!”

无视他继续安装

1
yarn add excel-export

使用方法我这里也只是简单用一下基本功能,高级用法还是直接看该库的文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const conf = {};
// 定义sheet名称
conf.name = "DBData";
// 定义列的名称以及数据类型
conf.cols = [{
caption:'Name',
type:'string'
},{
caption:'Type',
type:'string'
}];

// 定义row的数据
conf.rows = ['Tom', "String"];
// execute方法生成文件源数据
const result = nodeExcel.execute(conf);
// fs将文件写到内存
fs.writeFile(`${__dirname}/test.xlsx`, result, 'binary', (err) => {
err ? console.log(err) : null;
});

Demo的代码地址ExcelGenerator