资讯专栏INFORMATION COLUMN

基于koajs的一个简易Excel生成服务

qylost / 2556人阅读

摘要:起因运营人员需要将后台的表格导出成,由于后端的同学忙于其他事情,想着是不是可以自己做一个服务来生成。另外再搭配就可以提供一个允许跨域请求的服务。这样一个简单的接口就写完了,只要调用传入和就可以生成文档。

起因

运营人员需要将后台的表格导出成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

相关文章

  • 前端文档收集

    摘要:系列种优化页面加载速度的方法随笔分类中个最重要的技术点常用整理网页性能管理详解离线缓存简介系列编写高性能有趣的原生数组函数数据访问性能优化方案实现的大排序算法一怪对象常用方法函数收集数组的操作面向对象和原型继承中关键词的优雅解释浅谈系列 H5系列 10种优化页面加载速度的方法 随笔分类 - HTML5 HTML5中40个最重要的技术点 常用meta整理 网页性能管理详解 HTML5 ...

    jsbintask 评论0 收藏0
  • 前端文档收集

    摘要:系列种优化页面加载速度的方法随笔分类中个最重要的技术点常用整理网页性能管理详解离线缓存简介系列编写高性能有趣的原生数组函数数据访问性能优化方案实现的大排序算法一怪对象常用方法函数收集数组的操作面向对象和原型继承中关键词的优雅解释浅谈系列 H5系列 10种优化页面加载速度的方法 随笔分类 - HTML5 HTML5中40个最重要的技术点 常用meta整理 网页性能管理详解 HTML5 ...

    muddyway 评论0 收藏0
  • 基于koajsweb项目构建(二)

    摘要:根据基于的项目构建一所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布。对于自己,仅作文去尝试清楚的阐述自己构建项目的一些实践。随意的编码风格最终导致项目代码的可维护性低,新加入成员学习成本提高。 根据 基于koajs的web项目构建(一) 所描述的,建立了项目的基本目录结构,接下来的工作便是编码,编译,测试,发布。做为这些工作,每一项工作都有自己的学问,针对这...

    ZweiZhao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<