Awesome
LAY-EXCEL 简单快捷的导出插件
现有导出前端库中,XLSX.JS功能强大但是操作颇为不便,于是封装了此插件,无额外依赖,支持 npm 引入,支持 Layui插件形式加载,导出仅需一句话。
导出excel功能基于 XLSX.js,下载功能基于 FileSaver,读取文件基于 H5的 FileReader。
功能演示地址: http://excel.wj2015.com
文档地址: http://excel.wj2015.com/_book/
兼容性
支持IE10+、Firefox、Chrome 等
!!! 兼容性警告: v1.7.2+ 不再支持 IE9 ,如需必须在 IE9 环境使用,请使用 v1.6.6 版本!!!
快速入门
一句话导出,快速上手请查看 『快速上手』,更多便捷函数请查看『函数列表』,样式设置请查看『样式设置专区』。
使用本项目的几种方式
npm安装
$ npm i lay-excel
然后使用 import
引入并调用导出函数
import LAY_EXCEL from 'lay-excel';
LAY_EXCEL.exportExcel([[1, 2, 3]], '表格导出.xlsx', 'xlsx')
script引入
<script src="layui_exts/excel.js"></script>
<script>
LAY_EXCEL.exportExcel([[1, 2, 3]], '表格导出.xlsx', 'xlsx')
</script>
Layui插件引入
layui.config({
base: 'layui_exts/', // 配置一个可访问地址
}).extend({
excel: 'excel',
});
layui.use(['excel'], function (){
layui.excel.exportExcel([[1, 2, 3]], '表格导出.xlsx', 'xlsx')
})
依赖的开源项目
开源项目名称 | 地址 | 用于 |
---|---|---|
SheetJS / js-xlsx | https://github.com/SheetJS/js-xlsx | 导出的基础逻辑 |
protobi / js-xlsx | https://github.com/protobi/js-xlsx | 可以设置样式,用于补全样式功能 |
FileSaver.js | https://github.com/eligrey/FileSaver.js/ | 前端用于保存文件的JS功能组件 |
Blob.js | https://github.com/eligrey/Blob.js/ | Blob在IE10中的hack实现 |
polyfill.js | https://github.com/philipwalton/polyfill/ | 有名的IE兼容插件 |
shim.js | https://github.com/es-shims/es5-shim | xlsx.js内置的兼容组件,支持ES5 |
注:魔改 js-xlsx 支持样式的具体细节请见博客:JeffreyWang的个人博客:令最新JS-XLSX支持样式的改造方法
待完成需求
- 【文档】制作 Gitbook 方便查阅
- 【文档】新增『参与开发』页,以便其他开发者上手此插件
- 【文档】新增『常见问题整理』,整理群内高频问题,提高处理效率
- 【兼容】移除 jQuery 依赖
- 【兼容】兼容 npm 的方式加载,vue demo:lay-excel-vue
- 【导出】导出图片
- 【兼容】导入支持IE11(卡住)
- 【测试】单元测试覆盖
- 【测试】建立CI/CD机制(做了一半)
- 【导出】分段递归获取数据函数封装
- 【导出】分段压缩打包
- 【导出】样式设置函数更友好
- 【导入】导入图片(卡住)
- 【导入】优化导入处理函数
- 【兼容】vite 打包及加载
- 【兼容】时间上firefox比chrome慢43s(有说是浏览器底层兼容问题,未能再次复现)
参与开发
如果有好的想法,或者想实现 『待完成需求』中的部分功能,请邮 admin@wj2015.com,或者提 GitHub Issue,或者加群 555056599 讨论。
如果有意贡献代码,那么在开始之前,请先阅读 『参与开发』 文档。
特别感谢
感谢 Layui 社区的小伙伴们的使用及建议,还有交流群中反馈各种问题和积极回复问题的群友们,以及 Github 上提 ISSUE、PR 的小伙伴们~
也非常感谢大方的 Jetbrains 提供的免费 IDE License,很好用很强大,https://www.jetbrains.com/?from=LAY-EXCEL
友情链接
开源协议
LAY-EXCEL is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.