Browse Source

横向迭代的时候,合并问题

4.1.3.A
jueyue 5 years ago
parent
commit
cf6394d8c7
3 changed files with 28 additions and 1 deletions
  1. +12
    -0
      easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java
  2. +2
    -1
      easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiElUtil.java
  3. +14
    -0
      easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java

+ 12
- 0
easypoi-base/src/main/java/cn/afterturn/easypoi/excel/export/template/ExcelExportOfTemplateUtil.java View File

@@ -589,6 +589,18 @@ public final class ExcelExportOfTemplateUtil extends BaseExportService {
isI18n = true;
oldString = oldString.replaceFirst(I18N_HANDLER, "");
}
if (isHasSymbol(oldString, MERGE)) {
String mergeStr = PoiPublicUtil.getElStr(oldString,MERGE);
oldString = oldString.replace(mergeStr, "");
mergeStr = mergeStr.replaceFirst(MERGE, "");
try {
int colSpan = (int)Double.parseDouble(PoiPublicUtil.getRealValue(mergeStr, map).toString());
PoiMergeCellUtil.addMergedRegion(cell.getSheet(), cell.getRowIndex(),
cell.getRowIndex() , cell.getColumnIndex(), cell.getColumnIndex() + colSpan - 1);
} catch (Exception e) {
LOGGER.error(e.getMessage(),e);
}
}
Object obj = PoiPublicUtil.getRealValue(oldString, map);
if (isDict) {
obj = dictHandler.toName(dict, null, oldString, obj);


+ 2
- 1
easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiElUtil.java View File

@@ -40,6 +40,7 @@ public final class PoiElUtil {
public static final String END_STR = "}}";
public static final String WRAP = "]]";
public static final String NUMBER_SYMBOL = "n:";
public static final String MERGE = "merge:";
public static final String STYLE_SELF = "sy:";
public static final String FORMAT_DATE = "fd:";
public static final String FORMAT_NUMBER = "fn:";
@@ -48,7 +49,7 @@ public final class PoiElUtil {
public static final String EMPTY = "";
public static final String CONST = "'";
public static final String NULL = "&NULL&";
public static final String INDEX = "&INDEX&";
public static final String INDEX = "&INDEX&";
public static final String LEFT_BRACKET = "(";
public static final String RIGHT_BRACKET = ")";
public static final String CAL = "cal:";


+ 14
- 0
easypoi-base/src/main/java/cn/afterturn/easypoi/util/PoiPublicUtil.java View File

@@ -485,4 +485,18 @@ public final class PoiPublicUtil {
String[] paramsArr = name.split("\\.");
return paramsArr[paramsArr.length - 1];
}
/**
* 找到字符串中包含key的{{字符串返回}}
*
* @param str
* @param key
* @return
*/
public static String getElStr(String str, String key) {
int keyIndex = str.indexOf(key);
int startIndex = (str.substring(0, keyIndex)).lastIndexOf(START_STR);
int endIndex = str.indexOf(END_STR, keyIndex) + 2;
return str.substring(startIndex, endIndex);
}
}

Loading…
Cancel
Save