码迷,mamicode.com
首页 > 其他好文 > 详细

poi导出excel保留原始格式

时间:2020-07-13 15:41:32      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:EDA   log   logic   单元格   double   excel   poi   ram   except   

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);
}
}

poi导出excel保留原始格式

标签:EDA   log   logic   单元格   double   excel   poi   ram   except   

原文地址:https://www.cnblogs.com/chinadba/p/13293321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!