🌟前言
哈喽小伙伴们,新的专栏 Node 已开启;这个专栏里边会收录一些Node的基础知识和项目实战;今天我们带领大家初识一下 Node第三方包 node-xlsx ;让我们一起来看看吧🤘
🌟node-xlsx
node-xlsx => npm地址
简单的 excel 文件解析器和生成器。
依靠SheetJS xlsx模块来解析/构建 excel 工作表。
使用TypeScript构建,用于对库中导出的类型进行静态类型检查。
🌟安装
npm install node-xlsx --save
import xlsx from 'node-xlsx'; var xlsx = require('node-xlsx').default;
🌟导出xlsx文件
var xlsx = require('node-xlsx').default; var fs = require("fs"); var data = [ ['未激活','信息部','testname','123@qq.com','2019-11-09','管理员'], ['未激活','信息部','testname2','12345@qq.com','2019-11-09','普通成员'] ]; var buffer = xlsx.build([{name:'test',data:data}]) fs.writeFileSync('./1.xlsx',buffer)
var xlsx = require('node-xlsx').default; var fs = require("fs"); var arr= [ {name:"张三",age:19}, {name:"李四",age:18} ] //将 arr中的对象处理为数组 var data = arr.map(function(index, elem) { console.log(index) return Object.values(index); }) //获取表头,添加到数组中第一个 data.unshift(Object.keys(arr[0])) var buffer = xlsx.build([{name:'test',data:data}]) fs.writeFileSync('./2.xlsx',buffer)
🌟解析xlsx文件
var xlsx = require('node-xlsx').default; var fs = require("fs"); var data = xlsx.parse('./2.xlsx'); console.log(data[0].data)
🌟另外:其他支持读写Excel的Node.js模块有:
node-xlsx: 可读写excel文件,仅支持xlsx格式文件;
excel-parser: 仅可读excel文件,支持xls及xlsx格式文件;
excel-export: 仅可导出excel文件,生成文件格式为xlsx;
node-xlrd: 仅可读excel文件,仅支持xls格式文件;
🌟直接导出excel文件
var data = [] var table = ` <table border='1' cellspacing='0'> <tr> <td>学校</td> <td>陕西理工大学</td> <td>实践项目名称</td> <td>${data['activity_theme']}</td> <td>实践开展时间</td> <td>从${data['activity_start_time']}到${data['activity_end_time']}</td> <td>授课教师</td> <td>${data['teacher']}</td> </tr> <tr> <td rowspan='2'>评价主体</td> <td colspan='6'>${data['name']}</td> </tr> <tr> <td colspan='2'>评价项目</td> <td colspan='3'> 评价指标及赋值标准</td> <td colspan='3'> 评价得分 (满分100) </td> </tr> <tr> <td rowspan='4' colspan='2'>实践教学准备</td> <td colspan='3'>教学设计思想10分</td> <td colspan='3'>${score['a']}</td> </tr> <tr> <td colspan='3'>教学资源建设5分</td> <td colspan='3'>${score['b']}</td> </tr> <tr> <td colspan='3'>教学目标制定10分</td> <td colspan='3'>${score['c']}</td> </tr> <tr> <td colspan='3'>活动情景营造5分</td> <td colspan='3'>${score['d']}</td> </tr> <tr> <td rowspan='5' colspan='2'>实践教学过程</td> <td colspan='3'>活动方法指导10分</td> <td colspan='3'>${score['e']}</td> </tr> <tr> <td colspan='3'>活动资源使用10分</td> <td colspan='3'>${score['f']}</td> </tr> <tr> <td colspan='3'>师生互动交流10分</td> <td colspan='3'>${score['g']}</td> </tr> <tr> <td colspan='3'>学生情绪状态5分</td> <td colspan='3'>${score['h']}</td> </tr> <tr> <td colspan='3'>学生思维状态5分</td> <td colspan='3'>${score['i']}</td> </tr> <tr> <td rowspan='4' colspan='2'>实践教学效果</td> <td colspan='3'>认知生成状态10分</td> <td colspan='3'>${score['j']}</td> </tr> <tr> <td colspan='3'>能力提升状态10分</td> <td colspan='3'>${score['k']}</td> </tr> <tr> <td colspan='3'>态度与价值观10分</td> <td colspan='3'>${score['l']}</td> </tr> <tr> <td colspan='2'>综合评价</td> <td colspan='6'>${data['totalscore']}</td> </tr> <tr> <td colspan='6'> ${data['evaluate']} </td> </tr> </table>`; ctx.set('Pragma', 'public'); ctx.set('Expires', 0); ctx.set('Cache-Control', 'must-revalidate, post-check=0, pre-check=0'); ctx.set('Content-Type', 'application/force-download;application/vnd.ms-execl;application/octet-stream;application/download'); ctx.set('Content-Disposition', 'attachment;filename="老师学生评价活动评价表.xlsx"'); ctx.set('Content-Transfer-Encoding', 'binary'); ctx.body = table;
🌟写在最后
更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!