使用easyexcel-------导出excel表格

本文介绍了如何使用EasyExcel库在浏览器端导出Excel表格,包括如何创建表格对应的实体对象,以及解决在导出过程中可能遇到的jar包冲突和Ajax下载文件问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

easy excel的使用:

https://www.jianshu.com/p/3a64ade57bf2

https://blog.youkuaiyun.com/weixin_41103806/article/details/91960397

https://blog.youkuaiyun.com/Java_Mrsun/article/details/85678028

异常情况:

jar包冲突:https://blog.youkuaiyun.com/qq_35620501/article/details/93752801

Ajax不能下载文件:https://blog.youkuaiyun.com/weixin_41981080/article/details/94033776

easy excel在浏览器端导出表格:

一,表格对应的实体对象:

二,获取到浏览器的输出流,然后利用exsyexcel将表格信息写入到输入流中:

/*
	 * 导出报表
	 */
	@RequestMapping("/downData")
	@ResponseBody
	public void downData(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException {
		PageBean<Test_Result> pageBean = new PageBean<Test_Result>();

		List<Test_Result> slist = new ArrayList<Test_Result>();
		pageBean.setSize(0);
		// 获得表格信息
		if (request.getParameter("username") == null && request.getParameter("time") == null) {// 不执行搜索
			slist = sReportService.getTestResult(pageBean);

		} else {// 获得条件查询的数据
			String username = "";
			String time = "";
			String begintime = "";
			String endtime = "";
			if (request.getParameter("username") != null && request.getParameter("username") != "") {
				username = new String(request.getParameter("username").getBytes("iso-8859-1"), "UTF-8");
			}
			if (request.getParameter("time") != null && request.getParameter("time") != "") {
				time = request.getParameter("time");// 2019-09-12 00:00:00 ~2019-10-18 00:00:00
				System.out.println(time);
				begintime = time.substring(0, time.indexOf("~"));
				endtime = time.substring(time.indexOf("~") + 1);
			}
			pageBean.setSname(username);
			pageBean.setName(time);
			pageBean.setBegintime(begintime);
			pageBean.setEndtime(endtime);
			slist = sReportService.getTestResultByExample(pageBean);
		}
		ServletOutputStream out = response.getOutputStream();//获取浏览器的输出流
		try {
			List<TableItem> items = new ArrayList<TableItem>();//对应的表格对象集合
			for (Test_Result tr : slist) {
				TableItem t = new TableItem();
				t.setUsername(tr.getUser().getUsername());
				String time = new SimpleDateFormat("yyyy-MM-dd").format(tr.getBegintime());
				t.setDate(time);
				t.setTime(tr.getTime());
				t.setWounded(tr.getWounded() + "/150");
				t.setRed(tr.getRed());
				t.setYellow(tr.getYellow());
				t.setGreen(tr.getGreen());
				t.setAssess(tr.getAssess());
				t.setScore(tr.getScore());
				// System.out.println(tr.getBegintime());
				items.add(t);
			}
			// 设置EXCEL名称
			String fileName = "学生考核信息 .xls";
			String filenameEncoder = "";
			// 设置编码
			filenameEncoder = URLEncoder.encode(fileName, "utf-8");
			filenameEncoder = filenameEncoder.replace("+", " ");// stringObject.replace(要替换的文本,替换成的文本)
			// System.out.println(filenameEncoder);
			// 浏览器设置
			response.setHeader("Content-disposition", "attachment;filename=" + filenameEncoder);
			response.setContentType("application/vnd.ms-excel");
			response.setCharacterEncoding("utf-8");
			// 下载EXCEL
			ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLS);// new ExcelWriter(out, ExcelTypeEnum.XLS,false)加false就是不要表头
			Sheet sheet1 = new Sheet(1, 0, TableItem.class);
			sheet1.setSheetName("sheet1");
			writer.write(items, sheet1);
			out.flush();
			writer.finish();

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值