Skip to content

Commit 9801ac9

Browse files
author
milixiang
committed
fix: fix Copilot review issue
1 parent ce222f2 commit 9801ac9

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

fesod/src/main/java/org/apache/fesod/excel/write/executor/AbstractExcelWriteExecutor.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,16 @@ protected void converterAndSet(CellWriteHandlerContext cellWriteHandlerContext)
161161
Object o = dynamicColumnMap.get(key);
162162
String originalVariable = cellWriteHandlerContext.getOriginalVariable();
163163
if(originalVariable.contains(".")){
164-
key = originalVariable.split("\\.")[1];
165-
Object itemBean = o;
166-
if (null == itemBean) {
167-
o = null;
168-
}else{
169-
BeanMap beanMap = BeanMapUtils.create(itemBean);
170-
o = beanMap.get(key);
164+
int dotIndex = originalVariable.indexOf('.');
165+
if (dotIndex > 0) {
166+
key = originalVariable.substring(dotIndex + 1);
167+
Object itemBean = o;
168+
if (null == itemBean) {
169+
o = null;
170+
}else{
171+
BeanMap beanMap = BeanMapUtils.create(itemBean);
172+
o = beanMap.get(key);
173+
}
171174
}
172175
}
173176

fesod/src/main/java/org/apache/fesod/excel/write/executor/ExcelWriteFillExecutor.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,11 @@ private void shiftCellsIfNecessary(FillConfig fillConfig, Collection<?> collecti
173173
List<String> variableList = analysisCell.getVariableList();
174174
for (String fieldName : dynamicFieldMap.keySet()) {
175175
for (String variable : variableList) {
176-
String variableFieldName = variable.split("\\.")[0];
176+
int dotIndex = variable.indexOf('.');
177+
if (dotIndex <= 0) {
178+
continue;
179+
}
180+
String variableFieldName = variable.substring(0, dotIndex);
177181
if (StringUtils.equals(fieldName, variableFieldName)) {
178182
List<String> headers = fillConfig.getDynamicColumnInfo(fieldName).getKeys();
179183
Integer columnGroupSize = fillConfig.getDynamicColumnInfo(fieldName).getGroupSize();
@@ -280,7 +284,10 @@ private void doFill(
280284
} else if (dataKeySet.contains(variable)) {
281285
value = dataMap.get(variable);
282286
} else if (variable.contains(COLLECTION_PREFIX)) {
283-
variable = variable.split("\\.")[0];
287+
int dotIndex = variable.indexOf('.');
288+
if (dotIndex > 0) {
289+
variable = variable.substring(0, dotIndex);
290+
}
284291
value = dataMap.get(variable);
285292
}
286293
ExcelContentProperty excelContentProperty = ClassUtils.declaredExcelContentProperty(
@@ -479,7 +486,7 @@ private void createCell(
479486
cellWriteHandlerContext.getCellMap().put(lastRowIndex + "_" + lastColumnIndex, cellWriteHandlerContext);
480487
DynamicColumnInfo dynamicColumnInfo = fillConfig.getDynamicColumnInfo(field.getName());
481488
if (null == dynamicColumnInfo || CollectionUtils.isEmpty(dynamicColumnInfo.getKeys())) {
482-
throw new ExcelGenerateException(String.format("Plase set dynamic column keys for %s in fillConfig", field.getName()));
489+
throw new ExcelGenerateException(String.format("Please set dynamic column keys for %s in fillConfig", field.getName()));
483490
}
484491
for (int i = 1; i < dynamicColumnInfo.getKeys().size(); i++) {
485492
switch (fillConfig.getDirection()) {

fesod/src/main/java/org/apache/fesod/excel/write/metadata/fill/FillConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ public class FillConfig {
7777
* @return dynamic column info
7878
* */
7979
public DynamicColumnInfo getDynamicColumnInfo(String fieldName) {
80+
if (null == dynamicColumnInfoMap) {
81+
return null;
82+
}
8083
if (null == fieldName || !dynamicColumnInfoMap.containsKey(fieldName)) {
8184
return dynamicColumnInfoMap.get(DEFAULT_DYNAMIC_INFO_KEY);
8285
}else{

0 commit comments

Comments
 (0)