Browse Source

导入支持groupname

4.1.3.A
jueyue 7 years ago
parent
commit
5a519b58bf
1 changed files with 24 additions and 21 deletions
  1. +24
    -21
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java

+ 24
- 21
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/base/ImportBaseService.java View File

@@ -1,13 +1,13 @@
/** /**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com) * 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, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
@@ -51,7 +51,7 @@ public class ImportBaseService {
/** /**
* 把这个注解解析放到类型对象中 * 把这个注解解析放到类型对象中
*
*
* @param targetId * @param targetId
* @param field * @param field
* @param excelEntity * @param excelEntity
@@ -72,7 +72,7 @@ public class ImportBaseService {
excelEntity.setDatabaseFormat(excel.databaseFormat()); excelEntity.setDatabaseFormat(excel.databaseFormat());
excelEntity.setSuffix(excel.suffix()); excelEntity.setSuffix(excel.suffix());
excelEntity.setImportField(Boolean excelEntity.setImportField(Boolean
.valueOf(PoiPublicUtil.getValueByTargetId(excel.isImportField(), targetId, "false")));
.valueOf(PoiPublicUtil.getValueByTargetId(excel.isImportField(), targetId, "false")));
getExcelField(targetId, field, excelEntity, excel, pojoClass); getExcelField(targetId, field, excelEntity, excel, pojoClass);
if (getMethods != null) { if (getMethods != null) {
List<Method> newMethods = new ArrayList<Method>(); List<Method> newMethods = new ArrayList<Method>();
@@ -114,10 +114,10 @@ public class ImportBaseService {
Class<?> clz = (Class<?>) pt.getActualTypeArguments()[0]; Class<?> clz = (Class<?>) pt.getActualTypeArguments()[0];
collection.setType(clz); collection.setType(clz);
getExcelFieldList(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId, getExcelFieldList(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId,
PoiPublicUtil.getClassFields(clz), clz, temp, null);
PoiPublicUtil.getClassFields(clz), clz, temp, null);
collection.setExcelParams(temp); collection.setExcelParams(temp);
collection.setExcelName(PoiPublicUtil.getValueByTargetId( collection.setExcelName(PoiPublicUtil.getValueByTargetId(
field.getAnnotation(ExcelCollection.class).name(), targetId, null));
field.getAnnotation(ExcelCollection.class).name(), targetId, null));
additionalCollectionName(collection); additionalCollectionName(collection);
excelCollection.add(collection); excelCollection.add(collection);
} else if (PoiPublicUtil.isJavaClass(field)) { } else if (PoiPublicUtil.isJavaClass(field)) {
@@ -131,8 +131,8 @@ public class ImportBaseService {
newMethods.add(PoiReflectorUtil.fromCache(pojoClass).getGetMethod(field.getName())); newMethods.add(PoiReflectorUtil.fromCache(pojoClass).getGetMethod(field.getName()));
ExcelEntity excel = field.getAnnotation(ExcelEntity.class); ExcelEntity excel = field.getAnnotation(ExcelEntity.class);
getAllExcelField(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId, getAllExcelField(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId,
PoiPublicUtil.getClassFields(field.getType()), excelParams, excelCollection,
field.getType(), newMethods);
PoiPublicUtil.getClassFields(field.getType()), excelParams, excelCollection,
field.getType(), newMethods);
} }
} }
} }
@@ -146,7 +146,7 @@ public class ImportBaseService {
keys.addAll(collection.getExcelParams().keySet()); keys.addAll(collection.getExcelParams().keySet());
for (String key : keys) { for (String key : keys) {
collection.getExcelParams().put(collection.getExcelName() + "_" + key, collection.getExcelParams().put(collection.getExcelName() + "_" + key,
collection.getExcelParams().get(key));
collection.getExcelParams().get(key));
collection.getExcelParams().remove(key); collection.getExcelParams().remove(key);
} }
} }
@@ -154,6 +154,9 @@ public class ImportBaseService {
public void getExcelField(String targetId, Field field, ExcelImportEntity excelEntity, public void getExcelField(String targetId, Field field, ExcelImportEntity excelEntity,
Excel excel, Class<?> pojoClass) throws Exception { Excel excel, Class<?> pojoClass) throws Exception {
excelEntity.setName(PoiPublicUtil.getValueByTargetId(excel.name(), targetId, null)); excelEntity.setName(PoiPublicUtil.getValueByTargetId(excel.name(), targetId, null));
if (StringUtils.isNoneEmpty(excel.groupName())) {
excelEntity.setName(excel.groupName() + "_" + excelEntity.getName());
}
String fieldname = field.getName(); String fieldname = field.getName();
excelEntity.setMethod(PoiReflectorUtil.fromCache(pojoClass).getSetMethod(fieldname)); excelEntity.setMethod(PoiReflectorUtil.fromCache(pojoClass).getSetMethod(fieldname));
if (StringUtils.isNotEmpty(excel.importFormat())) { if (StringUtils.isNotEmpty(excel.importFormat())) {
@@ -182,8 +185,8 @@ public class ImportBaseService {
ExcelEntity excel = field.getAnnotation(ExcelEntity.class); ExcelEntity excel = field.getAnnotation(ExcelEntity.class);
newMethods.add(PoiReflectorUtil.fromCache(pojoClass).getSetMethod(field.getName())); newMethods.add(PoiReflectorUtil.fromCache(pojoClass).getSetMethod(field.getName()));
getExcelFieldList(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId, getExcelFieldList(StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId,
PoiPublicUtil.getClassFields(field.getType()), field.getType(), temp,
newMethods);
PoiPublicUtil.getClassFields(field.getType()), field.getType(), temp,
newMethods);
} }
} }
} }
@@ -192,7 +195,7 @@ public class ImportBaseService {
Method m; Method m;
for (int i = 0; i < list.size() - 1; i++) { for (int i = 0; i < list.size() - 1; i++) {
m = list.get(i); m = list.get(i);
t = m.invoke(t, new Object[] {});
t = m.invoke(t, new Object[]{});
} }
return t; return t;
} }
@@ -206,15 +209,15 @@ public class ImportBaseService {
} }
SimpleDateFormat format = new SimpleDateFormat("yyyMMddHHmmss"); SimpleDateFormat format = new SimpleDateFormat("yyyMMddHHmmss");
FileOutputStream fos = new FileOutputStream( FileOutputStream fos = new FileOutputStream(
path + "/" + format.format(new Date()) + "_" + Math.round(Math.random() * 100000)
+ (isXSSFWorkbook == true ? ".xlsx" : ".xls"));
path + "/" + format.format(new Date()) + "_" + Math.round(Math.random() * 100000)
+ (isXSSFWorkbook == true ? ".xlsx" : ".xls"));
book.write(fos); book.write(fos);
IOUtils.closeQuietly(fos); IOUtils.closeQuietly(fos);
} }
/** /**
* 获取保存的Excel 的真实路径 * 获取保存的Excel 的真实路径
*
*
* @param params * @param params
* @param pojoClass * @param pojoClass
* @return * @return
@@ -231,7 +234,7 @@ public class ImportBaseService {
/** /**
* 多个get 最后再set * 多个get 最后再set
*
*
* @param setMethods * @param setMethods
* @param object * @param object
*/ */
@@ -242,7 +245,7 @@ public class ImportBaseService {
} }
/** /**
*
*
* @param entity * @param entity
* @param object * @param object
* @param value * @param value


Loading…
Cancel
Save