EasyExcel怎么直接下载文件
时间: 2025-05-09 07:08:20 浏览: 18
### 使用 EasyExcel 实现文件直接下载
为了实现通过 Web 应用程序使用 EasyExcel 进行 Excel 文件的直接下载,可以采用前后端分离的方式。下面展示了具体的实现方法。
#### 后端 Java 代码 (Spring Boot)
创建一个控制器来处理 HTTP 请求并返回 Excel 流:
```java
import com.alibaba.excel.EasyExcel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/excel")
public class ExcelController {
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = "example";
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");
List<UploadEasyExcelData> data = new ArrayList<>();
// 填充数据列表...
try {
EasyExcel.write(response.getOutputStream(), UploadEasyExcelData.class).sheet("Sheet1").doWrite(data);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
```
这段代码定义了一个 RESTful API 接口 `/excel/download` ,当访问该接口时会触发文件下载操作[^1]。
#### 前端 Vue.js 代码
前端部分可以通过简单的按钮点击事件发起请求,从而触发服务器上的文件下载逻辑:
```html
<button @click="download">导出Excel</button>
<script>
export default {
name: 'App',
methods:{
download(){
document.location.href="http://192.168.1.8:8007/excel/download";
}
}
}
</script>
```
此段脚本会在用户点击按钮后重定向浏览器到指定 URL 地址以获取 Excel 文件[^2]。
阅读全文
相关推荐


















