Excel文件导入导出(基于Nodejs、exceljs)
Excel导入、导出是大多数项目的管理后台必备功能。几年来使用过多个该功能的实现包,最近一次开发该功能,突然发现一个人气极高(3000+)的包,这里记录一下使用方法。
大凡厉害的技术的文档咋一看都想字典一样,让人懵逼。exceljs这个包也貌似不易入手,但实际上,还是很简单易用的。
导出
// controller.js
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet();
worksheet.columns = excelInfo.balanceFlow.columns;
worksheet.addRows(result.rows);
ctx.response.attachment(excelInfo.balanceFlow.filename);
ctx.status = 200;
await workbook.xlsx.write(ctx.res);
ctx.res.end();
同上文代码,引入包、创建工作簿(同创建excel文件)、创建工作页(同Excel的sheet1编辑)、写表头、写表格数据、最后输出文件流,就这么简单几步就完成了Excel文件的导出。其中,addRows()方法的传参,是传最常规的列表数据结构,形如[{},{},{}...]。
这里简单啰嗦一下,所谓本文的Excel文件导出,实际是服务端从数据库获取数据,并用获取到的数据生成Excel文件的过程 。
Excel表头配置文件如下:
module.exports = {
userList: {
filename: '用户列表.xlsx',
columns: [
{header: '用户ID', key: 'id', width: },
{header: '用户账号', key: 'username', width: },
{header: '用户姓名', key: 'nickname', width: },
{header: '注册日期', key: 'createdAt', width: , style: {numFmt: 'yyyy/dd/mm hh:mm:ss'}},
{header: '启用状态', key: 'usertype', width: }
]
},
};
使用该包遇到的最大麻烦是,前端如何接收文件数据。该包提供了三种文件数据输出方式,1.直接writeFile()生成Excel文件,由前端直接访问文件。2.write()方法生成文件数据,前端在新的标签页访问URL,会自动将相应文件下载到本地;3.writeBuffer()生成buffer,由前端通过file-saver之类的前端工具转为文件,由于Buffer数据URL传输过程中的序列化问题,没有走通该方法,如有走通的朋友,可以留言,以供大家参考。
Excel文件导入导出(基于Nodejs、exceljs)的更多相关文章
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- Excel导入导出工具(简单、好用且轻量级的海量Excel文件导入导出解决方案.)
Excel导入导出工具(简单.好用且轻量级的海量Excel文件导入导出解决方案.) 置顶 2019-09-07 16:47:10 $9420 阅读数 261更多 分类专栏: java 版权声明:本 ...
- C# excel文件导入导出
欢迎关注微信公众号 C#编程大全 这里有更多入门级实例帮你快速成长 在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获! 环境:wi ...
- Excel文件导入导出
/** * 导入Excel文件数据 * * @param file 将要导入的Excel文件 * @param fileCheckKeyWord 用于判断导入文件是否 ...
- postman 测试Excel文件导入导出功能
1.导入的测试方法 选择form-data,key值填写方法对应的参数,选择File,Value处上传文件即可. 2. 导出的测试方法 在导出文件的时候,响应结果是乱码,然后在测试的时候选择下载,下载 ...
- 用NODEJS处理EXCEL文件导入导出,文件上传
參考文章 http://librajt.github.io/2013/08/04/handle-excel-file-with-nodejs/ 对照了 ExcelJS ,https://github. ...
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- Laravel Excel 实现 Excel-CSV 文件导入导出功能
Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...
- PowerDesigner数据库设计PDM基于Excel的导入导出总结
经常用到pdm来管理代码,一两张表,手写一下还凑合,一旦表多了,就慌了.于是,开始学习用vbs进行Excel的来快速导入导出操作PDM就变得很紧急了,搜罗了网络上的很多vbs脚本,各有各的优点,但对于 ...
随机推荐
- 帆软报表(finereport) 折叠树
在进行展现数据时,希望模板的数据是可以动态折叠的,即点击数据前面的加号才展开对应下面的数据,可通过树节点按钮实现折叠树效果 实现思路: 1.这里建立一个内置数据集 添加数据 设置模板样式,添加颜色和对 ...
- 【原创】大叔问题定位分享(30)mesos agent启动失败:Failed to perform recovery: Incompatible agent info detected
mesos agent启动失败,报错如下: Feb 15 22:03:18 server1.bj mesos-slave[1190]: E0215 22:03:18.622994 1192 slave ...
- Linux-CentOS 重置root密码
1. 重启服务器,在读秒的时候按任意键,就会出现如下界面 2.接着按下e就会进入到如下界面. 将光标移动到kernel那一行,然后再一次按‘e’,进入kernel该行的编辑界面 3.这就是kernel ...
- 使用wps插件,实现word转PDF
项目需求:不打算用office自带的组件实现word转pdf操作 环境需求:安装wps2016专业版 新建一个控制台应用程序 添加引用:在COM下 Kingsoft Add-In Designer和U ...
- js分析 天_眼_查 字体文件
0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...
- Consideration about improving mathematics study
In this article, I’ll present my ideas about how to improve mathematics study, which are the forewor ...
- Xshell 连接 vmware中的CentOS 7
参考内容: Xshell 连接 CentOS 7 与 Ubuntu Server,http://www.linuxidc.com/Linux/2017-03/141333.ht ...
- symfony-表单学习
---恢复内容开始--- 构成表单的几个元素 1.数据模型 M 一种比较抽象的概念,按我的理解来说,本质上就是数据的一种存在形式,可以看做一个类,一般对这些模型进行crud操作.一种是真实存在的数据模 ...
- 基于Anaconda安装tensorflow-GPU和caffe-GPU
1.创建虚拟环境 我们先创建一个用于caffe和tensorflow共存的虚拟环境,安装完成后激活环境. conda create -n caffe_tf_36 python=3.6 source a ...
- 动态规划——Edit Distance
大意:给定两个字符串word1和word2,为了使word1变为word2,可以进行增加.删除.替换字符三种操作,请输出操作的最少次数 Example 1: Input: word1 = &quo ...