百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Layui 项目前端导出Excel文件总结

csdh11 2024-12-28 12:01 3 浏览

最近朋友在维护一个几年前的老项目,项目前端是基于Layui的。我那朋友只接触过vue以及vue相关的一些框架,对layui不熟悉,问我LayuI项目有个列表要加个excel导出功能,并且不能改动后端接口(后端接口代码已经没有了)。

Layui excel导出—使用layui table.exportFile

我们知道layui table自带了Excel导出功能(table.exportFile),可以很方便的导出csv 或者 xls文件:

table.exportFile(id, data, type)

参数id:为列表的表格ID

参数data: 是传入的相应数据

参数type:导出的的文件类型(csv 或者 xls)

我们可以在列表查询表格数据加载完成的回调函数中将列表数据保存到本地变量

var listData = [];
table.render({
		elem: '#表格ID'',
		url: url
		cols: [],
		page: true,
		limit: 15,
		done: function(res, curr, count) {
		     //res.data 存储到本地变量
         listData  = res.data;
		}
	});
然后我们可以在导出事件里面传入该变量即可
table.exportFile('表格ID',listData,'xls' );

或者我们需要导出当前搜索条件下的所有数据:我们可以使用ajax调用不分页的数据接口,或者后台无法改动的话将列表数据获取接口,自己将分页参数的limit设置得很大临时解决下。

$.ajax({
    url: url,
    success: function(res){
    table.exportFile('表格ID',res.data,'xls' );
    }
});

另外table.exportFile方法也可以不用依赖 table 的实例,可直接导出任意数据

table.exportFile(['名字','性别','年龄'], [
['张三','男','20'],
['李四','女','18'],
['王五','女','19']
], 'csv'); //默认导出 csv,也可以为:xls
//没有传入表格ID,直接传入JSON数据

Layui excel导出—使用 layui 的导出扩展插件 layui.excel excel

layui.excel扩展插件功能很强大,支持Layui插件形式加载,导出仅需一句话。
导出excel功能基于 XLSX.js,下载功能基于 FileSaver,读取文件基于 H5的 FileReader。并且支持复杂表头的导出、支持字体设置、单元格边框设置、单元格合并等功能,这些是layui table.exportFile 所不具备的

- 支持梳理导出的数据并导出多种格式数据

- 支持IE、火狐、chrome等主流浏览器

- 普通工作电脑最多支持9列45W行数据规模的导出

- 支持 xlx、xlsx、csv格式的前端数据读取以及数据梳理

- 支持单个文件多个 sheet 的导出- 提供方便的列合并辅助方法

最简单的用法,同table.exportFile
excel.exportExcel(data, 'excel文件名.xlsx', 'xlsx');
另外导出的时候支持列宽等样式的设置,可以通过extend参数传入列宽配置参数

layui.excel插件的使用

npm安装

$ npm i lay-excel

import LAY_EXCEL from 'lay-excel';

LAY_EXCEL.exportExcel(data, '表格导出.xlsx', 'xlsx')


普通脚本引入方式

<script src="layui_exts/excel.js"></script>

LAY_EXCEL.exportExcel(data, '表格导出.xlsx', 'xlsx')


Layui插件引入

layui.use(['excel'], function (){

var excel = layui.excel; //导出逻辑

layui.excel.exportExcel(data, '表格导出.xlsx', 'xlsx')

})

如果是layadmin项目,可以把excel.js拷贝至lib/extend目录在config.js添加extend:excel的引用。

相关推荐

重温2010年总决赛,黄绿大战,科比真的抢了加索尔FMVP吗

2010年NBA总决赛,已经过去了10多年。不过,提起那一年的总决赛,很多球迷还是记忆犹新,在他们心里,这一年的总决赛是21世纪以来最为精彩的一次总决赛。2010年总决赛,凯尔特人和湖人时隔2年再次相...

始料未及的屠戮——简述2010世界杯阿根廷德国之战

