瀏覽代碼

修改handler的名字

4.1.3.A
jueyue 7 年之前
父節點
當前提交
a8fe17ce48
共有 13 個檔案被更改,包括 33 行新增325 行删除
  1. +2
    -2
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java
  2. +5
    -5
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java
  3. +0
    -63
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/result/ExcelVerifyHanlderResult.java
  4. +7
    -7
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java
  5. +0
    -198
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/TemplateSumHanlder.java
  6. +3
    -3
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/CellValueService.java
  7. +3
    -3
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java
  8. +3
    -3
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java
  9. +3
    -3
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java
  10. +0
    -31
      easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelReadRowHanlder.java
  11. +2
    -2
      easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelVerifyHandler.java
  12. +4
    -4
      easypoi-base/src/main/java/cn/afterturn/easypoi/word/entity/params/ExcelListEntity.java
  13. +1
    -1
      文档/2. Excel 注解版/2.5 Map导入,自由发挥

+ 2
- 2
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/ExcelImportUtil.java 查看文件

@@ -30,7 +30,7 @@ import cn.afterturn.easypoi.excel.imports.ExcelImportService;
import cn.afterturn.easypoi.excel.imports.sax.SaxReadExcel;
import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead;
import cn.afterturn.easypoi.exception.excel.ExcelImportException;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHanlder;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler;
/**
* Excel 导入工具
@@ -149,7 +149,7 @@ public class ExcelImportUtil {
*/
@SuppressWarnings("rawtypes")
public static void importExcelBySax(InputStream inputstream, Class<?> pojoClass,
ImportParams params, IExcelReadRowHanlder hanlder) {
ImportParams params, IExcelReadRowHandler hanlder) {
new SaxReadExcel().readExcel(inputstream, pojoClass, params, null, hanlder);
}


+ 5
- 5
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/ImportParams.java 查看文件

