easyexcel编写基本excel文件读取 和文件导出,通过弹窗模式
时间: 2024-11-23 09:40:24 浏览: 47
EasyExcel是一个阿里巴巴开源的Java库,用于简化Excel数据的导入和导出操作,支持按行、按列以及自定义逻辑处理数据。对于基本的Excel文件读取和导出,你可以按照以下步骤进行:
1. **导入依赖**:
在Maven项目中,添加EasyExcel的依赖到`pom.xml`中:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<!-- 根据最新版本替换 -->
<version>最新版本号</version>
</dependency>
```
2. **读取Excel**:
使用`@DataProcesser`注解处理每行数据,然后通过`DataProcessingController`来启动读取过程,并显示进度条或弹窗提示:
```java
@DataProcesser(order = 0)
public class ReadProcessor {
public void process(Map<String, Object> data) {
// 处理每一行的数据
}
}
@Controller
public class ExcelReaderController {
@GetMapping("/read")
public String readExcel(@RequestParam("file") MultipartFile file) {
List<Map<String, Object>> result = EasyExcel.read(file.getInputStream(), ReadProcessor.class).sheet().doRead();
// 处理结果并展示在弹窗或页面上
return "result";
}
}
```
3. **导出Excel**:
创建一个模型类(例如`ExportModel`),将数据封装其中,然后使用`DataExporter`来创建Excel并下载:
```java
@Data
public class ExportModel {
private String title;
private String value;
}
@PostMapping("/export")
public ResponseEntity<ByteArrayOutputStream> exportExcel(List<ExportModel> models) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
EasyExcel.write(outputStream, ExportModel.class)
.sheet() // 如果有多张工作表,可以指定sheetName
.build()
.write(models);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return ResponseEntity.ok().headers(headers).body(outputStream);
}
```
阅读全文