diff --git a/easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java b/easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java index cdbea62..7e1be99 100644 --- a/easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java +++ b/easypoi-annotation/src/main/java/org/jeecgframework/poi/excel/annotation/Excel.java @@ -112,4 +112,10 @@ public @interface Excel { * @return */ public boolean isStatistics() default false; + + /** + * 冰冻列 + * @return + */ + public boolean isFreeze() default false; } diff --git a/easypoi-base/pom.xml b/easypoi-base/pom.xml index 0aadc81..dc00e9b 100644 --- a/easypoi-base/pom.xml +++ b/easypoi-base/pom.xml @@ -27,7 +27,7 @@ xerces - xerces + xercesImpl diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java index acd31e5..733f510 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java @@ -58,6 +58,10 @@ public class ExcelExportEntity extends ExcelBaseEntity { * 统计 */ private boolean isStatistics; + /** + * 统计 + */ + private boolean isFreeze; private List list; @@ -184,4 +188,12 @@ public class ExcelExportEntity extends ExcelBaseEntity { this.isStatistics = isStatistics; } + public boolean isFreeze() { + return isFreeze; + } + + public void setFreeze(boolean isFreeze) { + this.isFreeze = isFreeze; + } + } 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 4fbf792..25e8517 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 @@ -140,6 +140,11 @@ public class ExcelExportServer extends ExcelExportBase { break; } mergeCells(sheet, excelParams, titleHeight); + for (int i = 0; i < excelParams.size(); i++) { + if (excelParams.get(i).isFreeze()) { + sheet.createFreezePane(i + 1, 0, i + 1, 0); + } + } its = dataSet.iterator(); for (int i = 0, le = tempList.size(); i < le; i++) { diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java index c23f87c..31e21d5 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java @@ -204,6 +204,7 @@ public class ExportBase { excelEntity.setFormat(StringUtils.isNotEmpty(excel.exportFormat()) ? excel.exportFormat() : excel.format()); excelEntity.setStatistics(excel.isStatistics()); + excelEntity.setFreeze(excel.isFreeze()); String fieldname = field.getName(); excelEntity.setMethod(POIPublicUtil.getMethod(fieldname, pojoClass)); } diff --git a/easypoi-test/.classpath b/easypoi-test/.classpath index cd3f839..ef4a7ce 100644 --- a/easypoi-test/.classpath +++ b/easypoi-test/.classpath @@ -1,13 +1,13 @@ - + - + @@ -22,5 +22,5 @@ - + diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/MsgClient.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/MsgClient.java index ec046a0..56f1687 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/MsgClient.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/MsgClient.java @@ -18,7 +18,7 @@ public class MsgClient implements java.io.Serializable { /** id */ private java.lang.String id; // 电话号码(主键) - @Excel(name = "电话号码") + @Excel(name = "电话号码", isFreeze = true) private String clientPhone = null; // 客户姓名 @Excel(name = "姓名") diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/TeacherEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/TeacherEntity.java index ee38a42..e3b7d26 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/TeacherEntity.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/entity/TeacherEntity.java @@ -18,7 +18,7 @@ public class TeacherEntity implements java.io.Serializable { @Excel(name = "老师ID_teacherEntity,老师属性_courseEntity", orderNum = "2", needMerge = false) private String id; /** name */ - @Excel(name = "语文老师_yuwen,数学老师_shuxue", orderNum = "2", mergeVertical = true) + @Excel(name = "语文老师_yuwen,数学老师_shuxue", orderNum = "2", mergeVertical = true, isFreeze = true) private String name; /* diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportMsgClient.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportMsgClient.java index e2c12f8..1b07a9c 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportMsgClient.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportMsgClient.java @@ -5,12 +5,14 @@ import static org.junit.Assert.*; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; +import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.enmus.ExcelType; import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants; @@ -28,6 +30,12 @@ public class ExcelExportMsgClient { @Test public void test() throws Exception { + Field[] fields = MsgClient.class.getFields(); + for (int i = 0; i < fields.length; i++) { + Excel excel = fields[i].getAnnotation(Excel.class); + System.out.println(excel); + } + List list = new ArrayList(); for (int i = 0; i < 50000; i++) { MsgClient client = new MsgClient(); diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportUtilIdTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportUtilIdTest.java index 8b105ae..717decd 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportUtilIdTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportUtilIdTest.java @@ -70,7 +70,6 @@ public class ExcelExportUtilIdTest { @Test public void testExportExcel() throws Exception { ExportParams params = new ExportParams("2412312", "测试", "测试"); - params.setAddIndex(true); Workbook workbook = ExcelExportUtil.exportExcel(params, CourseEntity.class, list); FileOutputStream fos = new FileOutputStream("d:/tt.xls"); workbook.write(fos); diff --git a/pom.xml b/pom.xml index 01c34d4..bae49d1 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ 2.0.8-SNAPSHOT 3.9 - 2.4.0 + 2.9.1 16.0.1 2.6 1.6.1 @@ -103,7 +103,7 @@ xerces - xerces + xercesImpl ${xerces.version}