소스 검색

循环解析多个模板的值--bate1

4.1.3.A
jueyue 10 년 전
부모
커밋
d5c83ef122
5개의 변경된 파일33개의 추가작업 그리고 29개의 파일을 삭제
  1. +8
    -5
      easypoi-base/src/main/java/org/jeecgframework/poi/cache/ExcelCache.java
  2. +1
    -1
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java
  3. +20
    -21
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/TemplateExportParams.java
  4. +3
    -1
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java
  5. +1
    -1
      easypoi-test/src/main/java/org/jeecgframework/poi/test/excel/test/ExcelExportTemplateTest.java

+ 8
- 5
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<Integer> 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;


+ 1
- 1
easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java 파일 보기

@@ -93,7 +93,7 @@ public final class ExcelExportUtil {
}
/**
* 导出文件通过模板解析
* 导出文件通过模板解析,不推荐这个了,推荐全部通过模板来执行处理
*
* @param params
* 导出参数类


+ 20
- 21
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;
}


+ 3
- 1
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();


+ 1
- 1
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()) {


불러오는 중...
취소
저장