diff --git a/README.md b/README.md
index ed72131..ec0901d 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@ EasyPoi的几个入口工具类
2.easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理
3.easypoi-base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能
4.easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能
-
+ 5.sax 导入使用xercesImpl这个包(这个包可能造成奇怪的问题哈),word导出使用poi-scratchpad,都作为可选包了
--------------------------
maven
--------------------------
diff --git a/easypoi-annotation/.classpath b/easypoi-annotation/.classpath
index 4d455a3..c9464c0 100644
--- a/easypoi-annotation/.classpath
+++ b/easypoi-annotation/.classpath
@@ -6,22 +6,12 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/easypoi-base/pom.xml b/easypoi-base/pom.xml
index a59d6f8..bc59aa7 100644
--- a/easypoi-base/pom.xml
+++ b/easypoi-base/pom.xml
@@ -20,14 +20,24 @@
org.apache.poi
poi-ooxml-schemas
+
+
+ xerces
+ xercesImpl
+
+
-
- org.apache.poi
- poi-scratchpad
-
+
xerces
xercesImpl
+ true
+
+
+
+ org.apache.poi
+ poi-scratchpad
+ true
diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java
index 9f00097..a970751 100644
--- a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java
+++ b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java
@@ -43,7 +43,7 @@ public final class POICacheManager {
private static LoadingCache loadingCache;
static {
- loadingCache = CacheBuilder.newBuilder().expireAfterWrite(1, TimeUnit.DAYS).maximumSize(50)
+ loadingCache = CacheBuilder.newBuilder().expireAfterWrite(7, TimeUnit.DAYS).maximumSize(50)
.build(new CacheLoader() {
@Override
public byte[] load(String url) throws Exception {
diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java
index 986b33e..f86f737 100644
--- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java
+++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Row;
@@ -49,7 +50,7 @@ import org.slf4j.LoggerFactory;
* @date 2014年6月17日 下午5:30:54
*/
public class ExcelExportServer extends ExcelExportBase {
-
+
private final static Logger LOGGER = LoggerFactory.getLogger(ExcelExportServer.class);
// 最大行数,超过自动多Sheet
@@ -174,7 +175,7 @@ public class ExcelExportServer extends ExcelExportBase {
}
} catch (Exception e) {
- LOGGER.error(e.getMessage(),e);
+ LOGGER.error(e.getMessage(), e);
LOGGER.error(e.getMessage(), e);
throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR, e.getCause());
}
@@ -272,15 +273,20 @@ public class ExcelExportServer extends ExcelExportBase {
CellStyle titleStyle = getExcelExportStyler().getTitleStyle(title.getColor());
for (int i = 0, exportFieldTitleSize = excelParams.size(); i < exportFieldTitleSize; i++) {
ExcelExportEntity entity = excelParams.get(i);
- createStringCell(row, cellIndex, entity.getName(), titleStyle, entity);
+ if (StringUtils.isNoneBlank(entity.getName())) {
+ createStringCell(row, cellIndex, entity.getName(), titleStyle, entity);
+ }
if (entity.getList() != null) {
List sTitel = entity.getList();
- sheet.addMergedRegion(new CellRangeAddress(index, index, cellIndex, cellIndex
- + sTitel.size()
- - 1));
+ if (StringUtils.isNoneBlank(entity.getName())) {
+ sheet.addMergedRegion(new CellRangeAddress(index, index, cellIndex, cellIndex
+ + sTitel
+ .size()
+ - 1));
+ }
for (int j = 0, size = sTitel.size(); j < size; j++) {
- createStringCell(listRow, cellIndex, sTitel.get(j).getName(), titleStyle,
- entity);
+ createStringCell(rows == 2 ? listRow : row, cellIndex, sTitel.get(j).getName(),
+ titleStyle, entity);
cellIndex++;
}
} else if (rows == 2) {
@@ -301,7 +307,8 @@ public class ExcelExportServer extends ExcelExportBase {
*/
private int getRowNums(List excelParams) {
for (int i = 0; i < excelParams.size(); i++) {
- if (excelParams.get(i).getList() != null) {
+ if (excelParams.get(i).getList() != null
+ && StringUtils.isNoneBlank(excelParams.get(i).getName())) {
return 2;
}
}
diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java
index f684866..784eb6e 100644
--- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java
+++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java
@@ -96,9 +96,6 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase {
if (etarget != null) {
targetId = etarget.value();
}
- // 创建表格样式
- setExcelExportStyler((IExcelExportStyler) teplateParams.getStyle()
- .getConstructor(Workbook.class).newInstance(workbook));
// 获取实体对象的导出数据
List excelParams = new ArrayList();
getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null);
@@ -172,6 +169,9 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase {
try {
this.teplateParams = params;
wb = getCloneWorkBook();
+ // 创建表格样式
+ setExcelExportStyler((IExcelExportStyler) teplateParams.getStyle()
+ .getConstructor(Workbook.class).newInstance(wb));
// step 3. 解析模板
for (int i = 0, le = params.isScanAllsheet() ? wb.getNumberOfSheets() : params
.getSheetNum().length; i < le; i++) {
diff --git a/easypoi-test/.classpath b/easypoi-test/.classpath
index 7fbaeee..13ed0c0 100644
--- a/easypoi-test/.classpath
+++ b/easypoi-test/.classpath
@@ -6,7 +6,6 @@
-
diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/CourseEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/CourseEntity.java
index af164a2..c18eee4 100644
--- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/CourseEntity.java
+++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/CourseEntity.java
@@ -32,7 +32,7 @@ public class CourseEntity implements java.io.Serializable {
//@ExcelEntity(id = "shuxue")
private TeacherEntity shuxueteacher;
- @ExcelCollection(name = "选课学生", orderNum = "4")
+ @ExcelCollection(name = "", orderNum = "4")
private List students;
/**
diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/StudentEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/StudentEntity.java
index 5b887e4..eb20866 100644
--- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/StudentEntity.java
+++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/StudentEntity.java
@@ -16,27 +16,27 @@ public class StudentEntity implements java.io.Serializable {
/**
* id
*/
- private String id;
+ private String id;
/**
* 学生姓名
*/
@Excel(name = "学生姓名", height = 20, width = 30)
- private String name;
+ private String name;
/**
* 学生性别
*/
- @Excel(name = "学生性别", replace = { "男_1", "女_2" }, suffix = "生", mergeVertical = true)
- private int sex;
+ @Excel(name = "学生性别", replace = { "男_1", "女_2" }, suffix = "生")
+ private int sex;
+
+ @Excel(name = "出生日期", databaseFormat = "yyyyMMddHHmmss", exportFormat = "yyyy-MM-dd")
+ private Date birthday;
- @Excel(name = "出生日期", databaseFormat = "yyyyMMddHHmmss", exportFormat = "yyyy-MM-dd", mergeVertical = true)
- private Date birthday;
-
@Excel(name = "进校日期", databaseFormat = "yyyyMMddHHmmss", exportFormat = "yyyy-MM-dd")
- private java.sql.Time registrationDate;
+ private java.sql.Time registrationDate;
/**
* 课程主键
*/
- private CourseEntity course;
+ private CourseEntity course;
public CourseEntity getCourse() {
return course;
diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/doc/foreach.xlsx b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/doc/foreach.xlsx
index a1af1b2..be6702f 100644
Binary files a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/doc/foreach.xlsx and b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/doc/foreach.xlsx differ
diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/template/TemplateForEachTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/template/TemplateForEachTest.java
index 36f574f..41f3630 100644
--- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/template/TemplateForEachTest.java
+++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/template/TemplateForEachTest.java
@@ -45,12 +45,21 @@ public class TemplateForEachTest {
for (int i = 0; i < 4; i++) {
Map testMap = new HashMap();
- testMap.put("id", i);
+ testMap.put("id", "xman");
testMap.put("name", "小明" + i);
testMap.put("sex", "man");
mapList.add(testMap);
}
map.put("maplist", mapList);
+
+ mapList = new ArrayList
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index faac0b5..cfe838e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,11 +46,19 @@
poi-ooxml
${poi.version}
+
org.apache.poi
poi-ooxml-schemas
${poi.version}
+
+
+ xerces
+ xercesImpl
+ ${xerces.version}
+ true
+
org.apache.poi
poi-scratchpad
@@ -101,11 +109,6 @@
spring-core
${spring.version}
-
- xerces
- xercesImpl
- ${xerces.version}
-
javax.servlet