Skip to content
This repository was archived by the owner on Apr 11, 2025. It is now read-only.

Commit c065d13

Browse files
committed
📝 update doc cover
1 parent 2f2bc34 commit c065d13

File tree

2 files changed

+29
-148
lines changed

2 files changed

+29
-148
lines changed

docs/README.md

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,8 @@ excelPlus.export(cardSecrets).writeAsFile(new File("卡密列表.xlsx"));
114114
下面这个例子是从Excel 中读取数据到 Java List 容器,如果你想存储在 Set 里我相信你可以做到。
115115

116116
```java
117-
List<CardSecret> cardList = excelPlus.read(
118-
new File("卡密列表.xls"),
119-
CardSecret.class).asList();
117+
Reader reader = Reader.create().excelFile(new File("卡密列表.xlsx"));
118+
List<CardSecret> cardList = excelPlus.read(CardSecret.class, reader).asList();
120119
```
121120

122121
没错,就是这么简单!如果有更加复杂或自定义的需求可以看下面的进阶使用。
@@ -128,9 +127,9 @@ List<CardSecret> cardList = excelPlus.read(
128127
有时候我们需要对读取的行数据做一下过滤,这时候就可以使用 `filter` 函数来筛选出合适的数据项。
129128

130129
```java
131-
List<CardSecret> readList = excelPlus.read(new File("卡密列表.xls"), CardSecret.class)
132-
.filter(cardSecret -> !cardSecret.getSecret().isEmpty())
133-
.asList();
130+
excelPlus.read(CardSecret.class, reader)
131+
.filter(cardSecret -> !cardSecret.getSecret().isEmpty())
132+
.asList();
134133
```
135134

136135
## 读取校验
@@ -140,19 +139,18 @@ List<CardSecret> readList = excelPlus.read(new File("卡密列表.xls"), CardSec
140139
实际工作中你可能将它们交由前端处理。
141140

142141
```java
143-
ExcelResult<CardSecret> result = excelPlus
144-
.read(new File("卡密列表.xls"), CardSecret.class)
145-
.valid(cardSecret -> {
146-
if (cardSecret.getAmount().doubleValue() < 20) {
147-
return ValidRow.fail("最小金额为20");
148-
}
149-
return ValidRow.ok();
150-
}).asResult();
142+
ReaderResult<CardSecret> result = excelPlus.read(new File("卡密列表.xls"), CardSecret.class)
143+
.valid((index, cardSecret) -> {
144+
if(!cardSecret.getUsed()){
145+
return ValidRow.ok();
146+
}
147+
return ValidRow.fail("已经被使用");
148+
});
151149

152150
if (!result.isValid()) {
153151
result.errors().forEach(System.out::println);
154152
} else {
155-
System.out.println(result.rows().size());
153+
System.out.println(result.asList().size());
156154
}
157155
```
158156

@@ -165,8 +163,11 @@ if (!result.isValid()) {
165163
如果你对样式的操作不熟悉可以参考 POI 的列设置[文档](https://poi.apache.org/spreadsheet/quick-guide.html#Creating+Date+Cells)
166164

167165
```java
166+
// 构建数据
168167
List<CardSecret> cardSecrets = this.buildCardSecrets();
169-
excelPlus.export(Exporter.create(cardSecrets).headerStyle(workbook -> {
168+
169+
Exporter<CardSecret> exporter = Exporter.create(cardSecrets);
170+
exporter.headerStyle(workbook -> {
170171
CellStyle headerStyle = workbook.createCellStyle();
171172
headerStyle.setAlignment(HorizontalAlignment.LEFT);
172173

@@ -178,15 +179,19 @@ excelPlus.export(Exporter.create(cardSecrets).headerStyle(workbook -> {
178179
headerFont.setBold(true);
179180
headerStyle.setFont(headerFont);
180181
return headerStyle;
181-
})).writeAsFile(new File("卡密列表.xls"));
182+
});
183+
184+
excelPlus.export(exporter)
185+
.writeAsFile(new File("卡密列表.xlsx"));
182186
```
183187

184188
## 浏览器下载
185189

186190
为了方便我们将数据库查询的数据直接输出到浏览器弹出下载,`excel-plus` 也做了一点 _手脚_ 让你一行代码就可以搞定。
187191

188192
```java
189-
excelPlus.export(data).writeAsResponse(ResponseWrapper.create(servletResponse, "xxx表格.xls"));
193+
excelPlus.export(exporter)
194+
.writeAsResponse(ResponseWrapper.create(servletResponse, "xxx表格.xls"))
190195
```
191196

192197
只需要将 `HttpServletResponse` 对象传入,并输入导出的文件名称,其他的都见鬼去吧。
@@ -209,22 +214,22 @@ excelPlus.export(Exporter.create(cardSecrets).byTemplate("tpl.xls")).writeAsFile
209214

210215
- `ExcelPlus`: 用于操作读取或导出 Excel 文档的类
211216
- `Converter`: 数据类型转换的顶层接口
212-
- `ExcelResult`: 当校验数据时候用于存储返回的错误消息和 `List` 数据
217+
- `ReaderResult`: 存储读取到的列表,包含校验不通过的消息
213218
- `Exporter`: 用于存储导出 Excel 文档时的配置,如样式、模板位置等
214219

215220
## 注解使用
216221

217222
该项目中有 4 个注解,分别是 `ExcelField``ExcelSheet``ReadField``WriteField`
218-
正常情况下你只会用到第一个注解,下面先来解释一下 `@ExcelField`
223+
正常情况下你只会用到第一个注解,下面解释一下 `@ExcelField`
219224

220225
<b>@ExcelField 注解</b>
221226

222227
| 选项 | 默认值 | 描述 |
223228
|-------------|----------------------|--------------------------------------------------------------------|
224-
| order | -1 | 用于标识 Excel 中的列索引,从0开始,该选项适用于读取或写入Excel |
225-
| columnName | 必选 | 导出Excel时的列名称,如:状态、姓名、手机号 |
226-
| datePattern || 日期格式化的pattern,对 DateLocalDateLocalDateTime 生效 |
227-
| convertType | EmptyConverter.class | 数据类型转换的类Class,实现自Converter接口,实现类需有无参构造函数 |
229+
| `order` | -1 | 用于标识 Excel 中的列索引,从 0 开始,该选项适用于读取或写入 Excel |
230+
| `columnName` | 必选 | 导出Excel时的列名称,如:状态、姓名、手机号 |
231+
| `datePattern` || 日期格式化的 `pattern`,对 `Date``LocalDate``LocalDateTime` 生效 |
232+
| `convertType` | `EmptyConverter.class` | 数据类型转换的类 Class,实现自 Converter 接口,实现类需有无参构造函数 |
228233

229234
> `@ReadField``@WriteField` 是针对读取和写入的顺序不一致、日期格式不一致时的覆盖型注解,一般用不到。
230235

src/main/java/io/github/biezhi/excel/plus/reader/ExcelResult.java

Lines changed: 0 additions & 124 deletions
This file was deleted.

0 commit comments

Comments
 (0)