From 0f4e6f941fb3c02022601f1d0488fb18ca492a93 Mon Sep 17 00:00:00 2001 From: jueyue Date: Sun, 10 Aug 2014 00:16:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E7=9A=84=E8=A1=8C=E6=95=B0,=E6=9D=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8F=8C=E8=A1=8C=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/export/base/ExcelExportBase.java | 5 ---- .../word/entity/params/ExcelListEntity.java | 26 +++++++++++++----- .../word/parse/excel/ExcelEntityParse.java | 27 +++++++++++-------- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java index e9eccc5..d5643fb 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java @@ -4,12 +4,8 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.lang.reflect.Method; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -32,7 +28,6 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; import org.jeecgframework.poi.excel.entity.params.MergeEntity; -import org.jeecgframework.poi.handler.inter.IExcelDataHandler; import org.jeecgframework.poi.util.POIPublicUtil; /** diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/word/entity/params/ExcelListEntity.java b/easypoi-base/src/main/java/org/jeecgframework/poi/word/entity/params/ExcelListEntity.java index 18ffa17..4dce013 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/word/entity/params/ExcelListEntity.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/word/entity/params/ExcelListEntity.java @@ -22,6 +22,12 @@ public class ExcelListEntity extends ExcelBaseParams { this.clazz = clazz; } + public ExcelListEntity(List list, Class clazz, int headRows) { + this.list = list; + this.clazz = clazz; + this.headRows = headRows; + } + public ExcelListEntity(List list, Class clazz, IExcelDataHandler dataHanlder) { this.list = list; @@ -29,6 +35,14 @@ public class ExcelListEntity extends ExcelBaseParams { setDataHanlder(dataHanlder); } + public ExcelListEntity(List list, Class clazz, + IExcelDataHandler dataHanlder, int headRows) { + this.list = list; + this.clazz = clazz; + this.headRows = headRows; + setDataHanlder(dataHanlder); + } + /** * 数据源 */ @@ -38,9 +52,9 @@ public class ExcelListEntity extends ExcelBaseParams { */ private Class clazz; /** - * 过滤的属性 + * 表头行数 */ - private String[] exclusions; + private int headRows = 1; public List getList() { return list; @@ -58,12 +72,12 @@ public class ExcelListEntity extends ExcelBaseParams { this.clazz = clazz; } - public String[] getExclusions() { - return exclusions; + public int getHeadRows() { + return headRows; } - public void setExclusions(String[] exclusions) { - this.exclusions = exclusions; + public void setHeadRows(int headRows) { + this.headRows = headRows; } } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/excel/ExcelEntityParse.java b/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/excel/ExcelEntityParse.java index 75e42b2..b8bc905 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/excel/ExcelEntityParse.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/word/parse/excel/ExcelEntityParse.java @@ -39,7 +39,8 @@ public class ExcelEntityParse extends ExportBase { ExcelListEntity entity) { checkExcelParams(entity); // 获取表头数据 - Map titlemap = getTitleMap(table, index); + Map titlemap = getTitleMap(table, index, + entity.getHeadRows()); try { // 得到所有字段 Field fileds[] = POIPublicUtil.getClassFields(entity.getClazz()); @@ -180,20 +181,24 @@ public class ExcelEntityParse extends ExportBase { * @param index * @return */ - private Map getTitleMap(XWPFTable table, int index) { - if (index == 0) { + private Map getTitleMap(XWPFTable table, int index, + int headRows) { + if (index < headRows) { throw new WordExportException(WordExportEnum.EXCEL_NO_HEAD); } - List cells = table.getRow(index - 1).getTableCells(); - Map map = new HashMap(cells.size()); + Map map = new HashMap(); String text; - for (int i = 0; i < cells.size(); i++) { - text = cells.get(i).getText(); - if (StringUtils.isEmpty(text)) { - throw new WordExportException( - WordExportEnum.EXCEL_HEAD_HAVA_NULL); + for (int j = 0; j < headRows; j++) { + List cells = table.getRow(index - j - 1) + .getTableCells(); + for (int i = 0; i < cells.size(); i++) { + text = cells.get(i).getText(); + if (StringUtils.isEmpty(text)) { + throw new WordExportException( + WordExportEnum.EXCEL_HEAD_HAVA_NULL); + } + map.put(text, i); } - map.put(text, i); } return map; }