|
|
|
@ -18,7 +18,6 @@ import java.util.Map;
|
|
|
|
|
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;
|
|
|
|
@ -473,6 +472,21 @@ public class ExcelUtil<T>
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -501,12 +515,10 @@ public class ExcelUtil<T>
|
|
|
|
|
{
|
|
|
|
|
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));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -555,7 +567,8 @@ public class ExcelUtil<T>
|
|
|
|
|
{
|
|
|
|
|
// 创建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);
|
|
|
|
@ -964,10 +977,10 @@ public class ExcelUtil<T>
|
|
|
|
|
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 日期格式转换
|
|
|
|
|
}
|
|
|
|
@ -983,15 +996,15 @@ public class ExcelUtil<T>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|