nodejs koa框架下载和导入excel
ac.js
const service = require("../service/model.service");
const urlencode = require("urlencode");
const helper = require("../../utils/helper");
module.exports = {
/**
* @description: 下载导入度量模板
* @param {type}
* @return:
*/
"GET /model/metricsDown": async (ctx, bean) => {
let excel = await service.metricsDown(bean);
if (!excel) {
throw new Error("下载失败");
}
let name = urlencode(excel.sheetName + '.xlsx', "utf-8");
ctx.response.set(
"Content-Disposition",
"attachment; " + helper.setDownLoadFilename(ctx.req.headers["user-agent"], name)
);
ctx.response.body = excel.buffer; // 返回在响应体里
},
/**
* @description: 导入度量
* @param {type}
* @return:
*/
"POST /model/metricsImport": async (ctx, bean) => {
const file = ctx.request.files.file; // 获取上传文件
let result = await service.metricsImport(file, bean);
return result
},
}
serve.js
const dao = require("../dao/model.dao");
const mysql = require("mysql");
const h = require("../../utils/helper");
const { v4: uuidv4 } = require('uuid');
const xlsx = require("node-xlsx");
const path = require('path');
const fs = require('fs');
module.exports = {
/**
* @description: 下载导入度量模板
* @param {*} need
* @return {*}
*/
async metricsDown() {
var data = [['度量名称', '度量英文名', '度量SQL'], ['必填项', '必填项', '必填项']];
const sheetName = '导入度量模板';
var buffer = xlsx.build([{ name: sheetName + ".xlsx", data: data }]);
return {
sheetName,
buffer,
};
},
/**
* @description: 导入度量
* @param {*} need
* @return {*}
*/
async metricsImport(file, params) {
// 创建可读流
if (!params.fileName || !params.code) throw new Error("参数不合法!!!");
const reader = fs.createReadStream(file.path);
if (!params.fileName.endsWith('xls') && !params.fileName.endsWith('xlsx')) {
throw new Error('请上传xls或xlsx格式的文件');
}
let filePath = path.join(__dirname, "../../../download/") + `${file.name}`;
// 创建可写流
const upStream = fs.createWriteStream(filePath);
// 可读流通过管道写入可写流
reader.pipe(upStream);
return filePath
},
}
nodejs koa框架下载和导入excel的更多相关文章
- Lumen5.5,使用laravel excel 下载 、导入excel文件
1.安装 首先是安装laravel excel,使用composer安装 composer require maatwebsite/excel ~2.1.0 2.配置 在bootstrap/app.p ...
- IE8下导入EXCEL数据传到客户端以附件下载
IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...
- nodejs 中koa框架下的微信公众号开发初始篇
最近在搞微信公众号开发,后端采用的是nodejs下的koa框架,初识后端的菜鸟,自己搞难度太大了,网上找了很多文章,采用的中间件大都是express框架下的,不过好在爬了许多坑之后总算看见点曙光了,遂 ...
- Spring Boot下的一种导入Excel文件的代码框架
1.前言 Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...
- 基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后, ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- JSP导入EXCEL样式
http://demo.gcpowertools.com.cn/spreadjs/exceliosample/exceliosample/ Java实现导入Excel: 1.做一个jsp页面,页面包括 ...
- ThinkPHP导入Excel文件(使用PHPExcel)
一. 主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据.下载地址:http://phpexcel.codeplex.com/ O.开发 ...
- SpringBoot2.x使用EasyPOI导入Excel浅谈
SpringBoot2.x使用EasyPOI导入Excel浅谈 平时经常遇到客户要帮忙导入一些数据到数据库中,有些数据比较多有时候手动录入就会很耗时间,所以就自己写一个Excel导入的demo记录一下 ...
- Koa 框架整理
学习交流 Koa使用了ES6规范的generator和异步编程是一个更轻量级Web开发的框架,Koa 的先天优势在于 generator.由于是我个人的分享交流,所以Node基础.ES6标准.Web开 ...
随机推荐
- 优化搜索排序结果从而“ 提升CTR、CVR业务指标”
简介: 搭建搜索功能不难,难的是如何提高搜索质量,帮助用户快速找到心中所想的内容或商品,那么搜索结果的相关性排序则是影响用户体验最关键的一环,本文通过阿里云开放搜索电商行业解决方案和大家聊一聊如何优化 ...
- 从 2018 年 Nacos 开源说起
2018 年夏天 国内微服务开源 领域,迎来了一位新成员.此后,在构建微服务注册中心和配置中心的过程中,国内开发者多了一个可信赖的选项. Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务 ...
- Hologres如何支持亿级用户UV计算
简介: 本文将介绍阿里云Hologres如何基于RoaringBitmap进行UV等高复杂度计算的方案,实现亿级用户万级标签亚秒级分析,帮助用户从Kylin平滑迁移到Hologres,实现更实时.开发 ...
- 为余势负天工背,云原生内存数据库Tair助力用户体验优化
简介:作为双11大促承载流量洪峰的利器,Tair支撑了电商交易核心体验场景.不仅在数十亿QPS的峰值下保持着亚毫秒级别的顺滑延迟,同时在电商交易核心体验场景上也做出了技术创新. 作者 | 漠冰 ...
- Flink 1.12 资源管理新特性回顾
简介: 介绍 Flink 1.12 资源管理的一些特性,包括内存管理.资源调度.扩展资源框架. 本文由社区志愿者陈政羽整理,Apache Flink Committer.阿里巴巴技术专家宋辛童,Apa ...
- [BEX] Quasar BEX 提供的那些配置
Manifest.json https://developer.chrome.com/extensions/manifest Background Script & Content Scrip ...
- 015_元器件BOM表的输出与打印
015_元器件BOM表的输出与打印 BOM表,选中dsn/tools/Bill of materials/Header后添加封装参数\tPCB Footprint,Combined property ...
- SpringMVC学习五(resultful风格/异常处理/注解)
resultful风格 异常处理 1.Restfule风格 Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件.主要适用于客户端和服务器端交互的软件.是基于http协 ...
- 高性能远程控制软件,完美替代Anydesk
Anydesk是一款来自德国的远程软件,据悉是Teamviewer团队成员出来独立门户做的.Anydesk给人一种小而美的感觉,软件体积小,性能高,被视为Teamviewer的替代产品.现在,AnyD ...
- RediSearch的简单使用与总结
前言 之前就有考虑过想要研究下RediSearch,号称高性能全文索引的功能,这几天闲来无事调研了一番. RediSearch 介绍 RediSearch 是 Redis Labs 提供的一款强大且高 ...