Skip to content

Commit 2fb9bc7

Browse files
author
milixiang
committed
fix: fix merge conflicts
1 parent 68dbedd commit 2fb9bc7

File tree

11 files changed

+74
-98
lines changed

11 files changed

+74
-98
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.apache.fesod.excel.temp.fill;
2+
3+
import lombok.Data;
4+
import org.apache.fesod.excel.annotation.fill.DynamicColumn;
5+
6+
import java.util.Map;
7+
8+
@Data
9+
public class DynamicFillData {
10+
private String name;
11+
private double number;
12+
@DynamicColumn()
13+
private Map<String,String> qtyMap;
14+
15+
@DynamicColumn()
16+
private Map<String,DynamicFillDataObj> priceMap;
17+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.apache.fesod.excel.temp.fill;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
@AllArgsConstructor
8+
@Getter
9+
@Setter
10+
public class DynamicFillDataObj {
11+
12+
private String qty;
13+
private double price;
14+
15+
16+
}

fesod-examples/src/test/java/org/apache/fesod/excel/temp/fill/FillTempTest.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,6 @@
1919

2020
package org.apache.fesod.excel.temp.fill;
2121

22-
import java.io.File;
23-
import java.util.ArrayList;
24-
import java.util.Date;
25-
import java.util.HashMap;
26-
import java.util.List;
27-
import java.util.Map;
2822
import org.apache.fesod.excel.ExcelWriter;
2923
import org.apache.fesod.excel.FastExcel;
3024
import org.apache.fesod.excel.demo.fill.FillData;
@@ -35,7 +29,12 @@
3529
import org.apache.fesod.excel.write.metadata.fill.FillWrapper;
3630
import org.junit.jupiter.api.Test;
3731

38-
import static cn.idev.excel.enums.WriteDirectionEnum.HORIZONTAL;
32+
import java.io.File;
33+
import java.util.ArrayList;
34+
import java.util.Date;
35+
import java.util.HashMap;
36+
import java.util.List;
37+
import java.util.Map;
3938

4039
/**
4140
* Example of filling data into Excel templates.
@@ -125,13 +124,13 @@ public void dynamicFill() {
125124
dateList.add("2023-01-11");
126125
dateList.add("2023-01-12");
127126

128-
ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
129-
WriteSheet writeSheet = EasyExcel.writerSheet().build();
127+
ExcelWriter excelWriter = FastExcel.write(fileName).withTemplate(templateFileName).build();
128+
WriteSheet writeSheet = FastExcel.writerSheet().build();
130129
excelWriter.fill(new FillWrapper("dataList", fillDataList), FillConfig.builder().forceNewRow(true).addDynamicInfo(dateList,1,"qtyMap")
131130
.addDefaultDynamicInfo(dateList,1)
132131
.build(), writeSheet);
133132
excelWriter.fill(new FillWrapper("dataObjList", fillDataList), FillConfig.builder().addDefaultDynamicInfo(dateList,2).forceNewRow(true).build(), writeSheet);
134-
excelWriter.fill(new FillWrapper("dateList", dateList), FillConfig.builder().direction(HORIZONTAL).build(), writeSheet);
133+
excelWriter.fill(new FillWrapper("dateList", dateList), FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(), writeSheet);
135134
// Do not forget to close the stream
136135
excelWriter.finish();
137136

9.91 KB
Binary file not shown.
9.56 KB
Binary file not shown.

fastexcel/src/main/java/cn/idev/excel/annotation/fill/DynamicColumn.java renamed to fesod/src/main/java/org/apache/fesod/excel/annotation/fill/DynamicColumn.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.idev.excel.annotation.fill;
1+
package org.apache.fesod.excel.annotation.fill;
22

33

44
import java.lang.annotation.ElementType;

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

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,42 +19,16 @@
1919

2020
package org.apache.fesod.excel.write.executor;
2121

22-
import java.util.List;
23-
import cn.idev.excel.annotation.fill.DynamicColumn;
24-
import cn.idev.excel.context.WriteContext;
25-
import cn.idev.excel.converters.Converter;
26-
import cn.idev.excel.converters.ConverterKeyBuild;
27-
import cn.idev.excel.converters.NullableObjectConverter;
28-
import cn.idev.excel.converters.WriteConverterContext;
29-
import cn.idev.excel.enums.CellDataTypeEnum;
30-
import cn.idev.excel.enums.WriteDirectionEnum;
31-
import cn.idev.excel.exception.ExcelWriteDataConvertException;
32-
import cn.idev.excel.metadata.data.CommentData;
33-
import cn.idev.excel.metadata.data.FormulaData;
34-
import cn.idev.excel.metadata.data.HyperlinkData;
35-
import cn.idev.excel.metadata.data.ImageData;
36-
import cn.idev.excel.metadata.data.WriteCellData;
37-
import cn.idev.excel.metadata.property.ExcelContentProperty;
38-
import cn.idev.excel.support.ExcelTypeEnum;
3922
import cn.idev.excel.support.cglib.beans.BeanMap;
40-
import cn.idev.excel.util.BeanMapUtils;
41-
import cn.idev.excel.util.DateUtils;
42-
import cn.idev.excel.util.FieldUtils;
43-
import cn.idev.excel.util.FileTypeUtils;
44-
import cn.idev.excel.util.ListUtils;
45-
import cn.idev.excel.util.StyleUtil;
46-
import cn.idev.excel.util.WorkBookUtil;
47-
import cn.idev.excel.util.WriteHandlerUtils;
48-
import cn.idev.excel.write.handler.context.CellWriteHandlerContext;
49-
import cn.idev.excel.write.metadata.fill.DynamicColumnInfo;
50-
import cn.idev.excel.write.metadata.fill.FillConfig;
5123
import org.apache.commons.collections4.CollectionUtils;
24+
import org.apache.fesod.excel.annotation.fill.DynamicColumn;
5225
import org.apache.fesod.excel.context.WriteContext;
5326
import org.apache.fesod.excel.converters.Converter;
5427
import org.apache.fesod.excel.converters.ConverterKeyBuild;
5528
import org.apache.fesod.excel.converters.NullableObjectConverter;
5629
import org.apache.fesod.excel.converters.WriteConverterContext;
5730
import org.apache.fesod.excel.enums.CellDataTypeEnum;
31+
import org.apache.fesod.excel.enums.WriteDirectionEnum;
5832
import org.apache.fesod.excel.exception.ExcelWriteDataConvertException;
5933
import org.apache.fesod.excel.metadata.data.CommentData;
6034
import org.apache.fesod.excel.metadata.data.FormulaData;
@@ -63,13 +37,17 @@
6337
import org.apache.fesod.excel.metadata.data.WriteCellData;
6438
import org.apache.fesod.excel.metadata.property.ExcelContentProperty;
6539
import org.apache.fesod.excel.support.ExcelTypeEnum;
40+
import org.apache.fesod.excel.util.BeanMapUtils;
6641
import org.apache.fesod.excel.util.DateUtils;
42+
import org.apache.fesod.excel.util.FieldUtils;
6743
import org.apache.fesod.excel.util.FileTypeUtils;
6844
import org.apache.fesod.excel.util.ListUtils;
6945
import org.apache.fesod.excel.util.StyleUtil;
7046
import org.apache.fesod.excel.util.WorkBookUtil;
7147
import org.apache.fesod.excel.util.WriteHandlerUtils;
7248
import org.apache.fesod.excel.write.handler.context.CellWriteHandlerContext;
49+
import org.apache.fesod.excel.write.metadata.fill.DynamicColumnInfo;
50+
import org.apache.fesod.excel.write.metadata.fill.FillConfig;
7351
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
7452
import org.apache.poi.ss.usermodel.Cell;
7553
import org.apache.poi.ss.usermodel.ClientAnchor;

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

Lines changed: 20 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,9 @@
1717
* under the License.
1818
*/
1919

20-
import cn.idev.excel.annotation.fill.DynamicColumn;
21-
import cn.idev.excel.context.WriteContext;
22-
import cn.idev.excel.enums.CellDataTypeEnum;
23-
import cn.idev.excel.enums.WriteDirectionEnum;
24-
import cn.idev.excel.enums.WriteTemplateAnalysisCellTypeEnum;
25-
import cn.idev.excel.exception.ExcelGenerateException;
26-
import cn.idev.excel.metadata.data.WriteCellData;
27-
import cn.idev.excel.metadata.property.ExcelContentProperty;
28-
import cn.idev.excel.util.BeanMapUtils;
29-
import cn.idev.excel.util.ClassUtils;
30-
import cn.idev.excel.util.FieldUtils;
31-
import cn.idev.excel.util.ListUtils;
32-
import cn.idev.excel.util.MapUtils;
33-
import cn.idev.excel.util.PoiUtils;
34-
import cn.idev.excel.util.StringUtils;
35-
import cn.idev.excel.util.WriteHandlerUtils;
36-
import cn.idev.excel.write.handler.context.CellWriteHandlerContext;
37-
import cn.idev.excel.write.handler.context.RowWriteHandlerContext;
38-
import cn.idev.excel.write.metadata.fill.AnalysisCell;
39-
import cn.idev.excel.write.metadata.fill.DynamicColumnInfo;
40-
import cn.idev.excel.write.metadata.fill.FillConfig;
41-
import cn.idev.excel.write.metadata.fill.FillWrapper;
42-
import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
20+
package org.apache.fesod.excel.write.executor;
4321

4422
import java.lang.reflect.Field;
45-
package org.apache.fesod.excel.write.executor;
4623

4724
import java.util.ArrayList;
4825
import java.util.Collection;
@@ -55,11 +32,13 @@
5532
import java.util.Objects;
5633
import java.util.Optional;
5734
import java.util.Set;
35+
5836
import lombok.AllArgsConstructor;
5937
import lombok.EqualsAndHashCode;
6038
import lombok.Getter;
6139
import lombok.Setter;
6240
import org.apache.commons.collections4.CollectionUtils;
41+
import org.apache.fesod.excel.annotation.fill.DynamicColumn;
6342
import org.apache.fesod.excel.context.WriteContext;
6443
import org.apache.fesod.excel.enums.CellDataTypeEnum;
6544
import org.apache.fesod.excel.enums.WriteDirectionEnum;
@@ -78,6 +57,7 @@
7857
import org.apache.fesod.excel.write.handler.context.CellWriteHandlerContext;
7958
import org.apache.fesod.excel.write.handler.context.RowWriteHandlerContext;
8059
import org.apache.fesod.excel.write.metadata.fill.AnalysisCell;
60+
import org.apache.fesod.excel.write.metadata.fill.DynamicColumnInfo;
8161
import org.apache.fesod.excel.write.metadata.fill.FillConfig;
8262
import org.apache.fesod.excel.write.metadata.fill.FillWrapper;
8363
import org.apache.fesod.excel.write.metadata.holder.WriteSheetHolder;
@@ -89,8 +69,6 @@
8969

9070
/**
9171
* Fill the data into excel
92-
*
93-
*
9472
*/
9573
public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
9674

@@ -182,7 +160,7 @@ private void shiftCellsIfNecessary(FillConfig fillConfig, Collection<?> collecti
182160
Object item = collectionData.iterator().next();
183161
Class<?> itemClass = item.getClass();
184162
Field[] declaredFields = itemClass.getDeclaredFields();
185-
Map<String,Field> dynamicFieldMap = new HashMap<>();
163+
Map<String, Field> dynamicFieldMap = new HashMap<>();
186164
for (Field declaredField : declaredFields) {
187165
if (declaredField.isAnnotationPresent(DynamicColumn.class)) {
188166
dynamicFieldMap.put(declaredField.getName(), declaredField);
@@ -193,15 +171,15 @@ private void shiftCellsIfNecessary(FillConfig fillConfig, Collection<?> collecti
193171
int columnIndex = analysisCell.getColumnIndex();
194172
Row row = sheet.getRow(rowIndex);
195173
List<String> variableList = analysisCell.getVariableList();
196-
for (String fieldName: dynamicFieldMap.keySet()) {
174+
for (String fieldName : dynamicFieldMap.keySet()) {
197175
for (String variable : variableList) {
198176
String variableFieldName = variable.split("\\.")[0];
199177
if (StringUtils.equals(fieldName, variableFieldName)) {
200178
List<String> headers = fillConfig.getDynamicColumnInfo(fieldName).getKeys();
201179
Integer columnGroupSize = fillConfig.getDynamicColumnInfo(fieldName).getGroupSize();
202-
row.shiftCellsRight(columnIndex + columnGroupSize, row.getLastCellNum(), headers.size()-1);
203-
analysisCellList.stream().filter(ac->ac.getColumnIndex()>(columnIndex+columnGroupSize-1)).forEach(ac->{
204-
ac.setColumnIndex(ac.getColumnIndex()+headers.size()-1);
180+
row.shiftCellsRight(columnIndex + columnGroupSize, row.getLastCellNum(), headers.size() - 1);
181+
analysisCellList.stream().filter(ac -> ac.getColumnIndex() > (columnIndex + columnGroupSize - 1)).forEach(ac -> {
182+
ac.setColumnIndex(ac.getColumnIndex() + headers.size() - 1);
205183
});
206184
}
207185
}
@@ -299,9 +277,9 @@ private void doFill(
299277
Object value = null;
300278
if (FILL_VARIABLE_SELF.equals(variable)) {
301279
value = oneRowData;
302-
}else if (dataKeySet.contains(variable)) {
280+
} else if (dataKeySet.contains(variable)) {
303281
value = dataMap.get(variable);
304-
}else if(variable.contains(COLLECTION_PREFIX)){
282+
} else if (variable.contains(COLLECTION_PREFIX)) {
305283
variable = variable.split("\\.")[0];
306284
value = dataMap.get(variable);
307285
}
@@ -330,8 +308,8 @@ private void doFill(
330308
.ifPresent(style -> {
331309
if (cellWriteHandlerContext.getCellMap() != null && cellWriteHandlerContext.getCellMap().size() > 1) {
332310
cellWriteHandlerContext.getCellMap().values().forEach(cell -> cell.getFirstCellData().setOriginCellStyle(style));
333-
}else{
334-
if(fillConfig.getDirection() == WriteDirectionEnum.HORIZONTAL){
311+
} else {
312+
if (fillConfig.getDirection() == WriteDirectionEnum.HORIZONTAL) {
335313
Integer orginColumnIndex = analysisCell.getColumnIndex();
336314
Sheet sheet = writeContext.writeSheetHolder().getSheet();
337315
int columnWidth = sheet.getColumnWidth(orginColumnIndex);
@@ -357,7 +335,7 @@ private void doFill(
357335
Object value = null;
358336
if (FILL_VARIABLE_SELF.equals(variable)) {
359337
value = oneRowData;
360-
}else if (dataKeySet.contains(variable)) {
338+
} else if (dataKeySet.contains(variable)) {
361339
value = dataMap.get(variable);
362340
}
363341
ExcelContentProperty excelContentProperty = ClassUtils.declaredExcelContentProperty(
@@ -410,7 +388,7 @@ private void doFill(
410388
if (cellWriteHandlerContext.getCellMap() != null && cellWriteHandlerContext.getCellMap().size() > 1) {
411389
//trigger afterCellDispose for every dynamicColumns
412390
cellWriteHandlerContext.getCellMap().values().forEach(WriteHandlerUtils::afterCellDispose);
413-
}else{
391+
} else {
414392
WriteHandlerUtils.afterCellDispose(cellWriteHandlerContext);
415393
}
416394
}
@@ -494,14 +472,14 @@ private void createCell(
494472
Cell cell = createCellIfNecessary(row, lastColumnIndex, cellWriteHandlerContext);
495473
cellWriteHandlerContext.setCell(cell);
496474

497-
if(null != field && field.isAnnotationPresent(DynamicColumn.class)){
475+
if (null != field && field.isAnnotationPresent(DynamicColumn.class)) {
498476
if (cellWriteHandlerContext.getCellMap() == null) {
499477
cellWriteHandlerContext.setCellMap(new HashMap<>());
500478
}
501479
cellWriteHandlerContext.getCellMap().put(lastRowIndex + "_" + lastColumnIndex, cellWriteHandlerContext);
502480
DynamicColumnInfo dynamicColumnInfo = fillConfig.getDynamicColumnInfo(field.getName());
503-
if(null == dynamicColumnInfo || CollectionUtils.isEmpty(dynamicColumnInfo.getKeys())){
504-
throw new ExcelGenerateException(String.format("Plase set dynamic column keys for %s in fillConfig",field.getName()));
481+
if (null == dynamicColumnInfo || CollectionUtils.isEmpty(dynamicColumnInfo.getKeys())) {
482+
throw new ExcelGenerateException(String.format("Plase set dynamic column keys for %s in fillConfig", field.getName()));
505483
}
506484
for (int i = 1; i < dynamicColumnInfo.getKeys().size(); i++) {
507485
switch (fillConfig.getDirection()) {
@@ -514,7 +492,7 @@ private void createCell(
514492
default:
515493
throw new ExcelGenerateException("The wrong direction.");
516494
}
517-
Row newRow = createRowIfNecessary( sheet, cachedSheet, lastRowIndex, fillConfig, analysisCell, false, rowWriteHandlerContext);
495+
Row newRow = createRowIfNecessary(sheet, cachedSheet, lastRowIndex, fillConfig, analysisCell, false, rowWriteHandlerContext);
518496
CellWriteHandlerContext cloneContext = cellWriteHandlerContext.clone();
519497
cloneContext.setColumnIndex(lastColumnIndex);
520498
cloneContext.setRowIndex(row.getRowNum());
@@ -532,7 +510,7 @@ private void createCell(
532510
cellWriteHandlerContext.getCellMap().forEach((k, cellContext) -> {
533511
Integer currentColumnIndex = cellContext.getColumnIndex();
534512
int columnWidth = sheet.getColumnWidth(cellWriteHandlerContext.getColumnIndex());
535-
sheet.setColumnWidth(currentColumnIndex,columnWidth);
513+
sheet.setColumnWidth(currentColumnIndex, columnWidth);
536514
});
537515
}
538516
}

fesod/src/main/java/org/apache/fesod/excel/write/handler/context/CellWriteHandlerContext.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,8 @@
1717
* under the License.
1818
*/
1919

20-
import cn.idev.excel.context.WriteContext;
21-
import cn.idev.excel.enums.CellDataTypeEnum;
22-
import cn.idev.excel.metadata.Head;
23-
import cn.idev.excel.metadata.data.WriteCellData;
24-
import cn.idev.excel.metadata.property.ExcelContentProperty;
25-
import cn.idev.excel.write.handler.impl.FillStyleCellWriteHandler;
26-
import cn.idev.excel.write.metadata.fill.FillConfig;
27-
import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
28-
import cn.idev.excel.write.metadata.holder.WriteTableHolder;
29-
import cn.idev.excel.write.metadata.holder.WriteWorkbookHolder;
3020
package org.apache.fesod.excel.write.handler.context;
3121

32-
import java.util.List;
33-
import java.util.Map;
34-
3522
import lombok.EqualsAndHashCode;
3623
import lombok.Getter;
3724
import lombok.Setter;
@@ -41,12 +28,16 @@
4128
import org.apache.fesod.excel.metadata.data.WriteCellData;
4229
import org.apache.fesod.excel.metadata.property.ExcelContentProperty;
4330
import org.apache.fesod.excel.write.handler.impl.FillStyleCellWriteHandler;
31+
import org.apache.fesod.excel.write.metadata.fill.FillConfig;
4432
import org.apache.fesod.excel.write.metadata.holder.WriteSheetHolder;
4533
import org.apache.fesod.excel.write.metadata.holder.WriteTableHolder;
4634
import org.apache.fesod.excel.write.metadata.holder.WriteWorkbookHolder;
4735
import org.apache.poi.ss.usermodel.Cell;
4836
import org.apache.poi.ss.usermodel.Row;
4937

38+
import java.util.List;
39+
import java.util.Map;
40+
5041
/**
5142
* cell context
5243
*

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.idev.excel.write.metadata.fill;
1+
package org.apache.fesod.excel.write.metadata.fill;
22

33
import lombok.AllArgsConstructor;
44
import lombok.Getter;

0 commit comments

Comments
 (0)