mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
add test
This commit is contained in:
@@ -8,6 +8,7 @@ import cn.hutool.core.io.IORuntimeException;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.map.TableMap;
|
||||
import cn.hutool.core.map.multi.RowKeyTable;
|
||||
import cn.hutool.core.map.multi.Table;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
@@ -1049,7 +1050,7 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
||||
final Table<?, ?, ?> aliasTable = aliasTable(rowMap);
|
||||
if (isWriteKeyAsHead) {
|
||||
// 写出标题行,并记录标题别名和列号的关系
|
||||
writeHeadRow(aliasTable.columnKeySet());
|
||||
writeHeadRow(aliasTable.columnKeys());
|
||||
// 记录原数据key对应列号
|
||||
int i = 0;
|
||||
for (Object key : aliasTable.rowKeySet()) {
|
||||
@@ -1341,7 +1342,7 @@ public class ExcelWriter extends ExcelBase<ExcelWriter> {
|
||||
* @return 别名列表
|
||||
*/
|
||||
private Table<?, ?, ?> aliasTable(Map<?, ?> rowMap) {
|
||||
final Table<Object, Object, Object> filteredTable = new RowKeyTable<>(new LinkedHashMap<>(), LinkedHashMap::new);
|
||||
final Table<Object, Object, Object> filteredTable = new RowKeyTable<>(new LinkedHashMap<>(), TableMap::new);
|
||||
if (MapUtil.isEmpty(this.headerAlias)) {
|
||||
rowMap.forEach((key, value)-> filteredTable.put(key, key, value));
|
||||
}else{
|
||||
|
@@ -2,6 +2,10 @@ package cn.hutool.poi.excel;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.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.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -10,9 +14,12 @@ import java.util.Map;
|
||||
|
||||
public class Issue2221Test {
|
||||
|
||||
/**
|
||||
* 设置重复别名的时候,通过原key获取写出位置
|
||||
*/
|
||||
@Test
|
||||
@Ignore
|
||||
public void writeDuplicateHeaderAliasTest(){
|
||||
public void writeDuplicateHeaderAliasTest() {
|
||||
final ExcelWriter writer = ExcelUtil.getWriter("d:/test/duplicateAlias.xlsx");
|
||||
// 设置别名
|
||||
writer.addHeaderAlias("androidLc", "安卓");
|
||||
@@ -28,4 +35,65 @@ public class Issue2221Test {
|
||||
writer.write(data, true);
|
||||
writer.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void writeDuplicateHeaderAliasTest2(){
|
||||
// 获取写Excel的流
|
||||
ExcelWriter writer = ExcelUtil.getBigWriter("d:/test/duplicateAlias2.xlsx");
|
||||
|
||||
// 设置头部的背景颜色
|
||||
StyleUtil.setColor(writer.getHeadCellStyle(), IndexedColors.GREY_50_PERCENT, FillPatternType.SOLID_FOREGROUND);
|
||||
|
||||
//设置全局字体
|
||||
Font font = writer.createFont();
|
||||
font.setFontName("Microsoft YaHei");
|
||||
writer.getStyleSet().setFont(font, false);
|
||||
|
||||
// 设置头部的字体为白颜色
|
||||
Font headerFont = writer.createFont();
|
||||
headerFont.setColor(IndexedColors.WHITE.getIndex());
|
||||
writer.getHeadCellStyle().setFont(headerFont);
|
||||
|
||||
// 跳过多少行
|
||||
writer.passRows(1);
|
||||
|
||||
// 冻结多少行
|
||||
writer.setFreezePane(2);
|
||||
|
||||
// 设置别名
|
||||
writer.addHeaderAlias("date", "日期");
|
||||
writer.addHeaderAlias("androidLc", "安卓");
|
||||
writer.addHeaderAlias("iosLc", "iOS");
|
||||
writer.addHeaderAlias("androidAc", " 安卓");
|
||||
writer.addHeaderAlias("iosAc", " iOS");
|
||||
writer.setOnlyAlias(true);
|
||||
|
||||
// 设置合并的单元格
|
||||
writer.merge(0, 1, 0, 0, "日期", true);
|
||||
writer.merge(0, 0, 1, 2, "运行次数", true);
|
||||
writer.merge(0, 0, 3, 4, "新增人数", true);
|
||||
|
||||
// 写入数据
|
||||
List<Map<Object, Object>> data = ListUtil.of(
|
||||
MapUtil.ofEntries(
|
||||
MapUtil.entry("date", "2022-01-01"),
|
||||
MapUtil.entry("androidLc", "1次"),
|
||||
MapUtil.entry("iosLc", "2次"),
|
||||
MapUtil.entry("androidAc", "3次"),
|
||||
MapUtil.entry("iosAc", "4人")),
|
||||
MapUtil.ofEntries(
|
||||
MapUtil.entry("date", "2022-01-02"),
|
||||
MapUtil.entry("androidLc", "5次"),
|
||||
MapUtil.entry("iosLc", "6次"),
|
||||
MapUtil.entry("androidAc", "7次"),
|
||||
MapUtil.entry("iosAc", "8人"))
|
||||
);
|
||||
|
||||
// 自动尺寸
|
||||
writer.autoSizeColumnAll();
|
||||
|
||||
writer.write(data, true);
|
||||
writer.close();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user