SpringWebflux框架里导出excel文档
本demo里使用springboot 2.7.0版本。
@GetMapping("/download/excel/file")
public Mono<Void> downloadExcelFile(ServerHttpResponse response, WebSession webSession) {
// 设置被下载的文件名称
response.getHeaders().set(org.springframework.http.HttpHeaders.CONTENT_DISPOSITION, "attachment; " +
"filename=demo.xls");
response.getHeaders().add("Accept-Ranges", "bytes");
// 定义输出流
DefaultDataBuffer dataBuffer = new DefaultDataBufferFactory().allocateBuffer();
OutputStream outputStream = dataBuffer.asOutputStream();
try {
// 定义excel文件
Workbook workbook = new XSSFWorkbook();
// 将excel文件流写入到output流
workbook.write(outputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
Flux<DataBuffer> dataBufferFlux = Flux.create((FluxSink<DataBuffer> emitter) -> {
emitter.next(dataBuffer);
emitter.complete();
});
// 往response写output流
// return response.writeWith(dataBufferFlux);
return response.writeAndFlushWith(Mono.just(dataBufferFlux));
}
end.

分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架