文章目录
- 🌟前言
- 🌟node-xlsx
- 🌟安装
- 🌟导出xlsx文件
- 🌟解析xlsx文件
- 🌟另外:其他支持读写Excel的Node.js模块有:
- 🌟直接导出excel文件
- 🌟写在最后
🌟前言
哈喽小伙伴们,新的专栏 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!
✨原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!