poi导出excel保留原始格式

1.设置通用方法全部转换为String,但有的客户需要保留原始类型

代码改造如下:

/**
* 按照格式方案的配置导出数据
* @param formattor 格式
* @param formatType 格式化类型
* @param value 原始数据
* @param cell 当前单元格
*/
private void formatData(String formattor, FormatType formatType, String value, Cell cell) {
if (formattor != null && formattor.length() > 0 ) {
CellStyle cellStyle = cell.getCellStyle();
XSSFDataFormat df = _excelWorkBook.createDataFormat(); //此处设置数据格式
cellStyle.setDataFormat(df.getFormat(formattor)); // 基于传递的格式设置单元格
if (formatType == FormatType.DateTime ) {
if (value != null && value.length() != 0) {
SimpleDateFormat format = new SimpleDateFormat(dateSet(value));
Date d = null;
try {
//生成时间对象
d = format.parse(value);
} catch (Exception e) {
throw new QORuntimeException(null, ExceptionCodes.ExcelExport, e);
}
cell.setCellValue(d);
} else {
cell.setCellValue("");
}
} else if (formatType == FormatType.Number) {
cell.setCellType(CellType.NUMERIC);
cell.setCellValue(Double.parseDouble(value));
} else if (formatType == FormatType.Logic) {
String[] keys = formattor.split(";")[0].split("/");
String[] values = formattor.split(";")[1].split("/");
for (int i = 0; i < keys.length; i++) {
if (value.equals(keys[i])) {
value = values[i];
}
}
cell.setCellValue(Double.parseDouble(value));
}
} else{
cell.setCellValue(value);
}
}
posted @ 2020-07-13 15:08  chinadba  阅读(765)  评论(0编辑  收藏  举报