跳到主要内容

简单写入

本章节介绍如何使用 Fesod 完成简单电子表格写入

概述

使用 Fesod 进行简单的电子表格数据写入,可以快速地将实体对象写入电子表格文件,是最基本、最常用的写入方式。

代码示例

POJO 类

与电子表格结构对应的 POJO 类 DemoData

@Getter
@Setter
@EqualsAndHashCode
public class DemoData {
@ExcelProperty("字符串标题")
private String string;
@ExcelProperty("日期标题")
private Date date;
@ExcelProperty("数字标题")
private Double doubleData;
@ExcelIgnore
private String ignore; // 忽略的字段
}

数据列表

private List<DemoData> data() {
List<DemoData> list = ListUtils.newArrayList();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setString("字符串" + i);
data.setDate(new Date());
data.setDoubleData(0.56);
list.add(data);
}
return list;
}

写入方式

Fesod 提供了多种写入方式,包括 Lambda 表达式、数据列表、ExcelWriter 对象等。

Lambda 表达式

@Test
public void simpleWrite() {
String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx";

FesodSheet.write(fileName, DemoData.class)
.sheet("Sheet1")
.doWrite(() -> data());
}

数据列表

@Test
public void simpleWrite() {
String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx";

FesodSheet.write(fileName, DemoData.class)
.sheet("Sheet1")
.doWrite(data());
}

ExcelWriter 对象

@Test
public void simpleWrite() {
String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx";

try (ExcelWriter excelWriter = FesodSheet.write(fileName, DemoData.class).build()) {
WriteSheet writeSheet = FesodSheet.writerSheet("Sheet1").build();
excelWriter.write(data(), writeSheet);
}
}

结果

三种方式生成的文件完全相同。 第 1 行是取自 @ExcelProperty 的表头标题,data() 返回的多个数据对象依次写入第 2 至 11 行。 ignore 字段因为标注了 @ExcelIgnore 而不会出现。

ABC
1字符串标题日期标题数字标题
2字符串02026-07-31 20:50:230.56
3字符串12026-07-31 20:50:230.56
4字符串22026-07-31 20:50:230.56
11字符串92026-07-31 20:50:230.56