EasyExcel下载xlsx
时间: 2025-01-05 21:15:25 浏览: 4
### 使用 EasyExcel 下载或生成 XLSX 文件
#### Maven 依赖配置
为了使用 EasyExcel 库,首先需要在项目的 `pom.xml` 中添加相应的依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
```
#### 创建 Excel 文件并写入数据
下面是一个简单的例子来展示如何创建一个新的 XLSX 文件并将数据写入其中。
```java
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
public class WriteDemo {
public static void main(String[] args) {
String fileName = "example.xlsx";
List<UserData> data = new ArrayList<>();
data.add(new UserData("张三", 28));
data.add(new UserData("李四", 30));
// 写操作
EasyExcel.write(fileName, UserData.class).sheet("模板").doWrite(data);
}
}
class UserData {
private String name;
private int age;
public UserData() {}
public UserData(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters...
}
```
此代码片段展示了如何通过指定文件路径和类映射关系快速写出一份带有表头的 Excel 表格[^1]。
#### 将文件保存至云存储服务
当希望将生成好的 Excel 文件上传到云端时,可以根据所使用的具体云平台 API 进行相应调整。通常情况下会先将文件流化之后再调用对应的 SDK 方法完成上传动作。
对于某些特定场景下可能还需要考虑安全性因素,比如设置访问权限控制等措施确保只有授权人员能够获取这些资源。
#### 响应给浏览器下载
为了让前端可以直接触发下载链接而不需要经过后台临时落地磁盘的方式,可以通过 HttpServletResponse 来直接返回文件流的形式让用户即时下载。
```java
import javax.servlet.http.HttpServletResponse;
// ...
HttpServletResponse response = ...; // 获取响应对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String filename = URLEncoder.encode("example.xlsx", StandardCharsets.UTF_8).replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + filename);
EasyExcel.write(response.getOutputStream(), UserData.class).sheet("Sheet1").doWrite(dataList);
```
这段代码设置了正确的 MIME 类型以便于浏览器识别为 Excel 文件,并且指定了编码方式防止中文乱码问题发生[^2]。
阅读全文