diff --git a/src/main/java/com/alibaba/excel/annotation/write/style/ContentStyle.java b/src/main/java/com/alibaba/excel/annotation/write/style/ContentStyle.java
deleted file mode 100644
index 73fbfc9..0000000
--- a/src/main/java/com/alibaba/excel/annotation/write/style/ContentStyle.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.alibaba.excel.annotation.write.style;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.apache.poi.ss.usermodel.IndexedColors;
-
-/**
- * Convert number format.
- *
- *
write: It can be used on classes that inherit {@link Number}
- * read: It can be used on classes {@link String}
- *
- * @author zhuangjiaju
- */
-@Target({ElementType.FIELD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Inherited
-public @interface ContentStyle {
-
- String fontName() default "宋体";
-
- short fontHeightInPoints() default (short)14;
-
- boolean bold() default true;
-
- IndexedColors indexedColors() default IndexedColors.WHITE1;
-}
diff --git a/src/main/java/com/alibaba/excel/annotation/write/style/HeadStyle.java b/src/main/java/com/alibaba/excel/annotation/write/style/HeadStyle.java
deleted file mode 100644
index f717e93..0000000
--- a/src/main/java/com/alibaba/excel/annotation/write/style/HeadStyle.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.alibaba.excel.annotation.write.style;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.apache.poi.ss.usermodel.IndexedColors;
-
-/**
- * 配置
- *
- * @author zhuangjiaju
- */
-@Target({ElementType.FIELD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-@Inherited
-public @interface HeadStyle {
- String fontName() default "宋体";
-
- short fontHeightInPoints() default (short)14;
-
- boolean bold() default true;
-
- IndexedColors indexedColors() default IndexedColors.GREY_25_PERCENT;
-}
diff --git a/src/main/java/com/alibaba/excel/metadata/CellStyle.java b/src/main/java/com/alibaba/excel/metadata/CellStyle.java
deleted file mode 100644
index 4a11f30..0000000
--- a/src/main/java/com/alibaba/excel/metadata/CellStyle.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.alibaba.excel.metadata;
-
-import org.apache.poi.ss.usermodel.IndexedColors;
-
-/**
- * Simple cell style
- *
- * @author zhuangjiaju
- */
-public class CellStyle {
- /**
- * 表头背景颜色
- */
- private IndexedColors indexedColors;
- /**
- * 表头字体样式
- */
- private Font font;
-
- public CellStyle() {
-
- }
-
- public CellStyle(String fontName, Short fontHeightInPoints, Boolean bold, IndexedColors indexedColors) {
- Font font = new Font();
- font.setFontName(fontName);
- font.setFontHeightInPoints(fontHeightInPoints);
- font.setBold(bold);
- this.font = font;
- this.indexedColors = indexedColors;
- }
-
- public IndexedColors getIndexedColors() {
- return indexedColors;
- }
-
- public void setIndexedColors(IndexedColors indexedColors) {
- this.indexedColors = indexedColors;
- }
-
- public Font getFont() {
- return font;
- }
-
- public void setFont(Font font) {
- this.font = font;
- }
-}
diff --git a/src/main/java/com/alibaba/excel/metadata/Font.java b/src/main/java/com/alibaba/excel/metadata/Font.java
index 4533011..0ba0141 100644
--- a/src/main/java/com/alibaba/excel/metadata/Font.java
+++ b/src/main/java/com/alibaba/excel/metadata/Font.java
@@ -3,7 +3,9 @@ package com.alibaba.excel.metadata;
/**
*
* @author jipengfei
+ * @deprecated please use {@link com.alibaba.excel.write.metadata.style.WriteFont}
*/
+@Deprecated
public class Font {
/**
diff --git a/src/main/java/com/alibaba/excel/metadata/Head.java b/src/main/java/com/alibaba/excel/metadata/Head.java
index af3269e..00ba216 100644
--- a/src/main/java/com/alibaba/excel/metadata/Head.java
+++ b/src/main/java/com/alibaba/excel/metadata/Head.java
@@ -3,7 +3,6 @@ package com.alibaba.excel.metadata;
import java.util.ArrayList;
import java.util.List;
-import com.alibaba.excel.metadata.property.CellStyleProperty;
import com.alibaba.excel.metadata.property.ColumnWidthProperty;
/**
@@ -28,10 +27,6 @@ public class Head {
* Whether index is specified
*/
private Boolean forceIndex;
- /**
- * Cell style property
- */
- private CellStyleProperty cellStyleProperty;
/**
* column with
*/
@@ -79,14 +74,6 @@ public class Head {
this.headNameList = headNameList;
}
- public CellStyleProperty getCellStyleProperty() {
- return cellStyleProperty;
- }
-
- public void setCellStyleProperty(CellStyleProperty cellStyleProperty) {
- this.cellStyleProperty = cellStyleProperty;
- }
-
public ColumnWidthProperty getColumnWidthProperty() {
return columnWidthProperty;
}
diff --git a/src/main/java/com/alibaba/excel/metadata/property/CellStyleProperty.java b/src/main/java/com/alibaba/excel/metadata/property/CellStyleProperty.java
deleted file mode 100644
index 1259679..0000000
--- a/src/main/java/com/alibaba/excel/metadata/property/CellStyleProperty.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.alibaba.excel.metadata.property;
-
-import org.apache.poi.ss.usermodel.IndexedColors;
-
-import com.alibaba.excel.annotation.write.style.ContentStyle;
-import com.alibaba.excel.annotation.write.style.HeadStyle;
-
-/**
- * Configuration from annotations
- *
- * @author zhuangjiaju
- */
-public class CellStyleProperty {
- private String fontName;
- private Short fontHeightInPoints;
- private Boolean bold;
- private IndexedColors indexedColors;
-
- public CellStyleProperty(String fontName, Short fontHeightInPoints, Boolean bold, IndexedColors indexedColors) {
- this.fontName = fontName;
- this.fontHeightInPoints = fontHeightInPoints;
- this.bold = bold;
- this.indexedColors = indexedColors;
- }
-
- public static CellStyleProperty build(HeadStyle headStyle) {
- if (headStyle == null) {
- return null;
- }
- boolean isDefault = "宋体".equals(headStyle.fontName()) && headStyle.fontHeightInPoints() == 14
- && headStyle.bold() && IndexedColors.GREY_25_PERCENT.equals(headStyle.indexedColors());
- if (isDefault) {
- return null;
- }
- return new CellStyleProperty(headStyle.fontName(), headStyle.fontHeightInPoints(), headStyle.bold(),
- headStyle.indexedColors());
- }
-
- public static CellStyleProperty build(ContentStyle contentStyle) {
- if (contentStyle == null) {
- return null;
- }
- boolean isDefault = "宋体".equals(contentStyle.fontName()) && contentStyle.fontHeightInPoints() == 14
- && contentStyle.bold() && IndexedColors.WHITE1.equals(contentStyle.indexedColors());
- if (isDefault) {
- return null;
- }
- return new CellStyleProperty(contentStyle.fontName(), contentStyle.fontHeightInPoints(), contentStyle.bold(),
- contentStyle.indexedColors());
- }
-
- public String getFontName() {
- return fontName;
- }
-
- public void setFontName(String fontName) {
- this.fontName = fontName;
- }
-
- public Short getFontHeightInPoints() {
- return fontHeightInPoints;
- }
-
- public void setFontHeightInPoints(Short fontHeightInPoints) {
- this.fontHeightInPoints = fontHeightInPoints;
- }
-
- public Boolean getBold() {
- return bold;
- }
-
- public void setBold(Boolean bold) {
- this.bold = bold;
- }
-
- public IndexedColors getIndexedColors() {
- return indexedColors;
- }
-
- public void setIndexedColors(IndexedColors indexedColors) {
- this.indexedColors = indexedColors;
- }
-
-}
diff --git a/src/main/java/com/alibaba/excel/metadata/property/ExcelContentProperty.java b/src/main/java/com/alibaba/excel/metadata/property/ExcelContentProperty.java
index db7a8b9..fcad87b 100644
--- a/src/main/java/com/alibaba/excel/metadata/property/ExcelContentProperty.java
+++ b/src/main/java/com/alibaba/excel/metadata/property/ExcelContentProperty.java
@@ -21,7 +21,6 @@ public class ExcelContentProperty {
* Custom defined converters
*/
private Converter converter;
- private CellStyleProperty cellStyleProperty;
private DateTimeFormatProperty dateTimeFormatProperty;
private NumberFormatProperty numberFormatProperty;
@@ -41,14 +40,6 @@ public class ExcelContentProperty {
this.head = head;
}
- public CellStyleProperty getCellStyleProperty() {
- return cellStyleProperty;
- }
-
- public void setCellStyleProperty(CellStyleProperty cellStyleProperty) {
- this.cellStyleProperty = cellStyleProperty;
- }
-
public DateTimeFormatProperty getDateTimeFormatProperty() {
return dateTimeFormatProperty;
}
diff --git a/src/main/java/com/alibaba/excel/util/StyleUtil.java b/src/main/java/com/alibaba/excel/util/StyleUtil.java
index 29ba219..0cd8c2a 100644
--- a/src/main/java/com/alibaba/excel/util/StyleUtil.java
+++ b/src/main/java/com/alibaba/excel/util/StyleUtil.java
@@ -9,23 +9,20 @@ import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+
/**
* @author jipengfei
*/
public class StyleUtil {
/**
- *
* @param workbook
* @return
*/
public static CellStyle buildDefaultCellStyle(Workbook workbook) {
CellStyle newCellStyle = workbook.createCellStyle();
- Font font = workbook.createFont();
- font.setFontName("宋体");
- font.setFontHeightInPoints((short)14);
- font.setBold(true);
- newCellStyle.setFont(font);
newCellStyle.setWrapText(true);
newCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
newCellStyle.setAlignment(HorizontalAlignment.CENTER);
@@ -38,80 +35,148 @@ public class StyleUtil {
}
/**
- * Build style
- *
+ * Build head cell style
+ *
* @param workbook
- * @param cs
+ * @param writeCellStyle
* @return
*/
- public static CellStyle buildHeadCellStyle(Workbook workbook, com.alibaba.excel.metadata.CellStyle cs) {
+ public static CellStyle buildHeadCellStyle(Workbook workbook, WriteCellStyle writeCellStyle) {
CellStyle cellStyle = buildDefaultCellStyle(workbook);
- if (cs == null) {
+ if (writeCellStyle == null) {
return cellStyle;
}
- return buildCellStyle(workbook, cellStyle, cs.getFont(), cs.getIndexedColors());
- }
-
- /**
- *
- * @param workbook
- * @param f
- * @param indexedColors
- * @return
- */
- public static CellStyle buildHeadCellStyle(Workbook workbook, com.alibaba.excel.metadata.Font f,
- IndexedColors indexedColors) {
- CellStyle cellStyle = buildDefaultCellStyle(workbook);
- return buildCellStyle(workbook, cellStyle, f, indexedColors);
+ buildCellStyle(workbook, cellStyle, writeCellStyle, true);
+ return cellStyle;
}
/**
- * Build style
+ * Build content cell style
*
* @param workbook
- * @param cs
+ * @param writeCellStyle
* @return
*/
- public static CellStyle buildContentCellStyle(Workbook workbook, com.alibaba.excel.metadata.CellStyle cs) {
+ public static CellStyle buildContentCellStyle(Workbook workbook, WriteCellStyle writeCellStyle) {
CellStyle cellStyle = workbook.createCellStyle();
- if (cs == null) {
+ if (writeCellStyle == null) {
return cellStyle;
}
- return buildCellStyle(workbook, cellStyle, cs.getFont(), cs.getIndexedColors());
+ buildCellStyle(workbook, cellStyle, writeCellStyle, false);
+ return cellStyle;
}
- /**
- *
- * @param workbook
- * @param f
- * @param indexedColors
- * @return
- */
- public static CellStyle buildContentCellStyle(Workbook workbook, com.alibaba.excel.metadata.Font f,
- IndexedColors indexedColors) {
- CellStyle cellStyle = workbook.createCellStyle();
- return buildCellStyle(workbook, cellStyle, f, indexedColors);
+ private static void buildCellStyle(Workbook workbook, CellStyle cellStyle, WriteCellStyle writeCellStyle,
+ boolean isHead) {
+ buildFont(workbook, cellStyle, writeCellStyle.getWriteFont(), isHead);
+ if (writeCellStyle.getDataFormat() != null) {
+ cellStyle.setDataFormat(writeCellStyle.getDataFormat());
+ }
+ if (writeCellStyle.getHidden() != null) {
+ cellStyle.setHidden(writeCellStyle.getHidden());
+ }
+ if (writeCellStyle.getLocked() != null) {
+ cellStyle.setLocked(writeCellStyle.getLocked());
+ }
+ if (writeCellStyle.getQuotePrefix() != null) {
+ cellStyle.setQuotePrefixed(writeCellStyle.getQuotePrefix());
+ }
+ if (writeCellStyle.getHorizontalAlignment() != null) {
+ cellStyle.setAlignment(writeCellStyle.getHorizontalAlignment());
+ }
+ if (writeCellStyle.getWrapped() != null) {
+ cellStyle.setWrapText(writeCellStyle.getWrapped());
+ }
+ if (writeCellStyle.getVerticalAlignment() != null) {
+ cellStyle.setVerticalAlignment(writeCellStyle.getVerticalAlignment());
+ }
+ if (writeCellStyle.getRotation() != null) {
+ cellStyle.setRotation(writeCellStyle.getRotation());
+ }
+ if (writeCellStyle.getIndent() != null) {
+ cellStyle.setIndention(writeCellStyle.getIndent());
+ }
+ if (writeCellStyle.getBorderLeft() != null) {
+ cellStyle.setBorderLeft(writeCellStyle.getBorderLeft());
+ }
+ if (writeCellStyle.getBorderRight() != null) {
+ cellStyle.setBorderRight(writeCellStyle.getBorderRight());
+ }
+ if (writeCellStyle.getBorderTop() != null) {
+ cellStyle.setBorderTop(writeCellStyle.getBorderTop());
+ }
+ if (writeCellStyle.getBorderBottom() != null) {
+ cellStyle.setBorderBottom(writeCellStyle.getBorderBottom());
+ }
+ if (writeCellStyle.getLeftBorderColor() != null) {
+ cellStyle.setLeftBorderColor(writeCellStyle.getLeftBorderColor());
+ }
+ if (writeCellStyle.getRightBorderColor() != null) {
+ cellStyle.setRightBorderColor(writeCellStyle.getRightBorderColor());
+ }
+ if (writeCellStyle.getTopBorderColor() != null) {
+ cellStyle.setTopBorderColor(writeCellStyle.getTopBorderColor());
+ }
+ if (writeCellStyle.getBottomBorderColor() != null) {
+ cellStyle.setBottomBorderColor(writeCellStyle.getBottomBorderColor());
+ }
+ if (writeCellStyle.getFillPatternType() != null) {
+ cellStyle.setFillPattern(writeCellStyle.getFillPatternType());
+ }
+ if (writeCellStyle.getFillBackgroundColor() != null) {
+ cellStyle.setFillBackgroundColor(writeCellStyle.getFillBackgroundColor());
+ }
+ if (writeCellStyle.getFillForegroundColor() != null) {
+ cellStyle.setFillForegroundColor(writeCellStyle.getFillForegroundColor());
+ }
+ if (writeCellStyle.getShrinkToFit() != null) {
+ cellStyle.setShrinkToFit(writeCellStyle.getShrinkToFit());
+ }
}
- /**
- *
- * @param workbook
- * @param f
- * @param indexedColors
- * @return
- */
- private static CellStyle buildCellStyle(Workbook workbook, CellStyle cellStyle, com.alibaba.excel.metadata.Font f,
- IndexedColors indexedColors) {
- if (f != null) {
- Font font = workbook.createFont();
- font.setFontName(f.getFontName());
- font.setFontHeightInPoints(f.getFontHeightInPoints());
- font.setBold(f.isBold());
+ private static void buildFont(Workbook workbook, CellStyle cellStyle, WriteFont writeFont, boolean isHead) {
+ Font font = null;
+ if (isHead) {
+ font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short)14);
+ font.setBold(true);
cellStyle.setFont(font);
}
- if (indexedColors != null) {
- cellStyle.setFillForegroundColor(indexedColors.getIndex());
+ if (writeFont == null) {
+ return;
+ }
+ if (!isHead) {
+ font = workbook.createFont();
+ cellStyle.setFont(font);
+ }
+ if (writeFont.getFontName() != null) {
+ font.setFontName(writeFont.getFontName());
+ }
+ if (writeFont.getFontHeightInPoints() != null) {
+ font.setFontHeightInPoints(writeFont.getFontHeightInPoints());
+ }
+ if (writeFont.getItalic() != null) {
+ font.setItalic(writeFont.getItalic());
+ }
+ if (writeFont.getStrikeout() != null) {
+ font.setStrikeout(writeFont.getStrikeout());
+ }
+ if (writeFont.getColor() != null) {
+ font.setColor(writeFont.getColor());
+ }
+ if (writeFont.getTypeOffset() != null) {
+ font.setTypeOffset(writeFont.getTypeOffset());
+ }
+ if (writeFont.getUnderline() != null) {
+ font.setUnderline(writeFont.getUnderline());
+ }
+ if (writeFont.getCharset() != null) {
+ font.setCharSet(writeFont.getCharset());
+ }
+ if (writeFont.getBold() != null) {
+ font.setBold(writeFont.getBold());
}
- return cellStyle;
}
+
}
diff --git a/src/main/java/com/alibaba/excel/write/handler/DefaultWriteHandlerLoader.java b/src/main/java/com/alibaba/excel/write/handler/DefaultWriteHandlerLoader.java
index 49a8126..147ccf7 100644
--- a/src/main/java/com/alibaba/excel/write/handler/DefaultWriteHandlerLoader.java
+++ b/src/main/java/com/alibaba/excel/write/handler/DefaultWriteHandlerLoader.java
@@ -5,13 +5,13 @@ import java.util.List;
import org.apache.poi.ss.usermodel.IndexedColors;
-import com.alibaba.excel.metadata.CellStyle;
-import com.alibaba.excel.metadata.Font;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.RowCellStyleStrategy;
/**
* Load default handler
- *
+ *
* @author zhuangjiaju
*/
public class DefaultWriteHandlerLoader {
@@ -23,14 +23,14 @@ public class DefaultWriteHandlerLoader {
*/
public static List loadDefaultHandler() {
List handlerList = new ArrayList();
- CellStyle headCellStyle = new CellStyle();
- Font font = new Font();
- headCellStyle.setFont(font);
- font.setFontName("宋体");
- font.setFontHeightInPoints((short)14);
- font.setBold(true);
- headCellStyle.setIndexedColors(IndexedColors.GREY_25_PERCENT);
- handlerList.add(new RowCellStyleStrategy(headCellStyle, new ArrayList()));
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontName("宋体");
+ headWriteFont.setFontHeightInPoints((short)14);
+ headWriteFont.setBold(true);
+ headWriteCellStyle.setWriteFont(headWriteFont);
+ handlerList.add(new RowCellStyleStrategy(headWriteCellStyle, new ArrayList()));
return handlerList;
}
diff --git a/src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java b/src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java
index 42ba2b6..b42ae24 100644
--- a/src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java
+++ b/src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java
@@ -9,6 +9,7 @@ import java.util.Set;
import java.util.TreeMap;
import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Sheet;
import com.alibaba.excel.converters.Converter;
@@ -18,13 +19,13 @@ import com.alibaba.excel.enums.HeadKindEnum;
import com.alibaba.excel.event.NotRepeatExecutor;
import com.alibaba.excel.event.Order;
import com.alibaba.excel.metadata.AbstractHolder;
-import com.alibaba.excel.metadata.CellStyle;
+import com.alibaba.excel.metadata.Font;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.metadata.TableStyle;
-import com.alibaba.excel.metadata.property.CellStyleProperty;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.alibaba.excel.metadata.property.RowHeightProperty;
import com.alibaba.excel.write.handler.CellWriteHandler;
+import com.alibaba.excel.write.handler.DefaultWriteHandlerLoader;
import com.alibaba.excel.write.handler.RowWriteHandler;
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.handler.WorkbookWriteHandler;
@@ -32,8 +33,9 @@ import com.alibaba.excel.write.handler.WriteHandler;
import com.alibaba.excel.write.metadata.WriteBasicParameter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteTable;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.property.ExcelWriteHeadProperty;
-import com.alibaba.excel.write.style.AbstractColumnCellStyleStrategy;
import com.alibaba.excel.write.style.RowCellStyleStrategy;
import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
import com.alibaba.excel.write.style.column.AbstractHeadColumnWidthStyleStrategy;
@@ -103,13 +105,19 @@ public abstract class AbstractWriteHolder extends AbstractHolder implements Writ
compatibleOldCode(writeBasicParameter);
// Set writeHandlerMap
- List handlerList = new ArrayList();
+ List handlerList;
+ if (parentAbstractWriteHolder == null) {
+ handlerList = DefaultWriteHandlerLoader.loadDefaultHandler();
+ } else {
+ handlerList = new ArrayList();
+ }
+ // Initialization Annotation
+ initAnnotationConfig(handlerList);
+
if (writeBasicParameter.getCustomWriteHandlerList() != null
&& !writeBasicParameter.getCustomWriteHandlerList().isEmpty()) {
handlerList.addAll(writeBasicParameter.getCustomWriteHandlerList());
}
- // Initialization Annotation
- initAnnotationConfig(handlerList);
Map, List> parentWriteHandlerMap = null;
if (parentAbstractWriteHolder != null) {
@@ -160,13 +168,25 @@ public abstract class AbstractWriteHolder extends AbstractHolder implements Writ
if (writeBasicParameter.getCustomWriteHandlerList() == null) {
writeBasicParameter.setCustomWriteHandlerList(new ArrayList());
}
- CellStyle headCellStyle = new CellStyle();
- headCellStyle.setFont(tableStyle.getTableHeadFont());
- headCellStyle.setIndexedColors(tableStyle.getTableContentBackGroundColor());
- CellStyle contentCellStyle = new CellStyle();
- contentCellStyle.setFont(tableStyle.getTableContentFont());
- contentCellStyle.setIndexedColors(tableStyle.getTableContentBackGroundColor());
- writeBasicParameter.getCustomWriteHandlerList().add(new RowCellStyleStrategy(headCellStyle, contentCellStyle));
+ writeBasicParameter.getCustomWriteHandlerList()
+ .add(new RowCellStyleStrategy(
+ buildWriteCellStyle(tableStyle.getTableHeadFont(), tableStyle.getTableHeadBackGroundColor()),
+ buildWriteCellStyle(tableStyle.getTableContentFont(), tableStyle.getTableContentBackGroundColor())));
+ }
+
+ @Deprecated
+ private WriteCellStyle buildWriteCellStyle(Font font, IndexedColors indexedColors) {
+ WriteCellStyle writeCellStyle = new WriteCellStyle();
+ if (indexedColors != null) {
+ writeCellStyle.setFillForegroundColor(indexedColors.getIndex());
+ }
+ if (font != null) {
+ WriteFont writeFont = new WriteFont();
+ writeFont.setFontName(font.getFontName());
+ writeFont.setFontHeightInPoints(font.getFontHeightInPoints());
+ writeFont.setBold(font.isBold());
+ }
+ return writeCellStyle;
}
@Deprecated
@@ -196,24 +216,14 @@ public abstract class AbstractWriteHolder extends AbstractHolder implements Writ
Map headMap = getExcelWriteHeadProperty().getHeadMap();
Map contentPropertyMap = getExcelWriteHeadProperty().getContentPropertyMap();
- boolean hasCellStyle = false;
boolean hasColumnWidth = false;
for (Map.Entry entry : headMap.entrySet()) {
- if (entry.getValue().getCellStyleProperty() != null) {
- hasCellStyle = true;
- }
if (entry.getValue().getColumnWidthProperty() != null) {
hasColumnWidth = true;
- }
- ExcelContentProperty excelContentProperty = contentPropertyMap.get(entry.getKey());
- if (excelContentProperty.getCellStyleProperty() != null) {
- hasCellStyle = true;
+ break;
}
}
- if (hasCellStyle) {
- dealCellStyle(handlerList, contentPropertyMap);
- }
if (hasColumnWidth) {
dealColumnWidth(handlerList);
}
@@ -252,36 +262,6 @@ public abstract class AbstractWriteHolder extends AbstractHolder implements Writ
handlerList.add(columnWidthStyleStrategy);
}
- private void dealCellStyle(List handlerList,
- final Map contentPropertyMap) {
- WriteHandler columnCellStyleStrategy = new AbstractColumnCellStyleStrategy() {
- @Override
- protected CellStyle headCellStyle(Head head) {
- if (head == null || head.getCellStyleProperty() == null) {
- return null;
- }
- CellStyleProperty cellStyleProperty = head.getCellStyleProperty();
- return new CellStyle(cellStyleProperty.getFontName(), cellStyleProperty.getFontHeightInPoints(),
- cellStyleProperty.getBold(), cellStyleProperty.getIndexedColors());
- }
-
- @Override
- protected CellStyle contentCellStyle(Head head) {
- if (head == null) {
- return null;
- }
- ExcelContentProperty excelContentProperty = contentPropertyMap.get(head.getColumnIndex());
- if (excelContentProperty == null || excelContentProperty.getCellStyleProperty() == null) {
- return null;
- }
- CellStyleProperty cellStyleProperty = excelContentProperty.getCellStyleProperty();
- return new CellStyle(cellStyleProperty.getFontName(), cellStyleProperty.getFontHeightInPoints(),
- cellStyleProperty.getBold(), cellStyleProperty.getIndexedColors());
- }
- };
- handlerList.add(columnCellStyleStrategy);
- }
-
protected Map, List> sortAndClearUpHandler(
List handlerList, Map, List> parentHandlerMap) {
// add
diff --git a/src/main/java/com/alibaba/excel/write/metadata/style/WriteCellStyle.java b/src/main/java/com/alibaba/excel/write/metadata/style/WriteCellStyle.java
new file mode 100644
index 0000000..3d68cae
--- /dev/null
+++ b/src/main/java/com/alibaba/excel/write/metadata/style/WriteCellStyle.java
@@ -0,0 +1,315 @@
+package com.alibaba.excel.write.metadata.style;
+
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.BuiltinFormats;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IgnoredErrorType;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+
+/**
+ * Cell style when writing
+ *
+ * @author zhuangjiaju
+ */
+public class WriteCellStyle {
+ /**
+ * Set the data format (must be a valid format). Built in formats are defined at {@link BuiltinFormats}.
+ */
+ private Short dataFormat;
+ /**
+ * Set the font for this style
+ */
+ private WriteFont writeFont;
+ /**
+ * Set the cell's using this style to be hidden
+ */
+ private Boolean hidden;
+
+ /**
+ * Set the cell's using this style to be locked
+ */
+ private Boolean locked;
+ /**
+ * Turn on or off "Quote Prefix" or "123 Prefix" for the style, which is used to tell Excel that the thing which
+ * looks like a number or a formula shouldn't be treated as on. Turning this on is somewhat (but not completely, see
+ * {@link IgnoredErrorType}) like prefixing the cell value with a ' in Excel
+ */
+ private Boolean quotePrefix;
+ /**
+ * Set the type of horizontal alignment for the cell
+ */
+ private HorizontalAlignment horizontalAlignment;
+ /**
+ * Set whether the text should be wrapped. Setting this flag to true
make all content visible within a
+ * cell by displaying it on multiple lines
+ *
+ */
+ private Boolean wrapped;
+ /**
+ * Set the type of vertical alignment for the cell
+ */
+ private VerticalAlignment verticalAlignment;
+ /**
+ * Set the degree of rotation for the text in the cell.
+ *
+ * Note: HSSF uses values from -90 to 90 degrees, whereas XSSF uses values from 0 to 180 degrees. The
+ * implementations of this method will map between these two value-ranges accordingly, however the corresponding
+ * getter is returning values in the range mandated by the current type of Excel file-format that this CellStyle is
+ * applied to.
+ */
+ private Short rotation;
+ /**
+ * Set the number of spaces to indent the text in the cell
+ */
+ private Short indent;
+ /**
+ * Set the type of border to use for the left border of the cell
+ */
+ private BorderStyle borderLeft;
+ /**
+ * Set the type of border to use for the right border of the cell
+ */
+ private BorderStyle borderRight;
+ /**
+ * Set the type of border to use for the top border of the cell
+ */
+ private BorderStyle borderTop;
+
+ /**
+ * Set the type of border to use for the bottom border of the cell
+ */
+ private BorderStyle borderBottom;
+ /**
+ * Set the color to use for the left border
+ *
+ * @see IndexedColors
+ */
+ private Short leftBorderColor;
+
+ /**
+ * Set the color to use for the right border
+ *
+ * @see IndexedColors
+ *
+ */
+ private Short rightBorderColor;
+
+ /**
+ * Set the color to use for the top border
+ *
+ * @see IndexedColors
+ *
+ */
+ private Short topBorderColor;
+ /**
+ * Set the color to use for the bottom border
+ *
+ * @see IndexedColors
+ *
+ */
+ private Short bottomBorderColor;
+ /**
+ * Setting to one fills the cell with the foreground color... No idea about other values
+ *
+ * @see FillPatternType#SOLID_FOREGROUND
+ */
+ private FillPatternType fillPatternType;
+
+ /**
+ * Set the background fill color.
+ *
+ * @see IndexedColors
+ *
+ */
+ private Short fillBackgroundColor;
+
+ /**
+ * Set the foreground fill color Note: Ensure Foreground color is set prior to background color.
+ *
+ * @see IndexedColors
+ *
+ */
+ private Short fillForegroundColor;
+ /**
+ * Controls if the Cell should be auto-sized to shrink to fit if the text is too long
+ */
+ private Boolean shrinkToFit;
+
+ public Short getDataFormat() {
+ return dataFormat;
+ }
+
+ public void setDataFormat(Short dataFormat) {
+ this.dataFormat = dataFormat;
+ }
+
+ public WriteFont getWriteFont() {
+ return writeFont;
+ }
+
+ public void setWriteFont(WriteFont writeFont) {
+ this.writeFont = writeFont;
+ }
+
+ public Boolean getHidden() {
+ return hidden;
+ }
+
+ public void setHidden(Boolean hidden) {
+ this.hidden = hidden;
+ }
+
+ public Boolean getLocked() {
+ return locked;
+ }
+
+ public void setLocked(Boolean locked) {
+ this.locked = locked;
+ }
+
+ public Boolean getQuotePrefix() {
+ return quotePrefix;
+ }
+
+ public void setQuotePrefix(Boolean quotePrefix) {
+ this.quotePrefix = quotePrefix;
+ }
+
+ public HorizontalAlignment getHorizontalAlignment() {
+ return horizontalAlignment;
+ }
+
+ public void setHorizontalAlignment(HorizontalAlignment horizontalAlignment) {
+ this.horizontalAlignment = horizontalAlignment;
+ }
+
+ public Boolean getWrapped() {
+ return wrapped;
+ }
+
+ public void setWrapped(Boolean wrapped) {
+ this.wrapped = wrapped;
+ }
+
+ public VerticalAlignment getVerticalAlignment() {
+ return verticalAlignment;
+ }
+
+ public void setVerticalAlignment(VerticalAlignment verticalAlignment) {
+ this.verticalAlignment = verticalAlignment;
+ }
+
+ public Short getRotation() {
+ return rotation;
+ }
+
+ public void setRotation(Short rotation) {
+ this.rotation = rotation;
+ }
+
+ public Short getIndent() {
+ return indent;
+ }
+
+ public void setIndent(Short indent) {
+ this.indent = indent;
+ }
+
+ public BorderStyle getBorderLeft() {
+ return borderLeft;
+ }
+
+ public void setBorderLeft(BorderStyle borderLeft) {
+ this.borderLeft = borderLeft;
+ }
+
+ public BorderStyle getBorderRight() {
+ return borderRight;
+ }
+
+ public void setBorderRight(BorderStyle borderRight) {
+ this.borderRight = borderRight;
+ }
+
+ public BorderStyle getBorderTop() {
+ return borderTop;
+ }
+
+ public void setBorderTop(BorderStyle borderTop) {
+ this.borderTop = borderTop;
+ }
+
+ public BorderStyle getBorderBottom() {
+ return borderBottom;
+ }
+
+ public void setBorderBottom(BorderStyle borderBottom) {
+ this.borderBottom = borderBottom;
+ }
+
+ public Short getLeftBorderColor() {
+ return leftBorderColor;
+ }
+
+ public void setLeftBorderColor(Short leftBorderColor) {
+ this.leftBorderColor = leftBorderColor;
+ }
+
+ public Short getRightBorderColor() {
+ return rightBorderColor;
+ }
+
+ public void setRightBorderColor(Short rightBorderColor) {
+ this.rightBorderColor = rightBorderColor;
+ }
+
+ public Short getTopBorderColor() {
+ return topBorderColor;
+ }
+
+ public void setTopBorderColor(Short topBorderColor) {
+ this.topBorderColor = topBorderColor;
+ }
+
+ public Short getBottomBorderColor() {
+ return bottomBorderColor;
+ }
+
+ public void setBottomBorderColor(Short bottomBorderColor) {
+ this.bottomBorderColor = bottomBorderColor;
+ }
+
+ public FillPatternType getFillPatternType() {
+ return fillPatternType;
+ }
+
+ public void setFillPatternType(FillPatternType fillPatternType) {
+ this.fillPatternType = fillPatternType;
+ }
+
+ public Short getFillBackgroundColor() {
+ return fillBackgroundColor;
+ }
+
+ public void setFillBackgroundColor(Short fillBackgroundColor) {
+ this.fillBackgroundColor = fillBackgroundColor;
+ }
+
+ public Short getFillForegroundColor() {
+ return fillForegroundColor;
+ }
+
+ public void setFillForegroundColor(Short fillForegroundColor) {
+ this.fillForegroundColor = fillForegroundColor;
+ }
+
+ public Boolean getShrinkToFit() {
+ return shrinkToFit;
+ }
+
+ public void setShrinkToFit(Boolean shrinkToFit) {
+ this.shrinkToFit = shrinkToFit;
+ }
+}
diff --git a/src/main/java/com/alibaba/excel/write/metadata/style/WriteFont.java b/src/main/java/com/alibaba/excel/write/metadata/style/WriteFont.java
new file mode 100644
index 0000000..6ed4c2a
--- /dev/null
+++ b/src/main/java/com/alibaba/excel/write/metadata/style/WriteFont.java
@@ -0,0 +1,143 @@
+package com.alibaba.excel.write.metadata.style;
+
+import org.apache.poi.common.usermodel.fonts.FontCharset;
+import org.apache.poi.hssf.usermodel.HSSFPalette;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.IndexedColors;
+
+/**
+ * Font when writing
+ *
+ * @author jipengfei
+ */
+public class WriteFont {
+ /**
+ * The name for the font (i.e. Arial)
+ */
+ private String fontName;
+ /**
+ * Height in the familiar unit of measure - points
+ */
+ private Short fontHeightInPoints;
+ /**
+ * Whether to use italics or not
+ */
+ private Boolean italic;
+ /**
+ * Whether to use a strikeout horizontal line through the text or not
+ */
+ private Boolean strikeout;
+ /**
+ * The color for the font
+ *
+ * @see Font#COLOR_NORMAL
+ * @see Font#COLOR_RED
+ * @see HSSFPalette#getColor(short)
+ * @see IndexedColors
+ */
+ private Short color;
+ /**
+ * Set normal,super or subscript.
+ *
+ * @see Font#SS_NONE
+ * @see Font#SS_SUPER
+ * @see Font#SS_SUB
+ */
+ private Short typeOffset;
+ /**
+ * set type of text underlining to use
+ *
+ * @see Font#U_NONE
+ * @see Font#U_SINGLE
+ * @see Font#U_DOUBLE
+ * @see Font#U_SINGLE_ACCOUNTING
+ * @see Font#U_DOUBLE_ACCOUNTING
+ */
+
+ private Byte underline;
+ /**
+ * Set character-set to use.
+ *
+ * @see FontCharset
+ * @see Font#ANSI_CHARSET
+ * @see Font#DEFAULT_CHARSET
+ * @see Font#SYMBOL_CHARSET
+ */
+ private Integer charset;
+ /**
+ * Bold
+ */
+ private Boolean bold;
+
+ public String getFontName() {
+ return fontName;
+ }
+
+ public void setFontName(String fontName) {
+ this.fontName = fontName;
+ }
+
+ public Short getFontHeightInPoints() {
+ return fontHeightInPoints;
+ }
+
+ public void setFontHeightInPoints(Short fontHeightInPoints) {
+ this.fontHeightInPoints = fontHeightInPoints;
+ }
+
+ public Boolean getItalic() {
+ return italic;
+ }
+
+ public void setItalic(Boolean italic) {
+ this.italic = italic;
+ }
+
+ public Boolean getStrikeout() {
+ return strikeout;
+ }
+
+ public void setStrikeout(Boolean strikeout) {
+ this.strikeout = strikeout;
+ }
+
+ public Short getColor() {
+ return color;
+ }
+
+ public void setColor(Short color) {
+ this.color = color;
+ }
+
+ public Short getTypeOffset() {
+ return typeOffset;
+ }
+
+ public void setTypeOffset(Short typeOffset) {
+ this.typeOffset = typeOffset;
+ }
+
+ public Byte getUnderline() {
+ return underline;
+ }
+
+ public void setUnderline(Byte underline) {
+ this.underline = underline;
+ }
+
+ public Integer getCharset() {
+ return charset;
+ }
+
+ public void setCharset(Integer charset) {
+ this.charset = charset;
+ }
+
+ public Boolean getBold() {
+ return bold;
+ }
+
+ public void setBold(Boolean bold) {
+ this.bold = bold;
+ }
+}
diff --git a/src/main/java/com/alibaba/excel/write/property/ExcelWriteHeadProperty.java b/src/main/java/com/alibaba/excel/write/property/ExcelWriteHeadProperty.java
index cfe974d..c1247d9 100644
--- a/src/main/java/com/alibaba/excel/write/property/ExcelWriteHeadProperty.java
+++ b/src/main/java/com/alibaba/excel/write/property/ExcelWriteHeadProperty.java
@@ -7,13 +7,10 @@ import java.util.Map;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
-import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
-import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.alibaba.excel.enums.HeadKindEnum;
import com.alibaba.excel.metadata.CellRange;
import com.alibaba.excel.metadata.Head;
-import com.alibaba.excel.metadata.property.CellStyleProperty;
import com.alibaba.excel.metadata.property.ColumnWidthProperty;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.alibaba.excel.metadata.property.ExcelHeadProperty;
@@ -38,29 +35,17 @@ public class ExcelWriteHeadProperty extends ExcelHeadProperty {
this.contentRowHeightProperty =
RowHeightProperty.build((ContentRowHeight)headClazz.getAnnotation(ContentRowHeight.class));
- HeadStyle parentHeadStyle = (HeadStyle)headClazz.getAnnotation(HeadStyle.class);
- ContentStyle parentContentStyle = (ContentStyle)headClazz.getAnnotation(ContentStyle.class);
ColumnWidth parentColumnWidth = (ColumnWidth)headClazz.getAnnotation(ColumnWidth.class);
for (Map.Entry entry : getContentPropertyMap().entrySet()) {
Integer index = entry.getKey();
ExcelContentProperty excelContentPropertyData = entry.getValue();
Field field = excelContentPropertyData.getField();
Head headData = getHeadMap().get(index);
- HeadStyle headStyle = field.getAnnotation(HeadStyle.class);
- if (headStyle == null) {
- headStyle = parentHeadStyle;
- }
- headData.setCellStyleProperty(CellStyleProperty.build(headStyle));
ColumnWidth columnWidth = field.getAnnotation(ColumnWidth.class);
if (columnWidth == null) {
columnWidth = parentColumnWidth;
}
headData.setColumnWidthProperty(ColumnWidthProperty.build(columnWidth));
- ContentStyle contentStyle = field.getAnnotation(ContentStyle.class);
- if (contentStyle == null) {
- contentStyle = parentContentStyle;
- }
- excelContentPropertyData.setCellStyleProperty(CellStyleProperty.build(contentStyle));
}
}
diff --git a/src/main/java/com/alibaba/excel/write/style/AbstractColumnCellStyleStrategy.java b/src/main/java/com/alibaba/excel/write/style/AbstractColumnCellStyleStrategy.java
index cb43f07..9d91aa4 100644
--- a/src/main/java/com/alibaba/excel/write/style/AbstractColumnCellStyleStrategy.java
+++ b/src/main/java/com/alibaba/excel/write/style/AbstractColumnCellStyleStrategy.java
@@ -9,6 +9,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.util.StyleUtil;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.sun.istack.internal.Nullable;
/**
@@ -38,11 +39,11 @@ public abstract class AbstractColumnCellStyleStrategy extends AbstractCellStyleS
}
return;
}
- com.alibaba.excel.metadata.CellStyle headCellStyle = headCellStyle(head);
+ WriteCellStyle headCellStyle = headCellStyle(head);
if (headCellStyle == null) {
headCellStyleCache.put(columnIndex, null);
} else {
- CellStyle cellStyle = StyleUtil.buildHeadCellStyle(workbook, headCellStyle(head));
+ CellStyle cellStyle = StyleUtil.buildHeadCellStyle(workbook, headCellStyle);
headCellStyleCache.put(columnIndex, cellStyle);
cell.setCellStyle(cellStyle);
}
@@ -58,11 +59,11 @@ public abstract class AbstractColumnCellStyleStrategy extends AbstractCellStyleS
}
return;
}
- com.alibaba.excel.metadata.CellStyle contentCellStyle = contentCellStyle(head);
+ WriteCellStyle contentCellStyle = contentCellStyle(head);
if (contentCellStyle == null) {
contentCellStyleCache.put(columnIndex, null);
} else {
- CellStyle cellStyle = StyleUtil.buildContentCellStyle(workbook, contentCellStyle(head));
+ CellStyle cellStyle = StyleUtil.buildContentCellStyle(workbook, contentCellStyle);
contentCellStyleCache.put(columnIndex, cellStyle);
cell.setCellStyle(cellStyle);
}
@@ -74,7 +75,7 @@ public abstract class AbstractColumnCellStyleStrategy extends AbstractCellStyleS
* @param head
* @return
*/
- protected abstract com.alibaba.excel.metadata.CellStyle headCellStyle(@Nullable Head head);
+ protected abstract WriteCellStyle headCellStyle(@Nullable Head head);
/**
* Returns the column width corresponding to each column head
@@ -82,6 +83,6 @@ public abstract class AbstractColumnCellStyleStrategy extends AbstractCellStyleS
* @param head
* @return
*/
- protected abstract com.alibaba.excel.metadata.CellStyle contentCellStyle(@Nullable Head head);
+ protected abstract WriteCellStyle contentCellStyle(@Nullable Head head);
}
diff --git a/src/main/java/com/alibaba/excel/write/style/RowCellStyleStrategy.java b/src/main/java/com/alibaba/excel/write/style/RowCellStyleStrategy.java
index 3ae5d89..1d65f9f 100644
--- a/src/main/java/com/alibaba/excel/write/style/RowCellStyleStrategy.java
+++ b/src/main/java/com/alibaba/excel/write/style/RowCellStyleStrategy.java
@@ -4,11 +4,12 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Workbook;
-import com.alibaba.excel.metadata.CellStyle;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.util.StyleUtil;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
/**
*
@@ -18,50 +19,50 @@ import com.alibaba.excel.util.StyleUtil;
*/
public class RowCellStyleStrategy extends AbstractCellStyleStrategy {
+ private WriteCellStyle headWriteCellStyle;
+ private List contentWriteCellStyleList;
+
private CellStyle headCellStyle;
private List contentCellStyleList;
- private org.apache.poi.ss.usermodel.CellStyle poiHeadCellStyle;
- private List poiContentCellStyleList;
-
- public RowCellStyleStrategy(CellStyle headCellStyle, List contentCellStyleList) {
- this.headCellStyle = headCellStyle;
- this.contentCellStyleList = contentCellStyleList;
+ public RowCellStyleStrategy(WriteCellStyle headWriteCellStyle, List contentWriteCellStyleList) {
+ this.headWriteCellStyle = headWriteCellStyle;
+ this.contentWriteCellStyleList = contentWriteCellStyleList;
}
- public RowCellStyleStrategy(CellStyle headCellStyle, CellStyle contentCellStyle) {
- this.headCellStyle = headCellStyle;
- contentCellStyleList = new ArrayList();
- contentCellStyleList.add(contentCellStyle);
+ public RowCellStyleStrategy(WriteCellStyle headWriteCellStyle, WriteCellStyle contentWriteCellStyle) {
+ this.headWriteCellStyle = headWriteCellStyle;
+ contentWriteCellStyleList = new ArrayList();
+ contentWriteCellStyleList.add(contentWriteCellStyle);
}
@Override
protected void initCellStyle(Workbook workbook) {
- if (headCellStyle != null) {
- poiHeadCellStyle = StyleUtil.buildHeadCellStyle(workbook, headCellStyle);
+ if (headWriteCellStyle != null) {
+ headCellStyle = StyleUtil.buildHeadCellStyle(workbook, headWriteCellStyle);
}
- if (contentCellStyleList != null && !contentCellStyleList.isEmpty()) {
- poiContentCellStyleList = new ArrayList();
- for (CellStyle cellStyle : contentCellStyleList) {
- poiContentCellStyleList.add(StyleUtil.buildContentCellStyle(workbook, cellStyle));
+ if (contentWriteCellStyleList != null && !contentWriteCellStyleList.isEmpty()) {
+ contentCellStyleList = new ArrayList();
+ for (WriteCellStyle writeCellStyle : contentWriteCellStyleList) {
+ contentCellStyleList.add(StyleUtil.buildContentCellStyle(workbook, writeCellStyle));
}
}
}
@Override
protected void setHeadCellStyle(Cell cell, Head head, int relativeRowIndex) {
- if (poiHeadCellStyle == null) {
+ if (headCellStyle == null) {
return;
}
- cell.setCellStyle(poiHeadCellStyle);
+ cell.setCellStyle(headCellStyle);
}
@Override
protected void setContentCellStyle(Cell cell, Head head, int relativeRowIndex) {
- if (poiContentCellStyleList == null || poiContentCellStyleList.isEmpty()) {
+ if (contentCellStyleList == null || contentCellStyleList.isEmpty()) {
return;
}
- cell.setCellStyle(poiContentCellStyleList.get(relativeRowIndex % poiContentCellStyleList.size()));
+ cell.setCellStyle(contentCellStyleList.get(relativeRowIndex % contentCellStyleList.size()));
}
}
diff --git a/src/main/java/com/alibaba/excel/write/style/column/AbstractColumnWidthStyleStrategy.java b/src/main/java/com/alibaba/excel/write/style/column/AbstractColumnWidthStyleStrategy.java
index 2bc1afb..c8ca2d7 100644
--- a/src/main/java/com/alibaba/excel/write/style/column/AbstractColumnWidthStyleStrategy.java
+++ b/src/main/java/com/alibaba/excel/write/style/column/AbstractColumnWidthStyleStrategy.java
@@ -13,7 +13,7 @@ import com.sun.istack.internal.Nullable;
/**
* Column width style strategy
- *
+ *
* @author zhuangjiaju
*/
public abstract class AbstractColumnWidthStyleStrategy implements CellWriteHandler, NotRepeatExecutor {
@@ -40,7 +40,7 @@ public abstract class AbstractColumnWidthStyleStrategy implements CellWriteHandl
/**
* Sets the column width when head create
- *
+ *
* @param sheet
* @param cell
* @param head