• nodejs excel导入导出

    • 用excel-export包导出

      • 1安装excel-export
      • 2自定义exportExcel函数封装
      • 3业务使用
    • excel导入
      • 1需要安装的包
      • 2前端代码示例
      • 3后端代码示例

nodejs excel导入导出

用excel-export包导出

1.1安装excel-export

npm install --save excel-export

1.2自定义exportExcel函数,封装

var nodeExcel = require('excel-export');/*** 导出excel* @param _headers example  [{caption:'用户状态',type:'string'},{caption:'部门',type:'string'},{caption:'姓名',type:'string'},{caption:'邮箱',type:'string'},{caption:'有效期',type:'string'},{caption:'身份',type:'string'}];* @param rows example [['未激活','信息部','testname','123@qq.com','2019-11-09','管理员'],['未激活','信息部','testname2','12345@qq.com','2019-11-09','普通成员']]*/
exports.exportExcel = function(_headers,rows){var conf ={};conf.name = "mysheet";conf.cols = [];for(var i = 0; i < _headers.length; i++){var col = {};col.caption = _headers[i].caption;col.type = _headers[i].type;conf.cols.push(col);}conf.rows = rows;var result = nodeExcel.execute(conf);return result;
}

1.3业务使用

....
router.get('/exportMember',function(req, res) {.....
//自己构造_headers和rows,导出excel
var result = exportExcel(_headers,rows);res.setHeader('Content-Type', 'application/vnd.openxmlformats');res.setHeader("Content-Disposition", "attachment; filename=" + "test.xlsx");res.end(result, 'binary');return;
}

excel导入

1需要安装的包

npm install --save busboy  //用来解析前端传的流文件
npm install --save xlsx   //解析excel文件

2前端代码示例

//enctype 必须设置成这种,可以将文件已流的形式传送到后台<form action="http://localhost:3001/system/importAccount" method='post' enctype="multipart/form-data">  <input type='file' name='file'> <input type='submit' value='submit'>    </form>

3后端代码示例

let XLSX = require('xlsx');
let Busboy = require('busboy');
......
......
//导入excel解析出来
router.get('/importMember',function(req, res) {......
......let busboy = new Busboy({headers: req.headers,limits: {files: 1,fileSize: 50000000}});busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {file.on('limit', function() {res.json(Result.FAIL('To large'));return});file.on('data', function(data) {console.log('File [' + fieldname + '] got ' + data.length + ' bytes');var workbook = XLSX.read(data);var sheetNames = workbook.SheetNames; // 返回 ['sheet1', 'sheet2',……]var worksheet = workbook.Sheets[sheetNames[0]];// 获取excel的第一个表格var ref = worksheet['!ref']; //获取excel的有效范围,比如A1:F20var reg = /[a-zA-Z]/g;ref = ref.replace(reg,"");var line = parseInt(ref.split(':')[1]); // 获取excel的有效行数console.log("line====>",line);// header ['姓名','邮箱','身份','部门','手机号'] //循环读出每一行,然后处理 for(var i = 2; i <= line; i++){if(!worksheet['A'+i] && !worksheet['B'+i] && !worksheet['C'+i] && !worksheet['D'+i] && !worksheet['E'+i] && i != 2){   //如果大于2的某行为空,则下面的行不算了break;}var name = worksheet['A'+i].v || '';var email = worksheet['B'+i].v || '';var role = worksheet['C'+i].v || '';var department = worksheet['D'+i].v || '';console.log("department===>",department);var phone = worksheet['E'+i].v || '';..............}}})return req.pipe(busboy);
})

nodejs excel导入导出相关推荐

  1. 注解+反射优雅的实现Excel导入导出(通用版)

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/youzi1394046585/ article/details/86670203 日常在做后 ...

  2. java超级简单到爆的Excel导入导出(easypoi)

    场景: 在日常工作中,excel导入导出,是十分常见的,有两种主流的技术,一种是jxl,另一种是poi,而easypoi就是对poi进行了封装,使得导入导出变得更加的简单,阿里巴巴也有封装的工具名叫E ...

  3. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  4. easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单

    做积极的人,而不是积极废人! 来源:jianshu.com/p/8f3defdc76d4EasyExcelGitHub上的官方说明快速开始maven仓库地址导入导出总结 EasyExcel 在做exc ...

  5. excel winform 导入 导出_强大的 Excel 导入导出工具 hutool

    " 最近项目上需要用到 Excel 的导入导出功能,想着之前使用的都有点麻烦,所以结合多方资料,终于找到了这个还算不错的 Excel 处理工具,一起来看" 今日安利好物名为 Hut ...

  6. easypoi 多sheet导入_程序员接私活利器 玩转excel导入导出

    为什么会写Easypoi 以前的以前(岁月真TMD的快)我虽然写了不少代码但还是很少写poi,然后跳到一家公司之后就和业务人员聊上了,来这个需要个报表,这个报表样式是这样的,这个表头是这样的,就这样我 ...

  7. SpringBoot集成EasyPoi实现Excel导入导出

    作者介绍: 本人Java特工,代号:Cris Li : 中文名:克瑞斯理 简书地址: 消失的码农 - 简书 CSDN地址: https://blog.csdn.net/jianli95 个人纯洁版博客 ...

  8. SpringBoot实现Excel导入导出,好用到爆,POI可以扔掉了!

    在我们平时工作中经常会遇到要操作Excel的功能,比如导出个用户信息或者订单信息的Excel报表.你肯定听说过POI这个东西,可以实现.但是POI实现的API确实很麻烦,它需要写那种逐行解析的代码(类 ...

  9. 【飞秋】ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    最近闲了,花点几天时间将项目中常用的一些类.方法做了一下总结,希望对大家有用. 实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回fa ...

最新文章

  1. Word无法使用超链接,提示:“由于本机的限制...”
  2. C++中的类所占内存空间总结
  3. SugarCRM 去掉 模块标题左边的 问号 和 帮助
  4. 无盘服务器回写盘intel,无盘回写盘碎片清理工具 完美解决无盘回写盘碎片
  5. SQL一些时间格式的转换
  6. Atitit.提升电子商务安全性 在线充值功能安全方面的设计
  7. 有时候能讲出来,比沉默要好吧
  8. 文件读写’r'和’rb’区别
  9. java jxl包_Java开源20个项目,最好别错过,帮助你灵活应对面试师的刁难
  10. 杭州登山地图是谁开发的_浙江新添7个省级运动休闲小镇!杭州这个地方榜上有名!...
  11. Excel函数、快捷键等
  12. Pseudo-terminal will not be allocated because stdin is not a terminal
  13. KernelBase.dll中有未经处理的异常,求助大神!!!
  14. java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据
  15. Android多语言设置
  16. 计算机硬件的发展经历了电子管时代,计算机硬件的发展经历了电子管时代、晶体管时代、集成电路时代和_______。...
  17. Python3.6下CMD命令安装ipython
  18. 人脸识别评价参数之FAR和FRR
  19. GD32F407移植SR8201F
  20. 什么是过孔式导电滑环?

热门文章

  1. 高斯过程回归的权空间观点推导及代码实现
  2. colab Notes
  3. C++核心编程:P10->类和对象----多态
  4. 对于用假设检验判断某人有罪无罪的理解
  5. wegame饥荒一直登录中_苹果游戏推荐ios帐号共享 一小时人生(希望之村)移动版 模拟经营沙盒世界饥荒游戏...
  6. 权限提升:令牌窃取 || 进程注入.
  7. 微信小程序 按钮字体设置
  8. 微信小程序 绝对路径 require
  9. 数字货币新浪潮 | Libra 蓝皮书
  10. 判断Android手机是否有录音