public void exprotBusinessData(HttpServletResponse httpServletResponse) { // 1. 查询数据库 LocalDateTime begin=LocalDateTime.of(LocalDate.now().minusDays(30),LocalTime.MIN); LocalDateTime end=LocalDateTime.of(LocalDate.now().minusDays(1),LocalTime.MAX); BusinessDataVO businessData = workspaceService.getBusinessData(begin, end); // 2. 写入excel try { // 获取模版--从本地 InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream("template/excel.xlsx");// 通过反射机制获取文件输入流 XSSFWorkbook excel = new XSSFWorkbook(resourceAsStream); // 从该输入流管道内获取excel文件对象excel -- XSSFWorkbook
// 填充数据 XSSFSheet sheet1 = excel.getSheet("Sheet1"); // 根据表格页名获取表格页对象sheet1 -- XSSFSheet sheet1.getRow(1) // 根据行索引获取行对象row -- XSSFRow .getCell(1) // 根据列索引获取单元格对象cell -- XSSFCell .setCellValue("时间:"+begin+"至"+end); // 根据单元格对象设置单元格值 XSSFRow row4=sheet1.getRow(3); row4.getCell(2).setCellValue(businessData.getTurnover()); row4.getCell(4).setCellValue(businessData.getOrderCompletionRate()); row4.getCell(6).setCellValue(businessData.getNewUsers()); XSSFRow row5=sheet1.getRow(4); row5.getCell(2).setCellValue(businessData.getValidOrderCount()); row5.getCell(4).setCellValue(businessData.getUnitPrice()); // 3. 将文件下载给客户端浏览器 ServletOutputStream outputStream=httpServletResponse.getOutputStream(); // 获取接通客户端的数据输出流通道 excel.write(outputStream); // 将excel文件内容写入该通道 --> 传输到客户端 } catch (Exception e) { e.printStackTrace(); }