首页 > 解决方案 > 如何将列表数据报告到文件excel?

问题描述

标签: javaspringexport-to-csv

解决方案


private static final String COMPANY_ACCOUNT_FILENAME_EXCEL_EXPORT = "your FileName.xls";

@RequestMapping(value = "/reports/tasks/allTasks.xlsx", method = RequestMethod.POST, produces = "text/csv")
public void reportExcelTasks(HttpServletResponse response,
@RequestParam("fromDate") String fromDate, @RequestParam("toDate") String toDate) throws IOException{

    LocalDateTime startDate = DateTimeUtils.convertStringToLocalDateTime(fromDate);
    LocalDateTime endDate = DateTimeUtils.convertStringToLocalDateTime(toDate);

    List<ReportTaskToTimeResponse> list = reportService.getTaskOfMemberToTime(startDate, endDate);

    XSSFWorkbook workbook = ReportExcel.tasksToExcel(list);
    String fileName = COMPANY_ACCOUNT_FILENAME_EXCEL_EXPORT;

    response.setContentType("application/x-download");
    response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
    workbook.write(response.getOutputStream());
}

请更新以下代码:

 workbook.write(out);
 return new ByteArrayInputStream(out.toByteArray());

成为:

return workbook;

推荐阅读