| @@ -4,12 +4,8 @@ import java.awt.image.BufferedImage; | |||||
| import java.io.ByteArrayOutputStream; | import java.io.ByteArrayOutputStream; | ||||
| import java.io.File; | import java.io.File; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||
| import java.lang.reflect.Method; | |||||
| import java.text.SimpleDateFormat; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collection; | import java.util.Collection; | ||||
| import java.util.Collections; | |||||
| import java.util.Date; | |||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -32,7 +28,6 @@ import org.apache.poi.ss.usermodel.Workbook; | |||||
| import org.apache.poi.ss.util.CellRangeAddress; | import org.apache.poi.ss.util.CellRangeAddress; | ||||
| import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; | import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; | ||||
| import org.jeecgframework.poi.excel.entity.params.MergeEntity; | import org.jeecgframework.poi.excel.entity.params.MergeEntity; | ||||
| import org.jeecgframework.poi.handler.inter.IExcelDataHandler; | |||||
| import org.jeecgframework.poi.util.POIPublicUtil; | import org.jeecgframework.poi.util.POIPublicUtil; | ||||
| /** | /** | ||||
| @@ -22,6 +22,12 @@ public class ExcelListEntity extends ExcelBaseParams { | |||||
| this.clazz = clazz; | 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, | public ExcelListEntity(List<?> list, Class<?> clazz, | ||||
| IExcelDataHandler dataHanlder) { | IExcelDataHandler dataHanlder) { | ||||
| this.list = list; | this.list = list; | ||||
| @@ -29,6 +35,14 @@ public class ExcelListEntity extends ExcelBaseParams { | |||||
| setDataHanlder(dataHanlder); | 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 Class<?> clazz; | ||||
| /** | /** | ||||
| * 过滤的属性 | |||||
| * 表头行数 | |||||
| */ | */ | ||||
| private String[] exclusions; | |||||
| private int headRows = 1; | |||||
| public List<?> getList() { | public List<?> getList() { | ||||
| return list; | return list; | ||||
| @@ -58,12 +72,12 @@ public class ExcelListEntity extends ExcelBaseParams { | |||||
| this.clazz = clazz; | 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; | |||||
| } | } | ||||
| } | } | ||||
| @@ -39,7 +39,8 @@ public class ExcelEntityParse extends ExportBase { | |||||
| ExcelListEntity entity) { | ExcelListEntity entity) { | ||||
| checkExcelParams(entity); | checkExcelParams(entity); | ||||
| // 获取表头数据 | // 获取表头数据 | ||||
| Map<String, Integer> titlemap = getTitleMap(table, index); | |||||
| Map<String, Integer> titlemap = getTitleMap(table, index, | |||||
| entity.getHeadRows()); | |||||
| try { | try { | ||||
| // 得到所有字段 | // 得到所有字段 | ||||
| Field fileds[] = POIPublicUtil.getClassFields(entity.getClazz()); | Field fileds[] = POIPublicUtil.getClassFields(entity.getClazz()); | ||||
| @@ -180,20 +181,24 @@ public class ExcelEntityParse extends ExportBase { | |||||
| * @param index | * @param index | ||||
| * @return | * @return | ||||
| */ | */ | ||||
| private Map<String, Integer> getTitleMap(XWPFTable table, int index) { | |||||
| if (index == 0) { | |||||
| private Map<String, Integer> getTitleMap(XWPFTable table, int index, | |||||
| int headRows) { | |||||
| if (index < headRows) { | |||||
| throw new WordExportException(WordExportEnum.EXCEL_NO_HEAD); | throw new WordExportException(WordExportEnum.EXCEL_NO_HEAD); | ||||
| } | } | ||||
| List<XWPFTableCell> cells = table.getRow(index - 1).getTableCells(); | |||||
| Map<String, Integer> map = new HashMap<String, Integer>(cells.size()); | |||||
| Map<String, Integer> map = new HashMap<String, Integer>(); | |||||
| String text; | 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<XWPFTableCell> 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; | return map; | ||||
| } | } | ||||