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
4422import java .lang .reflect .Field ;
45- package org .apache .fesod .excel .write .executor ;
4623
4724import java .util .ArrayList ;
4825import java .util .Collection ;
5532import java .util .Objects ;
5633import java .util .Optional ;
5734import java .util .Set ;
35+
5836import lombok .AllArgsConstructor ;
5937import lombok .EqualsAndHashCode ;
6038import lombok .Getter ;
6139import lombok .Setter ;
6240import org .apache .commons .collections4 .CollectionUtils ;
41+ import org .apache .fesod .excel .annotation .fill .DynamicColumn ;
6342import org .apache .fesod .excel .context .WriteContext ;
6443import org .apache .fesod .excel .enums .CellDataTypeEnum ;
6544import org .apache .fesod .excel .enums .WriteDirectionEnum ;
7857import org .apache .fesod .excel .write .handler .context .CellWriteHandlerContext ;
7958import org .apache .fesod .excel .write .handler .context .RowWriteHandlerContext ;
8059import org .apache .fesod .excel .write .metadata .fill .AnalysisCell ;
60+ import org .apache .fesod .excel .write .metadata .fill .DynamicColumnInfo ;
8161import org .apache .fesod .excel .write .metadata .fill .FillConfig ;
8262import org .apache .fesod .excel .write .metadata .fill .FillWrapper ;
8363import org .apache .fesod .excel .write .metadata .holder .WriteSheetHolder ;
8969
9070/**
9171 * Fill the data into excel
92- *
93- *
9472 */
9573public 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 }
0 commit comments