nodejs excel导入导出
来源:互联网 发布:歌词找歌名软件 编辑:程序博客网 时间:2024/04/26 09:25
- nodejs excel导入导出
- 用excel-export包导出
- 1安装excel-export
- 2自定义exportExcel函数封装
- 3业务使用
- excel导入
- 1需要安装的包
- 2前端代码示例
- 3后端代码示例
- 用excel-export包导出
nodejs excel导入导出
用excel-export包导出
1.1安装excel-export
npm install --save excel-export
1.2自定义exportExcel函数,封装
var nodeExcel = require('excel-export');/** * * @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和rowsvar 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');............router.get('/exportMember',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:F20 var 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);})
0 0
- nodejs excel导入导出
- 用NODEJS处理EXCEL文件导入导出
- 用NODEJS处理EXCEL文件导入导出,文件上传
- nodejs 导出excel
- nodejs:Excel导出json
- nodejs导出excel表格
- nodejs导出excel实战
- NodeJS excel 导出(exceljs)
- [nodejs]excel表格导出
- nodejs Excel的下载导出
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- 导入/导出Excel
- EXCEL导入导出
- Excel导入&导出
- 数据库导入导出Excel
- 导入/导出Excel
- C#中操作Word(2)—— 新建、打开、保存和关闭文档
- 微信小程序-问题记录
- Android使用ShareSDK分享到新浪微博
- java数据类型的转换
- Scala数组
- nodejs excel导入导出
- Xcode 中的编译过程以及编译器
- 关于android studio闪退的问题
- Hibernate SessionFactory与Session
- Redis使用详细教程
- JSP小结-Cookie与Session
- Java开发环境问题
- CircleProgressBar 带载入动画的环形进度条
- Java compiler level does not match the version