【layUI】点击导出按钮,导出excel文件

要实现的功能如下:根据执行状态判断是否可以导出。如果可以导出,点击导出,在浏览器里下载对应的文件。

代码实现

html里:

<table class="layui-hide" id="studentTable" lay-filter="studentTable"></table>

js里:

studentTable.loadTable = function() {
	var form = layui.form;
	table = layui.table;
	table.render({
		elem: '#studentTable',
		url: ctx + '/studentTable/getList.shtml',
		method: "post",
		toolbar: "#toolbarWarp",
		defaultToolbar: [],
		parseData: function(jsonData) {
			if (jsonData.code == '200') {
				var data = jsonData.data;
				return {
					"code": jsonData.code,
					"msg": jsonData.message,
					"total": data.total,
					"rows": data.list
				}
			}
			return {
				data: []
			};
		},
		text: {
			none: '暂无相关数据'
		},
		request: { //分页
			pageName: 'pageNo',
			limitName: 'pageSize'
		},
		response: {
			statusName: 'code',
			statusCode: "200",
			msgName: 'msg',
			countName: 'total',
			dataName: 'rows'
		},
		page: true,
		limits: [10, 20, 30, 40, 50, 60, 70, 80, 90],
		cellMinWidth: 100,
		cols: [[{
			type: 'radio',
			fixed: 'left'
		},
		{
			field: 'status',
			title: '执行状态',
			sort: false,
			align: 'center',
			templet: function(row) {
				if (row.status == '1') {
					return "待执行";
				}
				if (row.status == '2') {
					return "执行完毕";
				}
				if (row.status == '3') {
					return "暂停";
				}
				return "未知";
			}
		},
		{
			field: 'opeate',
			title: '操作',
			sort: false,
			align: 'center',
			fixed: "right",
			templet: function(row) {
				var result;
				if (row.status == '2') {
					result = '<a class="layui-btn  layui-btn-xs" href="javascript:studentTable.export(\'' + row.code + '\')">导出</a>';
				} else {
					result = '<a class="layui-btn layui-btn-disabled layui-btn-xs">导出</a>';
				}
				return result;
			}
		}]]
	});

	studentTable.export = function(code) {
		$.ajax({
			type: "post",
			data: {
				code: code
			},
			url: ctx + "/studentTable/export.shtml",
			success: function(data) {
				// msg("导出成功");
				var localObj = window.location; //当前页面地址
				var protocol = location.protocol; //http/https
				var host = localObj.host; //地址栏IP和端口号
				var contextPath = localObj.pathname.split("/")[1]; //项目名
				if (!data.includes("false")) {
					window.location.href = protocol + "//" + host + "/" + contextPath + data;
				} else {
					errorAlert("导出失败");
				}
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				errorAlert("系统异常");
			}
		});
	}

代码块解读:
1、定义了导出按钮,而且去调用了同文件中的export()方法:

result = '<a class="layui-btn  layui-btn-xs" href="javascript:studentTable.export(\'' + row.code + '\')">导出</a>';

2、 让浏览器跳转到新的url,即开始下载excel文件:

window.location.href = protocol + "//" + host + "/" + contextPath + data;

3、实现思路大概为:
(1)调用后端查询列表方法,在<操作>列,定义导出按钮,并去调用export()方法
(2)在export()里,去调用后端导出方法。
(3)后端导出方法要做的工作有:根据传入的code查询出数据,填充到excel里;将excel上传到服务器上;最后将文件地址返回给前端。
(4)export()方法接收到这个url地址后,请求这个地址,在h5页面下载excel文件

小结

这个导出按钮是在js里添加并实现逻辑的,和之前是在html里添加的不一样。

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
layui是一款基于jQuery的前端UI框架,它提供了丰富的组件和功能,包括导出Excel功能。在layui中,可以使用table.exportFile()方法来实现导出Excel的功能。 具体步骤如下: 1. 引入layui框架和相关样式文件。 2. 创建一个表格,并使用layui的table组件进行渲染。 3. 在需要导出Excel按钮点击事件中,调用table.exportFile()方法来导出Excel文件。 下面是一个示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>layui导出Excel示例</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> </head> <body> <table id="demo" lay-filter="test"></table> <script src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script> <script> layui.use(['table', 'excel'], function(){ var table = layui.table; var excel = layui.excel; // 渲染表格 table.render({ elem: '#demo', url: '/api/getData', // 数据接口 cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'} ]] }); // 导出Excel按钮点击事件 $('#exportBtn').on('click', function(){ var data = table.cache['test']; // 获取表格数据 excel.exportExcel({ sheet1: data }, '导出数据.xlsx', 'xlsx'); }); }); </script> </body> </html> ``` 在上述示例代码中,我们使用了layui的table组件来渲染表格,并通过url参数指定了数据接口。在导出Excel按钮点击事件中,我们调用了excel.exportExcel()方法来导出Excel文件,其中的sheet1参数是要导出的数据,'导出数据.xlsx'是导出文件名,'xlsx'是文件格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡夫卡的熊kfk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值