| | |
| | | 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;
|
| | |
| | | val = Convert.toStr(val);
|
| | | }
|
| | | }
|
| | | else if ((Integer.TYPE == fieldType) || (Integer.class == fieldType))
|
| | | else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val)))
|
| | | {
|
| | | val = Convert.toInt(val);
|
| | | }
|
| | | else if ((Long.TYPE == fieldType) || (Long.class == fieldType))
|
| | | else if (Long.TYPE == fieldType || Long.class == fieldType)
|
| | | {
|
| | | val = Convert.toLong(val);
|
| | | }
|
| | | else if ((Double.TYPE == fieldType) || (Double.class == fieldType))
|
| | | else if (Double.TYPE == fieldType || Double.class == fieldType)
|
| | | {
|
| | | val = Convert.toDouble(val);
|
| | | }
|
| | | else if ((Float.TYPE == fieldType) || (Float.class == fieldType))
|
| | | else if (Float.TYPE == fieldType || Float.class == fieldType)
|
| | | {
|
| | | val = Convert.toFloat(val);
|
| | | }
|
| | |
| | | {
|
| | | val = DateUtil.getJavaDate((Double) val);
|
| | | }
|
| | | }
|
| | | else if (Boolean.TYPE == fieldType || Boolean.class == fieldType)
|
| | | {
|
| | | val = Convert.toBool(val, false);
|
| | | }
|
| | | if (StringUtils.isNotNull(fieldType))
|
| | | {
|
| | |
| | | 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();
|
| | | }
|