Browse Source

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

4.1.3.A
jueyue 9 years ago
parent
commit
3a823e2744
4 changed files with 38 additions and 4 deletions
  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 View File

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


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

@@ -15,6 +15,8 @@
*/ */
package org.jeecgframework.poi.handler.impl; package org.jeecgframework.poi.handler.impl;
import java.util.Map;
import org.jeecgframework.poi.handler.inter.IExcelDataHandler; import org.jeecgframework.poi.handler.inter.IExcelDataHandler;
/** /**
@@ -49,4 +51,9 @@ public abstract class ExcelDataHandlerDefaultImpl implements IExcelDataHandler {
this.needHandlerFields = needHandlerFields; 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 View File

@@ -15,6 +15,8 @@
*/ */
package org.jeecgframework.poi.handler.inter; package org.jeecgframework.poi.handler.inter;
import java.util.Map;
/** /**
* Excel 导入导出 数据处理接口 * Excel 导入导出 数据处理接口
* *
@@ -62,4 +64,12 @@ public interface IExcelDataHandler {
*/ */
public void setNeedHandlerFields(String[] fields); 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 View File

@@ -31,6 +31,19 @@ public final class PoiMergeCellUtil {
* @param startRow 开始行 * @param startRow 开始行
*/ */
public static void mergeCells(Sheet sheet, Map<Integer, int[]> mergeMap, int 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>(); Map<Integer, MergeEntity> mergeDataMap = new HashMap<Integer, MergeEntity>();
if (mergeMap.size() == 0) { if (mergeMap.size() == 0) {
return; return;
@@ -38,11 +51,11 @@ public final class PoiMergeCellUtil {
Row row; Row row;
Set<Integer> sets = mergeMap.keySet(); Set<Integer> sets = mergeMap.keySet();
String text; String text;
for (int i = startRow; i <= sheet.getLastRowNum(); i++) {
for (int i = startRow; i <= endRow; i++) {
row = sheet.getRow(i); row = sheet.getRow(i);
for (Integer index : sets) { 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 { } else {
text = row.getCell(index).getStringCellValue(); text = row.getCell(index).getStringCellValue();
if (StringUtils.isNotEmpty(text)) { if (StringUtils.isNotEmpty(text)) {


Loading…
Cancel
Save