支持导入、导出、合并列等多项EXCEL操作功能的 layui.excel 插件

分享 未结 置顶 精帖
43 4016
藏锋入鞘丨
悬赏:20飞吻
layui.excel 扩展组件主页: https://fly.layui.com/extend/excel/

发帖原由

之前在帖子 https://fly.layui.com/jie/46036/ 最初发布 layui.excel 的时候仅支持 chrome 浏览器并且仅支持单文件单 sheet 导出。
经过这些天与社区同志们的讨论和钻研开发,已经为插件添加了 『支持主流浏览器』、『支持excel的读取』、『支持导出多sheet』、『支持较为方便的列合并、自定义表头』、『列宽行高设置』、『单元格样式设置』、『公式链接』等功能。
个人感觉平时会用到的功能都比较齐全了,所以再发一帖让更多人知道,如果能有帮助就最好了,倘若遇到问题或者好的想法可以邮箱 admin@wj2015.com 交流!

功能概览
- 支持梳理导出的数据并导出多种格式数据
- 支持IE、火狐、chrome等主流浏览器
- 普通工作电脑最多支持9列45W行数据规模的导出
- 支持 xlx、xlsx、csv格式的前端数据读取以及数据梳理
- 支持单个文件多个 sheet 的导出
- 提供方便的列合并辅助方法
- 支持单元格样式设置
- 支持设置单元格宽度和高度并提供辅助方法方便使用
- 支持公式、链接等单元格属性设置
更新预告
暂无

GIT仓库及文档
https://github.com/wangerzi/layui-excel

浏览器兼容性
导出支持 IE10+、Firefox、Chrome、Edge 等主流浏览器,导入仅支持能运行H5的浏览器

功能演示
在线演示:
http://excel.wj2015.com
功能预览:
导出数据测试和导出接口数据:

导出复杂表头、样式和公式:

导入数据:

加群交流
QQ群号:555056599

回帖
  • 一般导出都是后台做的,这个只能满足简单的需求,复杂的动态计算导出,动态导出不规则的数据,或者上传不规则的数据无法完成。包括操作底层execl功能无法实现,还是只能后台用epplus或者nopi
    8 回复
  • 1楼说的是,导出复杂的还得后端,最近经常做导出,还用到:excel里面的sum方法。。。
    5 回复
  • @快乐浪子哥 我这边PHP方面也用的这个,前端一般导出那种比较工整的列表数据,可以跟列表兼容一个接口里边,比较省事儿,还减少服务端压力!
    5 回复
  • sasala
    2019-1-11
    我来收割分数了
    4 回复
  • php用phpspreadsheet支持excel里面的函数
    1 回复
  • @藏锋入鞘丨 提供src版本和dist版本比较好[嘻嘻]
    1 回复
  • @本心347 暂不支持字符中的点语法,可以通过回调的方式获取,比如:
    data = excel.filterExportData(data, {
    unitName: function(value, line, data) {
    return line.agency.unitName;
    },
    });
    1 回复
  • @藏锋入鞘丨 需求不一样。。简单的table,作者老大你这个很实用。。[嘻嘻]
    看作者老大你的git里面:xlsx.js FileSaver.js 混淆代码了。[微笑]
    0 回复
  • @快乐浪子哥 那个是引用的开源项目代码,看代码可以具体可以网上查一下相关项目,选压缩版的加载效率比较高![嘻嘻]
    0 回复
  • 文件路径怎样放啊怎样引入?
    0 回复
  • 路径会放了,但是怎样获取指定id的表格数据传入参数[泪] 呀?
    0 回复
  • Xiao情子
    2019-1-11
    没有边框吗?要能导出边框样式一类的就好了,至少也要有个边框吧,看起来也舒服些,哈哈。
    0 回复
  • @Xiao情子 表框属于表格样式了,有计划魔改依赖插件代码 然后支持样式设置![思考]
    0 回复
  • @人类 能描述更具体点么?指定id的表格数据传入参数,听起来有点不大明白!
    0 回复
  • @藏锋入鞘丨

    1.我个人的页面这样配置之后会提示找不到xlsx.js,所以要修改excel.js引入其他2个js的路径,楼主能不能改为相对路径


    2.目前我获取表格数据然后导出的方式只有这种,楼主有没更好的方法能直接使用$("#表格id")来入参呀?


    3.最后就是目前的问题是图二的写法报了图三的错误,在360极速浏览器和谷歌都是这个错误,楼主有没有看出什么猫腻啊?[泪]
    0 回复
  • 1. 由于 XLSX.JS是三方插件,所以和excel.js都是同级的,可以独立使用的,这种情况下,还需要写
    ,xlsx: 'layui_exts/xlsx'
    ,FileSaver: 'layui_exts/FileSaver'
    2. 你那个data也是json数据吧,如果想导出表格数据,动态表格数据也是后台接口等地方过来的,可以直接直接拿那个数据的,纯粹的原生 table 转换为 excel 我记得插件也提供了这个功能,倒是可以加上!
    3. 最后这个问题,我这边还没有复现出来,传入的data是空么?
    0 回复
  • @ Xiao情子 @锁哥 @快乐浪子哥
    单元格样式和列宽、行高相关代码已实现,文档补全中,急用可先从github拉代码看看样例(index.html)![嘻嘻]
    0 回复
  • 不错的插件[微笑]
    0 回复
  • @贤心 心姐加精之后,精神大振,把之前都准备放手不做的样式、公式之类的都给魔改加上了[嘻嘻]

    经过周末的捯饬,V1.4现已正式提交到Github
    新增功能:
    - 支持单元格样式(字体、居中、边框等)设置
    - 列宽、行高的配置支持
    - 软支持单元格链接等(测试不够充分,有问题请反馈我)
    - 支持公式设置
    - 更多辅助函数功能请参见github文档 https://github.com/wangerzi/layui-excel

    @玛琳菲森 @Xiao情子 @快乐浪子哥 样式和公式已经调试完毕,可在github中查看文档和代码
    0 回复
  • Xiao情子
    2019-1-15
    @藏锋入鞘丨 你真是个神人。
    0 回复
  • 不错的插件,支持楼主的劳动成果。
    0 回复
  • 66666666
    0 回复
  • 苏沫
    7天前
    @Xiao情子 看不懂
    0 回复
  • @藏锋入鞘丨

    请问data里面对象的字段怎么导出啊
    0 回复
  • @藏锋入鞘丨 大佬请收下 我的膝盖。厉害啊
    0 回复
  • 0 回复
  • @苏沫 @本心347 测试
    0 回复
  • 0 回复
  • 0 回复
  • 楼主好,关于导出,我用的table数据表格的defaultToolbar开导出的,但是其导出的Excel是损坏文件,虽然数据可以看到。但是在打开文件的时候都会弹出如图的提示框:

    点击是,可以看到正确的导出数据
    可是由于文件本身有问题,我用导出的这个文件再导入时报错,无法导入
    而我自己新建一个Excel文件,把导出的文件中的数据复制到我自己新建的文件中,是可以导入的
    请问是layui本身的bug呢?还是其他什么原因?
    0 回复