前言
几乎所有的前端只要是做过后台管理系统的都会碰到一个需求,那就是导出Excel
。
导出表格或许特别简单也或许特别复杂,如果后端提供了Excel
对应的服务器下载地址那对于前端来讲再好不过了。但若需要前端自己对数据进行处理并且实现导出文件看起来就有点棘手。为了解决前端导出Excel
的问题,一些库应运而生,不过很多都需要对表格数据进行组装,光是看那一长串的API
就头痛,那有没有一个库用法既简单又功能强大呢?必须有,我们今天就来介绍这样一款Excel
库。
js-xlsx
js-xlsx
是SheetJS
推出的一个用于处理Excel
相关问题的前端工具库,支持几乎所有框架和平台且非常好上手。
安装
js-xlsx
支持直接引入资源文件以及npm
、bower
安装:
1 | // 可以从官方github上下载 |
npm:
1 | npm install xlsx |
bower:
1 | bower install js-xlsx |
使用
这里以Angular
为例:
第一步准备好数据:
1 | $scope.data = [ |
第二步将数据渲染到table
上:
1 | <table id="sjs-table"> |
最后,导出:
1 | var wb = XLSX.utils.table_to_book(document.getElementById('sjs-table')); |
简简单单三步,大功告成。其实这里js-xlsx
就是帮助我们将页面上的表格dom
直接处理成Excel文件,不过当然生成dom
并不是唯一的用法,你也可以将数据直接注入到表格中生成文件:
1 | var data = [ |
多表格
js-xlsx
还支持将多张表格一次性导出到同一个文件中:
1 | var workbook = XLSX.utils.book_new(); |
控制百分比显示
表格中如果有诸如41%
这样的百分比数据在导出的Excel
中会显示成0.41
,只需要一个配置就可以避免这样的自动转换:
1 | var wb = XLSX.utils.table_to_book(document.getElementById('sjs-table'), {raw: true}); |
raw
这个参数用来配置是否保持原有字符串。
结语
今天只是对jx-xlsx
做了一个最常用功能的介绍,其他框架的用法GitHub
上也都有详尽介绍。更多丰富的功能我也还在发掘中。