摘要:起因運營人員需要將后臺的表格導出成,由于后端的同學忙于其他事情,想著是不是可以自己做一個服務來生成。另外再搭配就可以提供一個允許跨域請求的服務。這樣一個簡單的接口就寫完了,只要調用傳入和就可以生成文檔。
起因
運營人員需要將后臺的表格導出成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...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91637.html
摘要:根據基于的項目構建一所描述的,建立了項目的基本目錄結構,接下來的工作便是編碼,編譯,測試,發(fā)布。對于自己,僅作文去嘗試清楚的闡述自己構建項目的一些實踐。隨意的編碼風格最終導致項目代碼的可維護性低,新加入成員學習成本提高。 根據 基于koajs的web項目構建(一) 所描述的,建立了項目的基本目錄結構,接下來的工作便是編碼,編譯,測試,發(fā)布。做為這些工作,每一項工作都有自己的學問,針對這...
閱讀 3082·2021-11-22 13:54
閱讀 840·2021-11-04 16:08
閱讀 4525·2021-10-11 11:09
閱讀 3604·2021-09-22 16:05
閱讀 929·2019-08-30 15:54
閱讀 395·2019-08-30 15:44
閱讀 601·2019-08-30 14:05
閱讀 1020·2019-08-30 12:46