@@ -68,7 +68,7 @@ public class ImportParams extends ExcelBaseParams {
/**
* 校验处理接口
*/
private IExcelVerifyHandler verifyHanlder;
private IExcelVerifyHandler verifyHandler;
/**
* 保存上传的Excel目录,默认是 如 TestEntity这个类保存路径就是
* upload/excelUpload/Test/yyyyMMddHHmss_***** 保存名称上传时间_五位随机数
@@ -120,8 +120,8 @@ public class ImportParams extends ExcelBaseParams {
return titleRows;
}
public IExcelVerifyHandler getVerifyHanlder() {
return verifyHanlder;
public IExcelVerifyHandler getVerifyHandler() {
return verifyHandler;
}
public boolean isNeedSave() {
@@ -157,8 +157,8 @@ public class ImportParams extends ExcelBaseParams {
this.titleRows = titleRows;
}
public void setVerifyHanlder(IExcelVerifyHandler verifyHanlder) {
this.verifyHanlder = verifyHanlder;
public void setVerifyHandler(IExcelVerifyHandler verifyHandler) {
this.verifyHandler = verifyHandler;
}
public int getLastOfInvalidRow() {


+ 0
- 63
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/entity/result/ExcelVerifyHanlderResult.java 查看文件

@@ -1,63 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.afterturn.easypoi.excel.entity.result;
/**
* Excel导入处理返回结果
*
* @author JueYue
* 2014年6月23日 下午11:03:29
*/
public class ExcelVerifyHanlderResult {
/**
* 是否正确
*/
private boolean success;
/**
* 错误信息
*/
private String msg;
public ExcelVerifyHanlderResult() {
}
public ExcelVerifyHanlderResult(boolean success) {
this.success = success;
}
public ExcelVerifyHanlderResult(boolean success, String msg) {
this.success = success;
this.msg = msg;
}
public String getMsg() {
return msg;
}
public boolean isSuccess() {
return success;
}
public void setMsg(String msg) {
this.msg = msg;
}
public void setSuccess(boolean success) {
this.success = success;
}
}

+ 7
- 7
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java 查看文件

@@ -49,7 +49,7 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.entity.params.ExcelForEachParams;
import cn.afterturn.easypoi.excel.export.base.BaseExportService;
import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler;
import cn.afterturn.easypoi.excel.export.template.TemplateSumHanlder.TemplateSumEntity;
import cn.afterturn.easypoi.excel.export.template.TemplateSumHandler.TemplateSumEntity;
import cn.afterturn.easypoi.excel.html.helper.MergedRegionHelper;
import cn.afterturn.easypoi.exception.excel.ExcelExportException;
import cn.afterturn.easypoi.exception.excel.enums.ExcelExportEnum;
@@ -83,7 +83,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
*/
private MergedRegionHelper mergedRegionHelper;
private TemplateSumHanlder templateSumHanlder;
private TemplateSumHandler templateSumHandler;
/**
* 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射
@@ -253,7 +253,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
boolean colForeach) throws Exception {
deleteCell(sheet, map);
mergedRegionHelper = new MergedRegionHelper(sheet);
templateSumHanlder = new TemplateSumHanlder(sheet);
templateSumHandler = new TemplateSumHandler(sheet);
if (colForeach) {
colForeach(sheet, map);
}
@@ -277,7 +277,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
}
private void hanlderSumCell(Sheet sheet) {
for (TemplateSumEntity sumEntity : templateSumHanlder.getDataList()) {
for (TemplateSumEntity sumEntity : templateSumHandler.getDataList()) {
Cell cell = sheet.getRow(sumEntity.getRow()).getCell(sumEntity.getCol());
cell.setCellValue(cell.getStringCellValue()
.replace("sum:(" + sumEntity.getSumKey() + ")", sumEntity.getValue() + ""));
@@ -468,7 +468,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
createRowNoRow(cell.getRowIndex() + rowspan,cell.getRow().getSheet().getLastRowNum(),(datas.size() - 1) * rowspan);
cell.getRow().getSheet().shiftRows(cell.getRowIndex() + rowspan,
cell.getRow().getSheet().getLastRowNum(), (datas.size() - 1) * rowspan, true, true);
templateSumHanlder.shiftRows(cell.getRowIndex(),(datas.size() - 1) * rowspan);
templateSumHandler.shiftRows(cell.getRowIndex(),(datas.size() - 1) * rowspan);
}
while (its.hasNext()) {
Object t = its.next();
@@ -573,7 +573,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
row.getCell(ci).setCellStyle(params.getCellStyle()); // plq modify at 2017-11-13
//判断这个属性是不是需要统计
if (params.isNeedSum()) {
templateSumHanlder.addValueOfKey(params.getName(), val);
templateSumHandler.addValueOfKey(params.getName(), val);
}
//如果合并单元格,就把这个单元格的样式和之前的保持一致
setMergedRegionStyle(row, ci, columns.get(i));
@@ -719,7 +719,7 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
params.setRowspan(colAndrow[0]);
params.setColspan(colAndrow[1]);
}
params.setNeedSum(templateSumHanlder.isSumKey(params.getName()));
params.setNeedSum(templateSumHandler.isSumKey(params.getName()));
return params;
}


+ 0
- 198
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/TemplateSumHanlder.java 查看文件

@@ -1,198 +0,0 @@
package cn.afterturn.easypoi.excel.export.template;
import static cn.afterturn.easypoi.util.PoiElUtil.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import cn.afterturn.easypoi.util.PoiCellUtil;
/**
* 针对模板统计问题做统一处理
* 1.处理模板之前统计需要SUM的数据以及位置
* 2.遍历时统计数据
* 3.遍历后设置数据
* @author JueYue
* 2016年6月19日
*/
public class TemplateSumHanlder {
private Map<String, TemplateSumEntity> sumMap = new HashMap<String, TemplateSumEntity>();
public TemplateSumHanlder(Sheet sheet) {
getAllSumCell(sheet);
}
/**
* 统计计算所有的统计单元格
*/
private void getAllSumCell(Sheet sheet) {
Row row = null;
int index = 0;
while (index <= sheet.getLastRowNum()) {
row = sheet.getRow(index++);
if (row == null) {
continue;
}
for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
if (row.getCell(i) != null && PoiCellUtil.getCellValue(row.getCell(i)).contains(SUM)) {
addSumCellToList(row.getCell(i));
}
}
}
}
private void addSumCellToList(Cell cell) {
String cellValue = cell.getStringCellValue();
int index = 0;
while ((index = indexOfIgnoreCase(cellValue, SUM, index)) != -1) {
TemplateSumEntity entity = new TemplateSumEntity();
entity.setCellValue(cellValue);
entity.setSumKey(getSumKey(cellValue, index++));
entity.setCol(cell.getColumnIndex());
entity.setRow(cell.getRowIndex());
sumMap.put(entity.getSumKey(), entity);
}
}
public boolean isSumKey(String key) {
return sumMap.containsKey(key);
}
/**
* SUM:(key)
*
* @param cellValue
* @param index
* @return
*/
private String getSumKey(String cellValue, int index) {
return cellValue.substring(index + 5, cellValue.indexOf(")", index));
}
public void addValueOfKey(String key, String val) {
if (StringUtils.isNoneEmpty(key)) {
sumMap.get(key).setValue(sumMap.get(key).getValue() + Double.valueOf(val));
}
}
public List<TemplateSumEntity> getDataList() {
return new ArrayList<TemplateSumEntity>(sumMap.values());
}
public void addListSizeToSumEntity() {
}
/**
*
* @param rowIndex
* @param size
*/
public void shiftRows(int rowIndex, int size) {
for (TemplateSumEntity entity : getDataList()) {
if (entity.getRow() > rowIndex) {
entity.setRow(entity.getRow() + size);
}
}
}
private static int indexOfIgnoreCase(String str, String searchStr, int startPos) {
if (str == null || searchStr == null) {
return -1;
}
if (startPos < 0) {
startPos = 0;
}
int endLimit = (str.length() - searchStr.length()) + 1;
if (startPos > endLimit) {
return -1;
}
if (searchStr.length() == 0) {
return startPos;
}
for (int i = startPos; i < endLimit; i++) {
if (str.regionMatches(true, i, searchStr, 0, searchStr.length())) {
return i;
}
}
return -1;
}
/**
* 统计对象
* @author JueYue
*/
protected class TemplateSumEntity {
/**
* CELL的值
*/
private String cellValue;
/**
* 需要计算的KEY
*/
private String sumKey;
/**
* 列
*/
private int col;
/**
* 行
*/
private int row;
/**
* 最后值
*/
private double value;
public String getCellValue() {
return cellValue;
}
public void setCellValue(String cellValue) {
this.cellValue = cellValue;
}
public String getSumKey() {
return sumKey;
}
public void setSumKey(String sumKey) {
this.sumKey = sumKey;
}
public int getCol() {
return col;
}
public void setCol(int col) {
this.col = col;
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
}
}

+ 3
- 3
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/CellValueService.java 查看文件

@@ -212,14 +212,14 @@ public class CellValueService {

/**
* 获取cell值
* @param dataHanlder
* @param dataHandler
* @param object
* @param cellEntity
* @param excelParams
* @param titleString
* @return
*/
public Object getValue(IExcelDataHandler<?> dataHanlder, Object object,
public Object getValue(IExcelDataHandler<?> dataHandler, Object object,
SaxReadCellEntity cellEntity, Map<String, ExcelImportEntity> excelParams,
String titleString) {
ExcelImportEntity entity = excelParams.get(titleString);
@@ -230,7 +230,7 @@ public class CellValueService {
Object result = cellEntity.getValue();
result = hanlderSuffix(entity.getSuffix(), result);
result = replaceValue(entity.getReplace(), result);
result = handlerValue(dataHanlder, object, result, titleString);
result = handlerValue(dataHandler, object, result, titleString);
return getValueByType(xclass, result, entity);
}



+ 3
- 3
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/ExcelImportService.java 查看文件

@@ -50,7 +50,7 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelCollectionParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelImportEntity;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHanlderResult;
import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHandlerResult;
import cn.afterturn.easypoi.excel.imports.base.ImportBaseService;
import cn.afterturn.easypoi.exception.excel.ExcelImportException;
import cn.afterturn.easypoi.exception.excel.enums.ExcelImportEnum;
@@ -267,8 +267,8 @@ public class ExcelImportService extends ImportBaseService {
verfiyFail = true;
}
}
if (params.getVerifyHanlder() != null) {
ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object);
if (params.getVerifyHandler() != null) {
ExcelVerifyHandlerResult result = params.getVerifyHandler().verifyHandler(object);
if (!result.isSuccess()) {
if (cell == null) {
cell = row.createCell(row.getLastCellNum());


+ 3
- 3
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/SaxReadExcel.java 查看文件

@@ -34,7 +34,7 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.imports.sax.parse.ISaxRowRead;
import cn.afterturn.easypoi.excel.imports.sax.parse.SaxRowRead;
import cn.afterturn.easypoi.exception.excel.ExcelImportException;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHanlder;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler;
/**
* 基于SAX Excel大数据读取,读取Excel 07版本,不支持图片读取
@@ -48,7 +48,7 @@ public class SaxReadExcel {
private static final Logger LOGGER = LoggerFactory.getLogger(SaxReadExcel.class);
public <T> List<T> readExcel(InputStream inputstream, Class<?> pojoClass, ImportParams params,
ISaxRowRead rowRead, IExcelReadRowHanlder hanlder) {
ISaxRowRead rowRead, IExcelReadRowHandler hanlder) {
try {
OPCPackage opcPackage = OPCPackage.open(inputstream);
return readExcel(opcPackage, pojoClass, params, rowRead, hanlder);
@@ -59,7 +59,7 @@ public class SaxReadExcel {
}
private <T> List<T> readExcel(OPCPackage opcPackage, Class<?> pojoClass, ImportParams params,
ISaxRowRead rowRead, IExcelReadRowHanlder hanlder) {
ISaxRowRead rowRead, IExcelReadRowHandler hanlder) {
try {
XSSFReader xssfReader = new XSSFReader(opcPackage);
SharedStringsTable sst = xssfReader.getSharedStringsTable();


+ 3
- 3
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/imports/sax/parse/SaxRowRead.java 查看文件

@@ -36,7 +36,7 @@ import cn.afterturn.easypoi.excel.entity.sax.SaxReadCellEntity;
import cn.afterturn.easypoi.excel.imports.CellValueService;
import cn.afterturn.easypoi.excel.imports.base.ImportBaseService;
import cn.afterturn.easypoi.exception.excel.ExcelImportException;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHanlder;
import cn.afterturn.easypoi.handler.inter.IExcelReadRowHandler;
import cn.afterturn.easypoi.util.PoiPublicUtil;
import cn.afterturn.easypoi.util.PoiReflectorUtil;
@@ -69,9 +69,9 @@ public class SaxRowRead extends ImportBaseService implements ISaxRowRead {
private CellValueService cellValueServer;
private IExcelReadRowHanlder hanlder;
private IExcelReadRowHandler hanlder;
public SaxRowRead(Class<?> pojoClass, ImportParams params, IExcelReadRowHanlder hanlder) {
public SaxRowRead(Class<?> pojoClass, ImportParams params, IExcelReadRowHandler hanlder) {
list = Lists.newArrayList();
this.params = params;
this.pojoClass = pojoClass;


+ 0
- 31
easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelReadRowHanlder.java 查看文件

@@ -1,31 +0,0 @@
/**
* Copyright 2013-2015 JueYue (qrb.jueyue@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.afterturn.easypoi.handler.inter;
/**
* 接口自定义处理类
* @author JueYue
* 2015年1月16日 下午8:06:26
* @param <T>
*/
public interface IExcelReadRowHanlder<T> {
/**
* 处理解析对象
* @param t
*/
public void hanlder(T t);
}

+ 2
- 2
easypoi-base/src/main/java/cn/afterturn/easypoi/handler/inter/IExcelVerifyHandler.java 查看文件

@@ -15,7 +15,7 @@
*/
package cn.afterturn.easypoi.handler.inter;
import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHanlderResult;
import cn.afterturn.easypoi.excel.entity.result.ExcelVerifyHandlerResult;
/**
* 导入校验接口
@@ -32,6 +32,6 @@ public interface IExcelVerifyHandler<T> {
* 当前对象
* @return
*/
public ExcelVerifyHanlderResult verifyHandler(T obj);
public ExcelVerifyHandlerResult verifyHandler(T obj);
}

+ 4
- 4
easypoi-base/src/main/java/cn/afterturn/easypoi/word/entity/params/ExcelListEntity.java 查看文件

@@ -52,18 +52,18 @@ public class ExcelListEntity extends ExcelBaseParams {
this.clazz = clazz;
}
public ExcelListEntity(List<?> list, Class<?> clazz, IExcelDataHandler dataHanlder) {
public ExcelListEntity(List<?> list, Class<?> clazz, IExcelDataHandler dataHandler) {
this.list = list;
this.clazz = clazz;
setDataHanlder(dataHanlder);
setDataHandler(dataHandler);
}
public ExcelListEntity(List<?> list, Class<?> clazz, IExcelDataHandler dataHanlder,
public ExcelListEntity(List<?> list, Class<?> clazz, IExcelDataHandler dataHandler,
int headRows) {
this.list = list;
this.clazz = clazz;
this.headRows = headRows;
setDataHanlder(dataHanlder);
setDataHandler(dataHandler);
}
public ExcelListEntity(List<?> list, Class<?> clazz, int headRows) {


+ 1
- 1
文档/2. Excel 注解版/2.5 Map导入,自由发挥 查看文件

@@ -6,7 +6,7 @@
导入的逻辑就变成了
```java
ImportParams params = new ImportParams();
params.setDataHanlder(new MapImportHanlder());
params.setDataHandler(new MapImportHandler());
long start = new Date().getTime();
List<Map<String, Object>> list = ExcelImportUtil.importExcel(
new File(PoiPublicUtil.getWebRootPath("import/check.xls")), Map.class, params);


Loading…
取消
儲存