| | |
| | | import java.util.Set;
|
| | | import java.util.UUID;
|
| | | import java.util.stream.Collectors;
|
| | | import org.apache.poi.hssf.usermodel.HSSFDateUtil;
|
| | | import org.apache.poi.ss.usermodel.BorderStyle;
|
| | | import org.apache.poi.ss.usermodel.Cell;
|
| | | import org.apache.poi.ss.usermodel.CellStyle;
|
| | |
| | | style.setFont(totalFont);
|
| | | styles.put("total", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.LEFT);
|
| | | styles.put("data1", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.CENTER);
|
| | | styles.put("data2", style);
|
| | |
|
| | | style = wb.createCellStyle();
|
| | | style.cloneStyleFrom(styles.get("data"));
|
| | | style.setAlignment(HorizontalAlignment.RIGHT);
|
| | | styles.put("data3", style);
|
| | |
|
| | | return styles;
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | if (ColumnType.STRING == attr.cellType())
|
| | | {
|
| | | cell.setCellType(CellType.STRING);
|
| | | cell.setCellValue(StringUtils.isNull(value) ? attr.defaultValue() : value + attr.suffix());
|
| | | }
|
| | | else if (ColumnType.NUMERIC == attr.cellType())
|
| | | {
|
| | | cell.setCellType(CellType.NUMERIC);
|
| | | cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value));
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | // 创建cell
|
| | | cell = row.createCell(column);
|
| | | cell.setCellStyle(styles.get("data"));
|
| | | int align = attr.align().value();
|
| | | cell.setCellStyle(styles.get("data" + (align >= 1 && align <= 3 ? align : "")));
|
| | |
|
| | | // 用于读取对象中的属性
|
| | | Object value = getTargetValue(vo, field, attr);
|
| | |
| | | */
|
| | | private Object getValue(Object o, String name) throws Exception
|
| | | {
|
| | | if (StringUtils.isNotEmpty(name))
|
| | | if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name))
|
| | | {
|
| | | Class<?> clazz = o.getClass();
|
| | | Field field = clazz.getDeclaredField(name);
|
| | |
| | | Cell cell = row.getCell(column);
|
| | | if (StringUtils.isNotNull(cell))
|
| | | {
|
| | | if (cell.getCellTypeEnum() == CellType.NUMERIC || cell.getCellTypeEnum() == CellType.FORMULA)
|
| | | if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA)
|
| | | {
|
| | | val = cell.getNumericCellValue();
|
| | | if (HSSFDateUtil.isCellDateFormatted(cell))
|
| | | if (DateUtil.isCellDateFormatted(cell))
|
| | | {
|
| | | val = DateUtil.getJavaDate((Double) val); // POI Excel 日期格式转换
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.STRING)
|
| | | else if (cell.getCellType() == CellType.STRING)
|
| | | {
|
| | | val = cell.getStringCellValue();
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.BOOLEAN)
|
| | | else if (cell.getCellType() == CellType.BOOLEAN)
|
| | | {
|
| | | val = cell.getBooleanCellValue();
|
| | | }
|
| | | else if (cell.getCellTypeEnum() == CellType.ERROR)
|
| | | else if (cell.getCellType() == CellType.ERROR)
|
| | | {
|
| | | val = cell.getErrorCellValue();
|
| | | }
|