2010年四分之一决赛,德国队以一个令人震惊的比分击败阿根廷,追平连续3届闯进半决赛的纪录,同时创造12次入围4强的新纪录。如果论及世界杯中的冤家球队,英格兰和阿根廷是一对,巴西和法国是一对,阿根廷和...

10年总决赛湖人4:3凯尔特人——科比和加索尔每场具体数据

以下7图为2009-2010赛季总决赛湖人4:3凯尔特人——科比和加索尔每场具体数据:湖人首发:安德鲁·拜纳姆、保罗·加索尔、梅塔·沃尔德·皮斯(慈世平)、...

2020年和2010年的热刺相比,到底提高了多少?

虽然本赛季状态并不太好,但近些年托特纳姆热刺在各方面应该说有了很大的进步。按照这个思路,我们来比较一下热刺在2010年和如今的一下数据。联赛位置2009/2010赛季是热刺崛起的开始,他们逐渐成为联赛...

2010季后赛詹姆斯VS罗斯 老詹关键三分锁定胜局

直播吧6月6日讯2010年季后赛克利夫兰骑士与芝加哥公牛在首轮相遇。整个系列赛,身为当赛季常规赛MVP的詹姆斯场均得到31.8分9.2篮板8.2助攻,而刚进入联盟两年的罗斯亦表现抢眼场均贡献26.8...

攻势犀利未翻盘,出线希望变暗淡,韩国不敌加纳离16强远了

来源:环球时报【环球时报驻埃及特派记者黄培昭环球时报特约记者李佳寅唐牧茂】北京时间28日晚,韩国队在世界杯H组第二轮比赛中2∶3不敌加纳队,这是两支球队在世界杯赛场上的首次碰面。两支球队此前...

VC++与MFC入门简介:它们的区别是什么&amp;如何挑选开发组件

C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。在这套VS2010/MFC编程入门教...

哪款C语言编译器(IDE)适合初学者?

这里我们把“编译器”和“IDE(集成开发环境)”当做一个概念,不再加以区分。C语言的集成开发环境有很多种,尤其是Windows下,多如牛毛,初学者往往不知道该如何选择,本节我们就针对Window...

八强硬碰硬 往事涌心头

晨报记者孙俊毅北京时间昨天凌晨,随着欧洲杯最后两场1/8决赛结束,八强球队全部产生:上半区的4支球队为瑞士、西班牙、比利时和意大利,下半区的4支球队则是捷克、丹麦、英格兰和乌克兰。1/4决赛将于北京...

无缘十四年后顶峰相遇!10年世界杯决赛荷兰vs西班牙,还记得吗?

欧洲杯半决赛荷兰队无缘与西班牙顶峰相遇,被英格兰所淘汰。荷兰队2010年世界杯决赛正是和西班牙对决,当时0-1惜败巅峰西班牙。(欢迎大家点点关注,随老相馆一起追忆往昔)...

(2)初学C++:如何使用Visual Stdio 2010调试C++程序?

一、创建解决方案和项目1.打开Vs2010,单击...

「连载」 .Net cad二次开发(一)

平常都用arx/c++/mfc来进行cad开发,业余时间学习下.net/C#开发,在此做下记录,同时以供大家参考,交流,共同进步。ps:我也是现学的,如果有什么不对的地方可以指出来,在此谢谢大家!!一...

今日图集:2010年湖人VS热火圣诞大战

詹姆斯撒镁粉科比面对詹姆斯跳投科比防守詹姆斯詹姆斯、丹皮尔、科比韦德飞身上篮科比对抗韦德詹姆斯与阿泰斯特奥多姆与波什...

Visual Studio 2010(VS)--消消乐定制版?--添加反应计时

VisualStudio2010(VS)--消消乐定制版?--添加反应计时上期回顾(上期主要是把原来16格,扩展到了36格的,带18组文字图形的消消乐):本期将给他加一个计时,就是当第一次按下的时...

【项目实战】C/C++自制程序:双人击球游戏

每天一个编程小项目,提升你的编程能力!游戏说明Player1玩家通过W、S按键控制左板上下移动,Player2玩家通过O、L按键控制右板上下移动。在游戏过程中,小球的速度会随着接触木板的次...