前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >优秀!前端导出Excel就是这么简单!

优秀!前端导出Excel就是这么简单!

作者头像
程序员老鱼
发布2022-12-02 10:32:28
发布2022-12-02 10:32:28
1K00
代码可运行
举报
文章被收录于专栏:前端实验室前端实验室
运行总次数:0
代码可运行

哈喽,大家好!我是前端实验室的小师妹!

最近好忙呀!新需求来了,又不能开心的摸鱼了...

话说前端导出Excel的需求还是蛮多的,我这不就遇到了嘛,于是本着开源的精神,打开了全球最大的同性交友平台...

最终筛选出俩款能满足我需求的开源库,又从中找到了我的真命天子

XLSX 这个库是真的强大!但是...默认不支持修改样式,除非升级为Pro用户,看看自己的钱包...算了吧!感兴趣的朋友可以自己去看一看咯~

ExcelJS 拥有9.5K的Star,看了下基本功能都有,而且文档也蛮完善的,集成起来也比较简单,稳了!你就是我的真命天子了!

ExcelJS介绍和安装

ExcelJS 是一个 Node.js 模块,可用来读写和操作 XLSXJSON 电子表格数据和样式。

安装ExcelJS

代码语言:javascript
代码运行次数:0
运行
复制
npm install exceljs

安装file-saver (为什么要使用file-saver呢,且看下文)

代码语言:javascript
代码运行次数:0
运行
复制
npm install file-saver

ExcelJS基本使用

1.创建工作簿

workbook:你可以理解为整个Excel表格。

代码语言:javascript
代码运行次数:0
运行
复制
const workbook = new ExcelJS.Workbook();
2.设置工作簿属性

通过1创建完工作簿后还可以设置工作簿的属性。

代码语言:javascript
代码运行次数:0
运行
复制
workbook.creator = 'Me';
workbook.lastModifiedBy = 'Her';
workbook.created = new Date(1985, 8, 30);
workbook.modified = new Date();
workbook.lastPrinted = new Date(2016, 9, 27);
3.添加工作表

Worksheet:就是Excel表中的sheet页。通过addWorksheet函数创建工作表。

代码语言:javascript
代码运行次数:0
运行
复制
const sheet = workbook.addWorksheet('My Sheet');

你也可以使用addWorksheet函数的第二个参数来置顶工作表的选项,比如:

代码语言:javascript
代码运行次数:0
运行
复制
// 创建带有红色标签颜色的工作表
const sheet = workbook.addWorksheet('My Sheet', {properties:{tabColor:{argb:'FFC0000'}}});

// 创建一个隐藏了网格线的工作表
const sheet = workbook.addWorksheet('My Sheet', {views: [{showGridLines: false}]});

你还可以通过Worksheet.columns设置表格列标题并定义键和宽度;通过Row添加一行或多行数据

代码语言:javascript
代码运行次数:0
运行
复制
# 设置表头
worksheet.columns = [
  { header: 'Id', key: 'id', width: 10 },
  { header: 'Name', key: 'name', width: 32 },
  { header: 'D.O.B.', key: 'DOB', width: 10 }
];

# 添加数据
const data = [
 [1, 'electron','DOB']
 [2, 'exceljs', 'DOB]
];
worksheet.addRows(data);
4.导出表格XLSX文件
代码语言:javascript
代码运行次数:0
运行
复制
workbook.xlsx.writeFile(filename);

结果发现报错了?

这就是我们使用file-saver的原因啦,workbook.xlsx.writeFile(filename)是在node端用的,

所以你应该这样使用:

代码语言:javascript
代码运行次数:0
运行
复制
workbook.xlsx.writeBuffer().then(data => {
  FileSaver.saveAs(new Blob([data],{type:''}),'text.xlsx');
})

这样,一个简单的Excel就导出啦,我的自定义样式等等功能也实现了,可以继续快来摸鱼啦!

项目地址:https://github.com/exceljs/exceljs

还有更多强大的功能小伙伴们自己探索噢!

如果你有好用的Excle相关的库也可以在评论区讨论~

写在最后

欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~

进群方式:在下方公众号后台,回复111,按提示操作即可进群。

如果该文章对你有帮助,那么就点击右下角的 [点赞]「在看」,给一个小小的鼓励吧~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ExcelJS介绍和安装
  • ExcelJS基本使用
    • 1.创建工作簿
    • 2.设置工作簿属性
    • 3.添加工作表
    • 4.导出表格XLSX文件
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档