add DefaultStyleSet

This commit is contained in:
Looly
2024-06-04 17:26:50 +08:00
parent b8cfaecfc0
commit 9a34a155c6
9 changed files with 114 additions and 137 deletions

View File

@@ -26,6 +26,7 @@ import org.dromara.hutool.poi.excel.BigExcelWriter;
import org.dromara.hutool.poi.excel.ExcelUtil;
import org.dromara.hutool.poi.excel.ExcelWriter;
import org.dromara.hutool.poi.excel.TestBean;
import org.dromara.hutool.poi.excel.style.DefaultStyleSet;
import org.dromara.hutool.poi.excel.style.StyleUtil;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -92,7 +93,7 @@ public class BigExcelWriteTest {
// 通过工具类创建writer
final BigExcelWriter writer = ExcelUtil.getBigWriter("e:/mergeTest.xlsx");
final CellStyle style = writer.getStyleSet().getHeadCellStyle();
final CellStyle style = ((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle();
StyleUtil.setColor(style, IndexedColors.RED, FillPatternType.SOLID_FOREGROUND);
// 跳过当前行,即第一行,非必须,在此演示用
@@ -138,7 +139,7 @@ public class BigExcelWriteTest {
font.setBold(true);
font.setColor(Font.COLOR_RED);
font.setItalic(true);
writer.getStyleSet().setFont(font, true);
((DefaultStyleSet)writer.getStyleSet()).setFont(font, true);
// 合并单元格后的标题行,使用默认标题样式
writer.merge(row1.size() - 1, "一班成绩单");

View File

@@ -23,6 +23,7 @@ import org.dromara.hutool.core.util.CharsetUtil;
import org.dromara.hutool.core.util.ObjUtil;
import org.dromara.hutool.poi.excel.*;
import org.dromara.hutool.poi.excel.cell.setters.EscapeStrCellSetter;
import org.dromara.hutool.poi.excel.style.DefaultStyleSet;
import org.dromara.hutool.poi.excel.style.StyleUtil;
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.*;
@@ -177,7 +178,7 @@ public class ExcelWriteTest {
// 通过工具类创建writer
final ExcelWriter writer = ExcelUtil.getWriter("d:/test/mergeTest.xlsx");
final CellStyle style = writer.getStyleSet().getHeadCellStyle();
final CellStyle style = ((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle();
StyleUtil.setColor(style, IndexedColors.RED, FillPatternType.SOLID_FOREGROUND);
// 跳过当前行,即第一行,非必须,在此演示用
@@ -251,7 +252,7 @@ public class ExcelWriteTest {
font.setBold(true);
font.setColor(Font.COLOR_RED);
font.setItalic(true);
writer.getStyleSet().setFont(font, true);
((DefaultStyleSet)writer.getStyleSet()).setFont(font, true);
// 合并单元格后的标题行,使用默认标题样式
writer.merge(row1.size() - 1, "一班成绩单");
@@ -617,7 +618,7 @@ public class ExcelWriteTest {
headFont.setBold(true);
headFont.setFontHeightInPoints((short) 50);
headFont.setFontName("Microsoft YaHei");
writer.getStyleSet().getHeadCellStyle().setFont(headFont);
((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle().setFont(headFont);
//表2
writer.setSheet("表2");
@@ -799,7 +800,7 @@ public class ExcelWriteTest {
public void changeHeaderStyleTest() {
final ExcelWriter writer = ExcelUtil.getWriter("d:/test/headerStyle.xlsx");
writer.writeHeadRow(ListUtil.view("姓名", "性别", "年龄"));
final CellStyle headCellStyle = writer.getStyleSet().getHeadCellStyle();
final CellStyle headCellStyle = ((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle();
headCellStyle.setFillForegroundColor(IndexedColors.YELLOW1.index);
headCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

View File

@@ -12,15 +12,16 @@
package org.dromara.hutool.poi.excel.writer;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.poi.excel.ExcelUtil;
import org.dromara.hutool.poi.excel.ExcelWriter;
import org.dromara.hutool.poi.excel.style.DefaultStyleSet;
import org.dromara.hutool.poi.excel.style.StyleUtil;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -58,17 +59,17 @@ public class Issue2221Test {
final ExcelWriter writer = ExcelUtil.getBigWriter("d:/test/duplicateAlias2.xlsx");
// 设置头部的背景颜色
StyleUtil.setColor(writer.getHeadCellStyle(), IndexedColors.GREY_50_PERCENT, FillPatternType.SOLID_FOREGROUND);
StyleUtil.setColor(((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle(), IndexedColors.GREY_50_PERCENT, FillPatternType.SOLID_FOREGROUND);
//设置全局字体
final Font font = writer.createFont();
font.setFontName("Microsoft YaHei");
writer.getStyleSet().setFont(font, false);
((DefaultStyleSet)writer.getStyleSet()).setFont(font, false);
// 设置头部的字体为白颜色
final Font headerFont = writer.createFont();
headerFont.setColor(IndexedColors.WHITE.getIndex());
writer.getHeadCellStyle().setFont(headerFont);
((DefaultStyleSet)writer.getStyleSet()).getHeadCellStyle().setFont(headerFont);
// 跳过多少行
writer.passRows(1);

View File

@@ -20,7 +20,7 @@ import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.poi.excel.ExcelUtil;
import org.dromara.hutool.poi.excel.ExcelWriter;
import org.dromara.hutool.poi.excel.StyleSet;
import org.dromara.hutool.poi.excel.style.DefaultStyleSet;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -52,7 +52,7 @@ public class Issue2307Test {
writer.write(rows, true);
final StyleSet style = writer.getStyleSet();
final DefaultStyleSet style = (DefaultStyleSet) writer.getStyleSet();
final CellStyle cellStyleForNumber = style.getCellStyleForNumber();
cellStyleForNumber.setAlignment(HorizontalAlignment.RIGHT);