@GetMapping("/export") public void export(HttpServletResponse response) throws Exception { // 从数据库查询出所有的数据 List<Lun> list = lunService.list(); // 在内存操作,写出到浏览器 ExcelWriter writer = ExcelUtil.getWriter(true); // 一次性写出list内的对象到excel,使用默认样式,强制输出标题 writer.write(list, true); // 设置浏览器响应的格式 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); String fileName = URLEncoder.encode("Lun信息表", "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); out.close(); writer.close(); }
时间: 2023-06-20 07:07:04 浏览: 87
Java如何做到无感知刷新token含示例代码(值得珍藏)
这段代码是一个基于Spring框架的Java Web应用程序中的一个控制器方法,用于导出数据到Excel文件。具体实现步骤如下:
1. 首先从数据库查询出所有的数据,这里使用了lunService服务类的list()方法获取Lun对象的集合。
2. 然后创建一个ExcelWriter对象,该对象是一个Excel写入器,用于将数据写入Excel文件中。这里使用了ExcelUtil工具类的getWriter()方法创建ExcelWriter对象。
3. 接着将list集合中的数据写入到Excel文件中,使用默认样式,并强制输出标题。这里使用了ExcelWriter对象的write()方法。
4. 设置响应头,告诉浏览器要下载的文件类型是Excel,并设置文件名为“Lun信息表”。这里使用了HttpServletResponse对象的setContentType()和setHeader()方法。
5. 获取输出流,将Excel文件写入到输出流中,最后关闭流和ExcelWriter对象。这里使用了HttpServletResponse对象的getOutputStream()方法获取输出流,ExcelWriter对象的flush()方法将数据写入输出流,然后关闭流和ExcelWriter对象。
总的来说,这段代码的作用是将数据库中的数据导出到Excel文件中,并提供给用户下载。
阅读全文