导出excel表格功能

导出excel表格功能

作者:来源:日期:2019-04-06

我自己本身不是很会写,所以参照了别人的代码:

他的代码有部分改动(由反射改成了类型转换,思考:直接将T写死成Record,controller里面根据前台传递的参数拼接sql,少了一步强转):

	private static <T> Object getFieldValue(T t, String fieldName) throws Exception{
		if (t == null) {
			return null;
		}
		Model m = (Model)t;
		return m.get(fieldName);
	}

只管贴代码吧,前端用的是layui:

按钮:

<button class="layui-btn layui-btn-small" data-type="exp">
  <i class="layui-icon"></i>导出
</button>
//调用函数
exp : function(){
	var wb = {
		headNames: '编号,登录名称,昵称,创建时间,密码,是否锁定,最后一次在线时间,状态,是否在线',
		heads: 'id,code,name,createTime,password,isLocked,lastOnline,state,online',
		xlsName: '用户列表'
	}
	var temp = document.createElement("form");
	document.body.appendChild(temp);
	temp.action = "/user/expExcel";
	temp.method = "POST";
	temp.style.display = "none";
	if (wb != null) {
		for ( var x in wb) {
			var opt = document.createElement("input");
			opt.name = x;
			opt.type = 'hidden';
			opt.value = wb[x];
			temp.appendChild(opt);
		}
	}
	temp.submit();
}

后台action代码(请原谅我没有捕捉异常):

	public void expExcel() throws Exception{
		String[] headNames = getPara("headNames").split(",");
		String[] heads = getPara("heads").split(",");
		String xlsName = getPara("xlsName");
		List<User> users = User.dao.find("select * from t_user");
		ExcelKit.outPutExcel(users, headNames, heads, xlsName, getRequest(), getResponse());
		//下面这句话不写,坑死人。。。不信你试试,哈哈哈
		renderNull();
	}

后期如果有空的话,可以给出一个选择列表,由客户去选择导出需要的数据行(假想效果):

image.png

个人比较菜,轻喷。。哈哈哈



北京SEO上海深圳网站推广-广州惠州中山珠海SEO优化公司-苏州杭州天津百度关键词网络排名优化 专业版搭建,内置工作流,信息签收、信息签发等常用政府网站功能,主要功能采用自定义模型,最大程度保证扩展性,为政府网站提供专业的政府网站解决方案
本网站资源均来自网络媒体,如有侵权请告知,我将尽快删除。