Explorar el Código

加入了map setValue的接口,用以自定义setValue

4.1.3.A
jueyue hace 9 años
padre
commit
3a823e2744
Se han modificado 4 ficheros con 38 adiciones y 4 borrados
  1. +5
    -1
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java
  2. +7
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/impl/ExcelDataHandlerDefaultImpl.java
  3. +10
    -0
      easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelDataHandler.java
  4. +16
    -3
      easypoi-base/src/main/java/org/jeecgframework/poi/util/PoiMergeCellUtil.java

+ 5
- 1
easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java Ver fichero

@@ -366,7 +366,11 @@ public class ExcelImportServer extends ImportBaseService {
Object value = cellValueServer.getValue(params.getDataHanlder(), object, cell, excelParams,
titleString);
if (object instanceof Map) {
((Map) object).put(titleString, value);
if (params.getDataHanlder() != null) {
params.getDataHanlder().setMapValue((Map) object, titleString, value);
} else {
((Map) object).put(titleString, value);
}
} else {
ExcelVerifyHanlderResult verifyResult = verifyHandlerServer.verifyData(object, value,
titleString, excelParams.get(titleString).getVerify(), params.getVerifyHanlder());


+ 7
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/handler/impl/ExcelDataHandlerDefaultImpl.java Ver fichero

@@ -15,6 +15,8 @@
*/
package org.jeecgframework.poi.handler.impl;
import java.util.Map;
import org.jeecgframework.poi.handler.inter.IExcelDataHandler;
/**
@@ -49,4 +51,9 @@ public abstract class ExcelDataHandlerDefaultImpl implements IExcelDataHandler {
this.needHandlerFields = needHandlerFields;
}
@Override
public void setMapValue(Map<String, Object> map, String originKey, Object value) {
map.put(originKey, value);
}
}

+ 10
- 0
easypoi-base/src/main/java/org/jeecgframework/poi/handler/inter/IExcelDataHandler.java Ver fichero

@@ -15,6 +15,8 @@
*/
package org.jeecgframework.poi.handler.inter;
import java.util.Map;
/**
* Excel 导入导出 数据处理接口
*
@@ -62,4 +64,12 @@ public interface IExcelDataHandler {
*/
public void setNeedHandlerFields(String[] fields);
/**
* 设置Map导入,自定义 put
* @param map
* @param originKey
* @param value
*/
public void setMapValue(Map<String, Object> map, String originKey, Object value);
}

+ 16
- 3
easypoi-base/src/main/java/org/jeecgframework/poi/util/PoiMergeCellUtil.java Ver fichero

@@ -31,6 +31,19 @@ public final class PoiMergeCellUtil {
* @param startRow 开始行
*/
public static void mergeCells(Sheet sheet, Map<Integer, int[]> mergeMap, int startRow) {
mergeCells(sheet, mergeMap, startRow, sheet.getLastRowNum());
}
/**
* 纵向合并相同内容的单元格
*
* @param sheet
* @param mergeMap key--列,value--依赖的列,没有传空
* @param startRow 开始行
* @param endRow 结束行
*/
public static void mergeCells(Sheet sheet, Map<Integer, int[]> mergeMap, int startRow,
int endRow) {
Map<Integer, MergeEntity> mergeDataMap = new HashMap<Integer, MergeEntity>();
if (mergeMap.size() == 0) {
return;
@@ -38,11 +51,11 @@ public final class PoiMergeCellUtil {
Row row;
Set<Integer> sets = mergeMap.keySet();
String text;
for (int i = startRow; i <= sheet.getLastRowNum(); i++) {
for (int i = startRow; i <= endRow; i++) {
row = sheet.getRow(i);
for (Integer index : sets) {
if (row.getCell(index) == null) {
mergeDataMap.get(index).setEndRow(i);
if (row == null || row.getCell(index) == null) {
mergeDataMap.get(index).setEndRow(i - 1);
} else {
text = row.getCell(index).getStringCellValue();
if (StringUtils.isNotEmpty(text)) {


Cargando…
Cancelar
Guardar