Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV,excel

导出excel/csv,亲测可共用一个方法,代码逻辑里判断设置不同的表头及contentType;

导出excel

eg:xls

java 复制代码
		response.setContentType("application/vnd.ms-excel");
		response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("导出表.xlsx", "utf-8"));

导出csv

eg:csv

java 复制代码
		response.setContentType("application/csv");
		response.setHeader("content-disposition", "attachment; filename=" + URLEncoder.encode("export.csv",   "UTF-8"));
		ServletOutputStream out = response.getOutputStream();
		out.write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});
		out.write(st.toString.getBytes("UTF-8"));

优化:有数据时才可以导出

当没有数据时提示无法导出,因此返回提示信息,ResponseMessage

在有数据可以正常到导出时可能会报错:Cannot call sendError() after the response has been committed。

在最后返回null 可成功解决,可参考

参考

相关推荐
不爱编程的小陈1 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好1 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔2 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云6 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件6 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节
一颗青果8 天前
单例模式 | 死锁
linux·服务器·单例模式·1024程序员节
yBmZlQzJ11 天前
财运到内网穿透域名解析技术机制与中立评估
运维·经验分享·docker·容器·1024程序员节
yBmZlQzJ11 天前
内网穿透工具通过端口转发实现内外网通信
运维·经验分享·docker·容器·1024程序员节
数据皮皮侠AI11 天前
数字经济政策工具变量数据(2008-2023)
大数据·数据库·人工智能·笔记·1024程序员节