@GetMapping("/export") public void export(HttpServletResponse response) throws Exception { // 从数据库查询出所有的数据 List<Orders> list = ordersService.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("Orders信息表", "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); out.close(); writer.close(); }
时间: 2023-06-24 16:04:22 浏览: 263
springboot实现从数据库取数传到前端demo
这段代码是一个 Spring Boot 中的 Controller,用于将数据库中的 Orders 数据以 Excel 表格的形式导出到浏览器。具体实现如下:
1. 首先通过 ordersService.list() 方法从数据库中获取所有的 Orders 数据,存储在一个 List 中。
2. 接着使用 ExcelUtil 工具类创建一个 ExcelWriter 对象,该对象用于将数据写入到 Excel 表格中。
3. 调用 writer.write(list, true) 方法,将 List 中的数据写入到 Excel 表格中。
4. 设置浏览器响应的格式为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8,表示向浏览器返回的是 Excel 表格文件。
5. 通过 URLEncoder 对文件名进行编码,保证文件名中的中文不会出现乱码。
6. 设置 Content-Disposition 头信息,表示将返回的文件作为附件下载。
7. 获取输出流,将 Excel 表格数据写入到浏览器。
8. 最后关闭 ExcelWriter 对象和输出流。
需要注意的是,该方法可能会抛出 Exception 异常,需要在方法签名中声明或者进行 try-catch 处理。
阅读全文