摘要:起因运营人员需要将后台的表格导出成,由于后端的同学忙于其他事情,想着是不是可以自己做一个服务来生成。另外再搭配就可以提供一个允许跨域请求的服务。这样一个简单的接口就写完了,只要调用传入和就可以生成文档。
起因
运营人员需要将后台的表格导出成Excel,由于后端的同学忙于其他事情,想着是不是可以自己做一个服务来生成。了解到有node-xlsx这样的工具以后就开工了。
框架后台选用了koa,因为非常轻巧,写个接口只需要几行代码。
var app = require("koa")(); app.use(function *(){ this.body = "Hello"; }); app.listen(3000); console.log("listening on port 3000");
访问localhost:3000就可以看到Hello了。
node-xlsx是一个nodejs下读写Excel的工具,使用方法很简单
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文档。
源码https://github.com/graysheeep...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/91637.html
摘要:根据基于的项目构建一所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布。对于自己,仅作文去尝试清楚的阐述自己构建项目的一些实践。随意的编码风格最终导致项目代码的可维护性低,新加入成员学习成本提高。 根据 基于koajs的web项目构建(一) 所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布。做为这些工作,每一项工作都有自己的学问,针对这...
阅读 2985·2021-11-22 13:54
阅读 822·2021-11-04 16:08
阅读 4213·2021-10-11 11:09
阅读 3560·2021-09-22 16:05
阅读 858·2019-08-30 15:54
阅读 372·2019-08-30 15:44
阅读 581·2019-08-30 14:05
阅读 1002·2019-08-30 12:46