问题: 解决:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package com.telsafe.crccdemo.rest; import org.apache.poi.ss.usermodel.CellType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.document.AbstractXlsView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @Controller @RequestMapping("export") public class ExportController { final UserService userService; public ExportController(final UserService userService) { this.userService = userService; } @PostMapping("users") ModelAndView users(@RequestParam(value = "path", required = false) String path) { final var list = .../// new ArrayList<UserVo> return new ModelAndView(new UserXlsView(), Map.of("list", list)); } static class UserXlsView extends AbstractXlsView { @Override protected void buildExcelDocument(final Map<String, Object> map, final org.apache.poi.ss.usermodel.Workbook workbook, final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse) throws Exception { Objects.requireNonNull(workbook); var sheet = workbook.createSheet(); final List<UserVo> users = (List<UserVo>) map.get("list"); for (int i = 0; i < users.size(); ++i) { final var user = users.get(i); final var row = sheet.createRow(i); var indexCell = row.createCell(0, CellType.NUMERIC); indexCell.setCellValue(user.getIndex()); row.createCell(1, CellType.STRING).setCellValue(user.getName()); row.createCell(2, CellType.STRING).setCellValue(user.getCompanyName()); row.createCell(3, CellType.STRING).setCellValue(user.getDepartmentName()); row.createCell(4, CellType.STRING).setCellValue(user.getPositionName()); } } } } |