@GetMapping("/export") public void export(HttpServletResponse response) throws Exception { // 从数据库查询出所有的数据 List<Goods> list = goodsService.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("Goods信息表", "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 14:07:14 浏览: 148
springboot实现从数据库取数传到前端demo
这是一个使用Java语言开发的Spring Boot应用程序中的一个GET请求处理器方法,使用了ExcelUtil这个库来将数据库中的Goods数据导出到Excel文件,并返回给浏览器进行下载。具体流程如下:
1. 通过GoodsService的list()方法从数据库中查询出所有的Goods数据,并保存在List<Goods>对象中。
2. 使用ExcelUtil的getWriter()方法创建一个ExcelWriter对象,这个对象会在内存中操作Excel文件。
3. 调用ExcelWriter的write()方法,将list对象中的所有Goods数据写入到Excel文件中。参数true表示强制输出Excel文件的标题。
4. 设置HTTP响应的Content-Type,告知浏览器返回的是Excel文件,并设置文件名为"Goods信息表.xlsx"。
5. 获取响应的输出流,将ExcelWriter中的数据流写入到输出流中。
6. 关闭输出流和ExcelWriter对象。
注意:在代码中使用了URLEncoder对文件名进行编码,以防止文件名中包含特殊字符导致下载失败。
阅读全文