运营人员须要将后台的表格导出成Excel,因为后端的同窗忙于其余事情,想着是否是能够本身作一个服务来生成。了解到有node-xlsx这样的工具之后就开工了。node
后台选用了koa,由于很是轻巧,写个接口只须要几行代码。git
var app = require('koa')(); app.use(function *(){ this.body = 'Hello'; }); app.listen(3000); console.log('listening on port 3000');
访问localhost:3000就能够看到Hello了。github
node-xlsx是一个nodejs下读写Excel的工具,使用方法很简单json
import xlsx from 'node-xlsx'; const data = [[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: "mySheetName", data: data}]); // Returns a buffer
以后就能够使用fs.writeFile来把buffer写入文件。另外再搭配koa-route,koa-cors就能够提供一个容许跨域请求的服务。后端
var route = require('koa-route'); app.use(require('koa-cors')());//enable cross-origin request app.use(route.post('/createExcel', createXls));
koa的中间件都是基于generator方法,createXls方法也不例外。跨域
var parse = require('co-body'); function *createXls() { var body = yield parse(this);//parse body to json var fileName = body.fileName; var _buffer = xlsx.build([{name: 'sheet1', data: body.data}]); fs.writeFileSync('./downloads/' + fileName + '.xlsx', _buffer); this.body = { "success": true, file: fileName }; }
这样一个简单的接口就写完了,只要调用http://localhost:3000/createE...传入fileName和data就能够生成Excel文档。app