java easyexcel 下载文件
时间: 2023-10-14 18:16:48 浏览: 82
你可以使用 EasyExcel 库来实现 Java 中的文件下载功能。下面是一个简单的示例代码,演示如何使用 EasyExcel 下载文件:
```java
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
@Controller
public class FileDownloadController {
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
// 创建 ExcelWriter 对象
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
// 创建写入的数据列表
List<List<String>> data = new ArrayList<>();
data.add(List.of("Name", "Age", "Gender"));
data.add(List.of("John", "25", "Male"));
data.add(List.of("Alice", "30", "Female"));
// 创建 Sheet 对象,并指定写入的数据列表和表头
WriteSheet writeSheet = EasyExcel.writerSheet().build();
writeSheet.setHead(data.get(0));
// 将数据写入 Sheet
excelWriter.write(data.subList(1, data.size()), writeSheet);
// 关闭 ExcelWriter,即将数据写入到响应流中
excelWriter.finish();
// 设置响应头,告诉浏览器下载文件
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("data.xlsx", "UTF-8"));
}
}
```
上述示例代码是一个基于 Spring 的控制器,使用 EasyExcel 将数据写入 Excel 文件,并通过 HttpServletResponse 对象将文件发送给客户端进行下载。你可以根据自己的需要进行修改和适配。记得在项目中引入 EasyExcel 的依赖。
阅读全文