소스 검색

获取时间加强

4.1.3.A
jueyue 7 년 전
부모
커밋
dca0ce9d62
2개의 변경된 파일38개의 추가작업 그리고 32개의 파일을 삭제
  1. +6
    -0
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/base/ExportBase.java
  2. +32
    -32
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/CellValueServer.java

+ 6
- 0
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/base/ExportBase.java 파일 보기

@@ -92,6 +92,12 @@ public class ExportBase {
temp = format.parse(value.toString());
} else if (value instanceof Date) {
temp = (Date) value;
} else if (value instanceof java.sql.Date){
temp = new Date(((java.sql.Date)value).getTime());
} else if (value instanceof java.sql.Time){
temp = new Date(((java.sql.Time)value).getTime());
} else if (value instanceof java.sql.Timestamp){
temp = new Date(((java.sql.Timestamp)value).getTime());
}
if (temp != null) {
SimpleDateFormat format = new SimpleDateFormat(entity.getFormat());


+ 32
- 32
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/CellValueServer.java 파일 보기

@@ -1,13 +1,13 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* Unless required by applicable law or agreed to in writing, software
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;
@@ -45,19 +44,19 @@ import cn.afterturn.easypoi.util.PoiPublicUtil;
/**
* Cell 取值服务
* 判断类型处理数据 1.判断Excel中的类型 2.根据replace替换值 3.handler处理数据 4.判断返回类型转化数据返回
*
*
* @author JueYue
* 2014年6月26日 下午10:42:28
*/
public class CellValueServer {
private static final Logger LOGGER = LoggerFactory.getLogger(CellValueServer.class);
private static final Logger LOGGER = LoggerFactory.getLogger(CellValueServer.class);
private List<String> hanlderList = null;
private List<String> hanlderList = null;
/**
* 获取单元格内的值
*
*
* @param cell
* @param entity
* @return
@@ -68,8 +67,8 @@ public class CellValueServer {
}
Object result = null;
if ("class java.util.Date".equals(xclass) || "class java.sql.Date".equals(xclass)
|| ("class java.sql.Time").equals(xclass)
|| ("class java.sql.Timestamp").equals(xclass)) {
|| ("class java.sql.Time").equals(xclass)
|| ("class java.sql.Timestamp").equals(xclass)) {
/*
if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()) {
// 日期格式
@@ -79,10 +78,9 @@ public class CellValueServer {
result = getDateData(entity, cell.getStringCellValue());
}*/
//FIX: 单元格yyyyMMdd数字时候使用 cell.getDateCellValue() 解析出的日期错误
if (HSSFDateUtil.isCellDateFormatted(cell)){
result = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());
}
else {
if (Cell.CELL_TYPE_NUMERIC == cell.getCellType() && DateUtil.isCellDateFormatted(cell)) {
result = DateUtil.getJavaDate(cell.getNumericCellValue());
} else {
cell.setCellType(CellType.STRING);
result = getDateData(entity, cell.getStringCellValue());
}
@@ -95,11 +93,13 @@ public class CellValueServer {
if (("class java.sql.Timestamp").equals(xclass)) {
result = new Timestamp(((Date) result).getTime());
}
} else if (Cell.CELL_TYPE_NUMERIC == cell.getCellType() && DateUtil.isCellDateFormatted(cell)) {
result = DateUtil.getJavaDate(cell.getNumericCellValue());
} else {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
result = cell.getRichStringCellValue() == null ? ""
: cell.getRichStringCellValue().getString();
: cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
@@ -123,7 +123,7 @@ public class CellValueServer {
} catch (Exception e1) {
try {
result = cell.getRichStringCellValue() == null ? ""
: cell.getRichStringCellValue().getString();
: cell.getRichStringCellValue().getString();
} catch (Exception e2) {
throw new RuntimeException("获取公式类型的单元格失败", e2);
}
@@ -149,7 +149,7 @@ public class CellValueServer {
/**
* 获取日期类型数据
*
*
* @author JueYue
* 2013年11月26日
* @param entity
@@ -179,7 +179,7 @@ public class CellValueServer {
/**
* 获取cell的值
*
*
* @param object
* @param excelParams
* @param cell
@@ -192,7 +192,7 @@ public class CellValueServer {
String xclass = "class java.lang.Object";
if (!(object instanceof Map)) {
Method setMethod = entity.getMethods() != null && entity.getMethods().size() > 0
? entity.getMethods().get(entity.getMethods().size() - 1) : entity.getMethod();
? entity.getMethods().get(entity.getMethods().size() - 1) : entity.getMethod();
Type[] ts = setMethod.getGenericParameterTypes();
xclass = ts[0].toString();
}
@@ -219,7 +219,7 @@ public class CellValueServer {
String titleString) {
ExcelImportEntity entity = excelParams.get(titleString);
Method setMethod = entity.getMethods() != null && entity.getMethods().size() > 0
? entity.getMethods().get(entity.getMethods().size() - 1) : entity.getMethod();
? entity.getMethods().get(entity.getMethods().size() - 1) : entity.getMethod();
Type[] ts = setMethod.getGenericParameterTypes();
String xclass = ts[0].toString();
Object result = cellEntity.getValue();
@@ -231,13 +231,13 @@ public class CellValueServer {
/**
* 把后缀删除掉
* @param result
* @param suffix
* @param result
* @param suffix
* @return
*/
private Object hanlderSuffix(String suffix, Object result) {
if (StringUtils.isNotEmpty(suffix) && result != null
&& result.toString().endsWith(suffix)) {
&& result.toString().endsWith(suffix)) {
String temp = result.toString();
return temp.substring(0, temp.length() - suffix.length());
}
@@ -246,10 +246,10 @@ public class CellValueServer {
/**
* 根据返回类型获取返回值
*
*
* @param xclass
* @param result
* @param entity
* @param entity
* @return
*/
private Object getValueByType(String xclass, Object result, ExcelImportEntity entity) {
@@ -309,18 +309,18 @@ public class CellValueServer {
/**
* 调用处理接口处理值
*
*
* @param dataHanlder
* @param object
* @param result
* @param titleString
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@SuppressWarnings({"unchecked", "rawtypes"})
private Object hanlderValue(IExcelDataHandler dataHanlder, Object object, Object result,
String titleString) {
if (dataHanlder == null || dataHanlder.getNeedHandlerFields() == null
|| dataHanlder.getNeedHandlerFields().length == 0) {
|| dataHanlder.getNeedHandlerFields().length == 0) {
return result;
}
if (hanlderList == null) {
@@ -334,7 +334,7 @@ public class CellValueServer {
/**
* 替换值
*
*
* @param replace
* @param result
* @return


불러오는 중...
취소
저장