From d5c83ef122b4618247e46138a6a65a81e2cc4fa6 Mon Sep 17 00:00:00 2001 From: jueyue Date: Wed, 22 Apr 2015 22:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E8=A7=A3=E6=9E=90=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E6=A8=A1=E6=9D=BF=E7=9A=84=E5=80=BC--bate1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecgframework/poi/cache/ExcelCache.java | 13 +++--- .../poi/excel/ExcelExportUtil.java | 2 +- .../excel/entity/TemplateExportParams.java | 41 +++++++++---------- .../template/ExcelExportOfTemplateUtil.java | 4 +- .../excel/test/ExcelExportTemplateTest.java | 2 +- 5 files changed, 33 insertions(+), 29 deletions(-) diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/ExcelCache.java b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/ExcelCache.java index 04d254e..af3e411 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/ExcelCache.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/ExcelCache.java @@ -1,6 +1,8 @@ package org.jeecgframework.poi.cache; import java.io.InputStream; +import java.util.Arrays; +import java.util.List; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Workbook; @@ -20,27 +22,28 @@ public final class ExcelCache { private static final Logger LOGGER = LoggerFactory.getLogger(ExcelCache.class); - public static Workbook getWorkbook(String url, int index) { + public static Workbook getWorkbook(String url, Integer[] sheetNums) { InputStream is = null; + List sheetList = Arrays.asList(sheetNums); try { is = POICacheManager.getFile(url); Workbook wb = WorkbookFactory.create(is); // 删除其他的sheet for (int i = wb.getNumberOfSheets() - 1; i >= 0; i--) { - if (i != index) { + if (!sheetList.contains(i)) { wb.removeSheetAt(i); } } return wb; } catch (InvalidFormatException e) { - LOGGER.error(e.getMessage(),e); + LOGGER.error(e.getMessage(), e); } catch (Exception e) { - LOGGER.error(e.getMessage(),e); + LOGGER.error(e.getMessage(), e); } finally { try { is.close(); } catch (Exception e) { - LOGGER.error(e.getMessage(),e); + LOGGER.error(e.getMessage(), e); } } return null; diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java index 6be46fb..b330e03 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java @@ -93,7 +93,7 @@ public final class ExcelExportUtil { } /** - * 导出文件通过模板解析 + * 导出文件通过模板解析,不推荐这个了,推荐全部通过模板来执行处理 * * @param params * 导出参数类 diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/TemplateExportParams.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/TemplateExportParams.java index 77d615b..9338678 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/TemplateExportParams.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/TemplateExportParams.java @@ -14,54 +14,49 @@ public class TemplateExportParams extends ExcelBaseParams { /** * 模板的路径 */ - private String templateUrl; + private String templateUrl; /** * 需要导出的第几个 sheetNum,默认是第0个 */ - private int sheetNum = 0; + private Integer[] sheetNum = new Integer[] { 0 }; /** * 这只sheetName 不填就使用原来的 */ - private String sheetName; + private String sheetName; /** * 表格列标题行数,默认1 */ - private int headingRows = 1; + private int headingRows = 1; /** * 表格列标题开始行,默认1 */ - private int headingStartRow = 1; + private int headingStartRow = 1; /** * Excel 导出style */ - private Class style = ExcelExportStylerDefaultImpl.class; + private Class style = ExcelExportStylerDefaultImpl.class; public TemplateExportParams() { } - public TemplateExportParams(String templateUrl) { + public TemplateExportParams(String templateUrl, Integer... sheetNum) { this.templateUrl = templateUrl; + if (sheetNum != null && sheetNum.length > 0) { + this.sheetNum = sheetNum; + } } - public TemplateExportParams(String templateUrl, int sheetNum) { - this.templateUrl = templateUrl; - this.sheetNum = sheetNum; - } - - public TemplateExportParams(String templateUrl, String sheetName) { + public TemplateExportParams(String templateUrl, String sheetName, Integer... sheetNum) { this.templateUrl = templateUrl; this.sheetName = sheetName; - } - - public TemplateExportParams(String templateUrl, String sheetName, int sheetNum) { - this.templateUrl = templateUrl; - this.sheetName = sheetName; - this.sheetNum = sheetNum; + if (sheetNum != null && sheetNum.length > 0) { + this.sheetNum = sheetNum; + } } public int getHeadingRows() { @@ -76,7 +71,7 @@ public class TemplateExportParams extends ExcelBaseParams { return sheetName; } - public int getSheetNum() { + public Integer[] getSheetNum() { return sheetNum; } @@ -96,10 +91,14 @@ public class TemplateExportParams extends ExcelBaseParams { this.sheetName = sheetName; } - public void setSheetNum(int sheetNum) { + public void setSheetNum(Integer[] sheetNum) { this.sheetNum = sheetNum; } + public void setSheetNum(Integer sheetNum) { + this.sheetNum = new Integer[] { sheetNum }; + } + public void setTemplateUrl(String templateUrl) { this.templateUrl = templateUrl; } 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 ad3869a..09ca372 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 @@ -156,7 +156,9 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { wb.setSheetName(0, params.getSheetName()); } // step 3. 解析模板 - parseTemplate(wb.getSheetAt(0), map); + for (int i = 0; i < params.getSheetNum().length; i++) { + parseTemplate(wb.getSheetAt(i), map); + } if (dataSet != null) { // step 4. 正常的数据填充 dataHanlder = params.getDataHanlder(); diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportTemplateTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportTemplateTest.java index 939f942..34bb255 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportTemplateTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportTemplateTest.java @@ -92,7 +92,7 @@ public class ExcelExportTemplateTest { map.put("i" + i, temp); } params.setTemplateUrl("org/jeecgframework/poi/test/excel/doc/exportTemp.xls"); - params.setSheetNum(1); + params.setSheetNum(new Integer[]{1}); Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list, map); File savefile = new File("d:/"); if (!savefile.exists()) {