mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-08-18 20:38:02 +08:00
add ExcelConfig
This commit is contained in:
@@ -27,7 +27,7 @@ public class CellEditorTest {
|
||||
@org.junit.jupiter.api.Test
|
||||
public void readTest(){
|
||||
final ExcelReader excelReader= ExcelUtil.getReader("cell_editor_test.xlsx");
|
||||
excelReader.setCellEditor(new ExcelHandler());
|
||||
excelReader.getConfig().setCellEditor(new ExcelHandler());
|
||||
final List<Test> excelReaderObjects=excelReader.readAll(Test.class);
|
||||
|
||||
Assertions.assertEquals("0", excelReaderObjects.get(0).getTest1());
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.dromara.hutool.core.map.MapUtil;
|
||||
import org.dromara.hutool.core.util.ObjUtil;
|
||||
import lombok.Data;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.dromara.hutool.poi.excel.ExcelConfig;
|
||||
import org.dromara.hutool.poi.excel.ExcelUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
@@ -48,7 +49,7 @@ public class ExcelReadTest {
|
||||
headerAlias.put("库房", "storageName");
|
||||
headerAlias.put("盘点权限", "checkPerm");
|
||||
headerAlias.put("领料审批权限", "allotAuditPerm");
|
||||
reader.setHeaderAlias(headerAlias);
|
||||
reader.getConfig().setHeaderAlias(headerAlias);
|
||||
|
||||
// 读取list时默认首个非空行为标题
|
||||
final List<List<Object>> read = reader.read(0, Integer.MAX_VALUE, true);
|
||||
@@ -146,10 +147,11 @@ public class ExcelReadTest {
|
||||
@Test
|
||||
public void excelReadToBeanListTest() {
|
||||
final ExcelReader reader = ExcelUtil.getReader(ResourceUtil.getStream("aaa.xlsx"));
|
||||
reader.addHeaderAlias("姓名", "name");
|
||||
reader.addHeaderAlias("年龄", "age");
|
||||
reader.addHeaderAlias("性别", "gender");
|
||||
reader.addHeaderAlias("鞋码", "shoeSize");
|
||||
final ExcelConfig config = reader.getConfig();
|
||||
config.addHeaderAlias("姓名", "name");
|
||||
config.addHeaderAlias("年龄", "age");
|
||||
config.addHeaderAlias("性别", "gender");
|
||||
config.addHeaderAlias("鞋码", "shoeSize");
|
||||
|
||||
final List<Person> all = reader.readAll(Person.class);
|
||||
Assertions.assertEquals("张三", all.get(0).getName());
|
||||
@@ -162,9 +164,10 @@ public class ExcelReadTest {
|
||||
@Disabled
|
||||
public void excelReadToBeanListTest2() {
|
||||
final ExcelReader reader = ExcelUtil.getReader("f:/test/toBean.xlsx");
|
||||
reader.addHeaderAlias("姓名", "name");
|
||||
reader.addHeaderAlias("年龄", "age");
|
||||
reader.addHeaderAlias("性别", "gender");
|
||||
final ExcelConfig config = reader.getConfig();
|
||||
config.addHeaderAlias("姓名", "name");
|
||||
config.addHeaderAlias("年龄", "age");
|
||||
config.addHeaderAlias("性别", "gender");
|
||||
|
||||
final List<Person> all = reader.read(0, 2, Person.class);
|
||||
for (final Person person : all) {
|
||||
@@ -220,7 +223,8 @@ public class ExcelReadTest {
|
||||
@Test
|
||||
public void nullValueEditTest(){
|
||||
final ExcelReader reader = ExcelUtil.getReader("null_cell_test.xlsx");
|
||||
reader.setCellEditor((cell, value)-> ObjUtil.defaultIfNull(value, "#"));
|
||||
final ExcelConfig config = reader.getConfig();
|
||||
config.setCellEditor((cell, value)-> ObjUtil.defaultIfNull(value, "#"));
|
||||
final List<List<Object>> read = reader.read();
|
||||
|
||||
// 对于任意一个单元格有值的情况下,之前的单元格值按照null处理
|
||||
@@ -271,14 +275,14 @@ public class ExcelReadTest {
|
||||
//https://gitee.com/dromara/hutool/issues/I5OSFC
|
||||
final ExcelReader reader = ExcelUtil.getReader(ResourceUtil.getStream("read.xlsx"));
|
||||
final List<Map<String, Object>> read = reader.read(1,2,2);
|
||||
for (Map<String, Object> map : read) {
|
||||
for (final Map<String, Object> map : read) {
|
||||
Console.log(map);
|
||||
}
|
||||
//超出lastIndex 抛出相应提示:startRowIndex row index 4 is greater than last row index 2.
|
||||
//而非:Illegal Capacity: -1
|
||||
try {
|
||||
final List<Map<String, Object>> readGreaterIndex = reader.read(1,4,4);
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
Console.log(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,11 +191,12 @@ public class BigExcelWriteTest {
|
||||
FileUtil.del(FileUtil.file(file));
|
||||
final BigExcelWriter writer = ExcelUtil.getBigWriter(file);
|
||||
//自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
writer.addHeaderAlias("score", "分数");
|
||||
writer.addHeaderAlias("isPass", "是否通过");
|
||||
writer.addHeaderAlias("examDate", "考试时间");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
config.addHeaderAlias("score", "分数");
|
||||
config.addHeaderAlias("isPass", "是否通过");
|
||||
config.addHeaderAlias("examDate", "考试时间");
|
||||
// 合并单元格后的标题行,使用默认标题样式
|
||||
writer.merge(4, "一班成绩单");
|
||||
// 一次性写出内容,使用默认样式
|
||||
@@ -234,8 +235,9 @@ public class BigExcelWriteTest {
|
||||
final String path = "d:/test/issue1210.xlsx";
|
||||
FileUtil.del(FileUtil.file(path));
|
||||
final BigExcelWriter writer = ExcelUtil.getBigWriter(path);
|
||||
writer.addHeaderAlias("id", "SN");
|
||||
writer.addHeaderAlias("userName", "User Name");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("id", "SN");
|
||||
config.addHeaderAlias("userName", "User Name");
|
||||
|
||||
final List<Map<String, Object>> list = new ArrayList<>();
|
||||
list.add(new HashMap<String, Object>() {
|
||||
|
||||
@@ -306,11 +306,12 @@ public class ExcelWriteTest {
|
||||
FileUtil.del(FileUtil.file(file));
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file);
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
writer.addHeaderAlias("score", "分数");
|
||||
writer.addHeaderAlias("isPass", "是否通过");
|
||||
writer.addHeaderAlias("examDate", "考试时间");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
config.addHeaderAlias("score", "分数");
|
||||
config.addHeaderAlias("isPass", "是否通过");
|
||||
config.addHeaderAlias("examDate", "考试时间");
|
||||
// 合并单元格后的标题行,使用默认标题样式
|
||||
writer.merge(4, "一班成绩单");
|
||||
// 一次性写出内容,使用默认样式
|
||||
@@ -340,10 +341,11 @@ public class ExcelWriteTest {
|
||||
final String file = "f:/test/test_alias.xlsx";
|
||||
FileUtil.del(FileUtil.file(file));
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file);
|
||||
writer.setOnlyAlias(true);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.setOnlyAlias(true);
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
// 合并单元格后的标题行,使用默认标题样式
|
||||
writer.merge(4, "一班成绩单");
|
||||
// 一次性写出内容,使用默认样式
|
||||
@@ -372,10 +374,11 @@ public class ExcelWriteTest {
|
||||
// 通过工具类创建writer
|
||||
final String file = "d:/test/test_alias.xls";
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file, "test1");
|
||||
// writer.setOnlyAlias(true);
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
// writer.setOnlyAlias(true);
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
// 一次性写出内容,使用默认样式
|
||||
writer.write(rows, true);
|
||||
// 关闭writer,释放内存
|
||||
@@ -403,12 +406,13 @@ public class ExcelWriteTest {
|
||||
// 通过工具类创建writer
|
||||
final String file = "d:/test/test_alias.xls";
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file, "test1");
|
||||
writer.setOnlyAlias(true);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.setOnlyAlias(true);
|
||||
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
writer.addHeaderAlias("examDate", "考试时间");
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
config.addHeaderAlias("examDate", "考试时间");
|
||||
|
||||
// 一次性写出内容,使用默认样式
|
||||
writer.write(rows, true);
|
||||
@@ -438,12 +442,13 @@ public class ExcelWriteTest {
|
||||
final String file = "e:/writeBeanTest.xlsx";
|
||||
FileUtil.del(FileUtil.file(file));
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("name", "姓名");
|
||||
writer.addHeaderAlias("age", "年龄");
|
||||
writer.addHeaderAlias("score", "分数");
|
||||
writer.addHeaderAlias("isPass", "是否通过");
|
||||
writer.addHeaderAlias("examDate", "考试时间");
|
||||
config.addHeaderAlias("name", "姓名");
|
||||
config.addHeaderAlias("age", "年龄");
|
||||
config.addHeaderAlias("score", "分数");
|
||||
config.addHeaderAlias("isPass", "是否通过");
|
||||
config.addHeaderAlias("examDate", "考试时间");
|
||||
// 合并单元格后的标题行,使用默认标题样式
|
||||
writer.merge(4, "一班成绩单");
|
||||
// 一次性写出内容,使用默认样式
|
||||
@@ -471,9 +476,10 @@ public class ExcelWriteTest {
|
||||
FileUtil.del(FileUtil.file(file));
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(file);
|
||||
// 自定义标题
|
||||
writer.addHeaderAlias("id", "编号");
|
||||
writer.addHeaderAlias("num", "序号");
|
||||
writer.addHeaderAlias("body", "内容");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("id", "编号");
|
||||
config.addHeaderAlias("num", "序号");
|
||||
config.addHeaderAlias("body", "内容");
|
||||
// 一次性写出内容,使用默认样式
|
||||
writer.write(rows, true);
|
||||
// 关闭writer,释放内存
|
||||
@@ -529,18 +535,19 @@ public class ExcelWriteTest {
|
||||
rows.add(tempList);
|
||||
}
|
||||
final ExcelWriter writer = ExcelUtil.getWriter("D:\\test\\multiSheet.xlsx", "正常数据");
|
||||
writer.addHeaderAlias("1", "row1");
|
||||
writer.addHeaderAlias("3", "row2");
|
||||
writer.setOnlyAlias(true);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("1", "row1");
|
||||
config.addHeaderAlias("3", "row2");
|
||||
config.setOnlyAlias(true);
|
||||
|
||||
writer.write(rows, true);
|
||||
writer.autoSizeColumnAll(false, 0);
|
||||
|
||||
//表2
|
||||
writer.setSheet("当前重复数据");
|
||||
writer.clearHeaderAlias();
|
||||
writer.addHeaderAlias("3", "行3");
|
||||
writer.addHeaderAlias("1", "行1");
|
||||
config.clearHeaderAlias();
|
||||
config.addHeaderAlias("3", "行3");
|
||||
config.addHeaderAlias("1", "行1");
|
||||
writer.write(rows, true);
|
||||
writer.autoSizeColumnAll(false, 0);
|
||||
|
||||
@@ -749,7 +756,7 @@ public class ExcelWriteTest {
|
||||
//通过工具类创建writer
|
||||
FileUtil.del(FileUtil.file("d:/test/writeTest2123.xlsx"));
|
||||
final ExcelWriter writer = ExcelUtil.getWriter("d:/test/writeTest2123.xlsx");
|
||||
writer.addHeaderAlias("xmnf", "项目年份");//1
|
||||
writer.getConfig().addHeaderAlias("xmnf", "项目年份");//1
|
||||
|
||||
//合并单元格后的标题行,使用默认标题样式
|
||||
writer.merge(7, "测试标题");
|
||||
|
||||
@@ -37,9 +37,10 @@ public class Issue2221Test {
|
||||
public void writeDuplicateHeaderAliasTest() {
|
||||
final ExcelWriter writer = ExcelUtil.getWriter("d:/test/duplicateAlias.xlsx");
|
||||
// 设置别名
|
||||
writer.addHeaderAlias("androidLc", "安卓");
|
||||
writer.addHeaderAlias("androidAc", "安卓");
|
||||
writer.setOnlyAlias(true);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("androidLc", "安卓");
|
||||
config.addHeaderAlias("androidAc", "安卓");
|
||||
config.setOnlyAlias(true);
|
||||
|
||||
// 写入数据
|
||||
final List<Map<Object, Object>> data = ListUtil.view(
|
||||
@@ -77,12 +78,13 @@ public class Issue2221Test {
|
||||
writer.setFreezePane(2);
|
||||
|
||||
// 设置别名
|
||||
writer.addHeaderAlias("date", "日期");
|
||||
writer.addHeaderAlias("androidLc", "安卓");
|
||||
writer.addHeaderAlias("iosLc", "iOS");
|
||||
writer.addHeaderAlias("androidAc", " 安卓");
|
||||
writer.addHeaderAlias("iosAc", " iOS");
|
||||
writer.setOnlyAlias(true);
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("date", "日期");
|
||||
config.addHeaderAlias("androidLc", "安卓");
|
||||
config.addHeaderAlias("iosLc", "iOS");
|
||||
config.addHeaderAlias("androidAc", " 安卓");
|
||||
config.addHeaderAlias("iosAc", " iOS");
|
||||
config.setOnlyAlias(true);
|
||||
|
||||
// 设置合并的单元格
|
||||
writer.merge(new CellRangeAddress(0, 1, 0, 0), "日期", true);
|
||||
|
||||
@@ -57,8 +57,9 @@ public class IssueI66Z6BTest {
|
||||
final ExcelWriter writer = ExcelUtil.getWriter(destFile);
|
||||
|
||||
//自定义标题别名
|
||||
writer.addHeaderAlias("姓名", "name");
|
||||
writer.addHeaderAlias("年龄", "age");
|
||||
final ExcelWriteConfig config = writer.getConfig();
|
||||
config.addHeaderAlias("姓名", "name");
|
||||
config.addHeaderAlias("年龄", "age");
|
||||
|
||||
writer.write(dataList, true);
|
||||
writer.close();
|
||||
|
||||
Reference in New Issue
Block a user