Skip to content

Commit 54688c9

Browse files
bug: fix error about range of HeadFontStyle(#326)
1 parent 913890a commit 54688c9

File tree

4 files changed

+82
-1
lines changed

4 files changed

+82
-1
lines changed

fastexcel-core/src/main/java/cn/idev/excel/write/metadata/style/WriteCellStyle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public static void merge(WriteCellStyle source, WriteCellStyle target) {
162162
}
163163
if (source.getWriteFont() != null) {
164164
if (target.getWriteFont() == null) {
165-
target.setWriteFont(source.getWriteFont());
165+
target.setWriteFont(source.getWriteFont().clone());
166166
} else {
167167
WriteFont.merge(source.getWriteFont(), target.getWriteFont());
168168
}

fastexcel-core/src/main/java/cn/idev/excel/write/metadata/style/WriteFont.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,20 @@ public static void merge(WriteFont source, WriteFont target) {
115115
target.setBold(source.getBold());
116116
}
117117
}
118+
119+
120+
@Override
121+
public WriteFont clone() {
122+
WriteFont writeFont = new WriteFont();
123+
writeFont.setFontName(getFontName());
124+
writeFont.setFontHeightInPoints(getFontHeightInPoints());
125+
writeFont.setItalic(getItalic());
126+
writeFont.setStrikeout(getStrikeout());
127+
writeFont.setColor(getColor());
128+
writeFont.setTypeOffset(getTypeOffset());
129+
writeFont.setUnderline(getUnderline());
130+
writeFont.setCharset(getCharset());
131+
writeFont.setBold(getBold());
132+
return writeFont;
133+
}
118134
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package cn.idev.excel.test.demo.write;
2+
3+
import cn.idev.excel.annotation.ExcelProperty;
4+
import cn.idev.excel.annotation.write.style.HeadFontStyle;
5+
import lombok.AllArgsConstructor;
6+
import lombok.EqualsAndHashCode;
7+
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
9+
import lombok.Getter;
10+
import org.apache.poi.ss.usermodel.Font;
11+
12+
/**
13+
* Basic data class for test color
14+
*
15+
**/
16+
@Getter
17+
@Setter
18+
@EqualsAndHashCode
19+
@AllArgsConstructor
20+
@NoArgsConstructor
21+
public class ColorDemoData {
22+
23+
24+
@ExcelProperty("姓名")
25+
private String name;
26+
@ExcelProperty("年龄")
27+
@HeadFontStyle(color = Font.COLOR_RED)
28+
private Integer age;
29+
@ExcelProperty("性别")
30+
private String sex;
31+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package cn.idev.excel.test.demo.write;
2+
3+
import cn.idev.excel.EasyExcel;
4+
import cn.idev.excel.test.util.TestFileUtil;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.LinkedList;
8+
import java.util.List;
9+
10+
/**
11+
* Class for testing colors
12+
*
13+
*/
14+
public class WriteWithColorTest {
15+
16+
17+
@Test
18+
public void write() {
19+
String fileName = TestFileUtil.getPath() + "simpleWrite" + System.currentTimeMillis() + ".xlsx";
20+
EasyExcel.write(fileName, ColorDemoData.class)
21+
.sheet("模板")
22+
.doWrite(this::data);
23+
System.out.println(fileName);
24+
}
25+
26+
private List<ColorDemoData> data() {
27+
List<ColorDemoData> list = new LinkedList<>();
28+
for (int i = 0; i < 10; i++) {
29+
list.add(new ColorDemoData("name" + i, i, "男"));
30+
}
31+
return list;
32+
}
33+
34+
}

0 commit comments

Comments
 (0)