添加方法 1、采用自定义样式合并单元格,2、输出复杂格式的表头行

修改合并单元格时边框颜色丢失问题
This commit is contained in:
znxdgwx
2021-04-26 17:13:23 +08:00
parent 4f634c384d
commit b32865ad65
3 changed files with 107 additions and 0 deletions

View File

@@ -13,6 +13,9 @@ import org.apache.poi.ss.usermodel.CellStyle;
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.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.junit.Ignore;
import org.junit.Test;
@@ -520,4 +523,48 @@ public class ExcelWriteTest {
columnStyle.setDataFormat((short) BuiltinFormats.getBuiltinFormat("0.00"));
writer.close();
}
@Test
@Ignore
public void writeSecHeadRowTest() {
List<?> row1 = CollUtil.newArrayList(1,"aa", "bb", "cc", "dd", "ee");
List<?> row2 = CollUtil.newArrayList(2,"aa1", "bb1", "cc1", "dd1", "ee1");
List<?> row3 = CollUtil.newArrayList(3,"aa2", "bb2", "cc2", "dd2", "ee2");
List<?> row4 = CollUtil.newArrayList(4,"aa3", "bb3", "cc3", "dd3", "ee3");
List<?> row5 = CollUtil.newArrayList(5,"aa4", "bb4", "cc4", "dd4", "ee4");
List<List<?>> rows = CollUtil.newArrayList(row1, row2, row3, row4, row5);
// 通过工具类创建writer
ExcelWriter writer = ExcelUtil.getWriter("d:/test/writeSecHeadRowTest.xlsx");
CellStyle cellStyle = writer.getWorkbook().createCellStyle();
cellStyle.setWrapText(false);
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//设置标题内容字体
Font font = writer.createFont();
font.setBold(true);
font.setFontHeightInPoints((short) 15);
font.setFontName("Arial");
//设置边框样式
StyleUtil.setBorder(cellStyle,BorderStyle.THICK,IndexedColors.RED);
cellStyle.setFont(font);
// 合并单元格后的标题行,使用设置好的样式
writer.merge(0,1,0,row1.size() - 1, "标题XXXXXXXX",cellStyle);
System.out.println(writer.getCurrentRow());
//设置复杂表头
writer.merge(2,3,0,0,"序号",true);
writer.merge(2,2,1,2,"AABB",true);
writer.merge(2,3,3,3,"CCCC",true);
writer.merge(2,2,4,5,"DDEE",true);
writer.setCurrentRow(3);
List<String> sechead = CollUtil.newArrayList("AA","BB","DD","EE");
writer.writeSecHeadRow(sechead);
// 一次性写出内容,使用默认样式
writer.write(rows);
// 关闭writer释放内存
writer.close();
}
}