@PostMapping("/dataModelDownload")
public void downloadExcel(HttpServletResponse response) {
// 创建 Excel 工作簿和表格
Workbook workbook = new XSSFWorkbook();
List<SysField> fields = sysDataService.getAllFields();//这里换成自己相对应的字段数据
try {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
Sheet sheet = workbook.createSheet("Sheet1");
// 创建表头单元格样式
CellStyle headerCellStyle = workbook.createCellStyle();
//下边框
headerCellStyle.setBorderBottom(BorderStyle.THIN);
//左边框
headerCellStyle.setBorderLeft(BorderStyle.THIN);
//上边框
headerCellStyle.setBorderTop(BorderStyle.THIN);
//右边框
headerCellStyle.setBorderRight(BorderStyle.THIN);
//增加水平居中样式
headerCellStyle.setAlignment(HorizontalAlignment.CENTER);
//增加垂直居中样式
headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//自动换行样式增加
//headerCellStyle.setWrapText(true);
Font font = workbook.createFont();
font.setBold(true);
headerCellStyle.setFont(font);
Row headerRow = sheet.createRow(0);
Cell cell = null;
for (int i = 0; i < fields.size(); i++) {
// 创建表头行
cell = headerRow.createCell(i);
cell.setCellValue(fields.get(i).getField());//字段名称
cell.setCellStyle(headerCellStyle);
}
// 添加数据行
Row dataRow = sheet.createRow(1);
for (int i = 0; i < fields.size(); i++) {
dataRow.createCell(i).setCellValue(fields.get(i).getFieldDescribe());//添加示例数据或说明
}
// 将工作簿写入字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
workbook.write(outputStream);
// 设置 HTTP 响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", "templet.xlsx");
// 以 ResponseEntity 形式返回 Excel 文件
workbook.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(workbook);
}
}
java使用easypoi把一个实体类导出成excel模板给用户填写
于 2024-02-22 13:27:07 首次发布
该篇文章详细描述了如何在Java中通过Spring的HttpServletAPI创建一个POST请求处理方法,用于下载包含系统字段数据的Excel文件,包括创建工作簿、设置表头样式和数据行等内容。
摘要由CSDN通过智能技术生成