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 可成功解决,可参考

参考

相关推荐
打码人的日常分享11 小时前
IPD项目质量体系管理方案
大数据·运维·人工智能·信息可视化·1024程序员节
CoderYanger1 天前
动态规划算法-两个数组的dp(含字符串数组):42.不相交的线
java·算法·leetcode·动态规划·1024程序员节
CoderYanger2 天前
动态规划算法-两个数组的dp(含字符串数组):43.不同的子序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger2 天前
动态规划算法-两个数组的dp(含字符串数组):41.最长公共子序列(模板)
java·算法·leetcode·动态规划·1024程序员节
CoderYanger2 天前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger3 天前
动态规划算法-子序列问题(数组中不连续的一段):30.最长数对链
java·算法·leetcode·动态规划·1024程序员节
CoderYanger3 天前
C.滑动窗口——2762. 不间断子数组
java·开发语言·数据结构·算法·leetcode·1024程序员节
智者知已应修善业3 天前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
CoderYanger4 天前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
CoderYanger4 天前
A.每日一题——3432. 统计元素和差值为偶数的分区方案
java·数据结构·算法·leetcode·1024程序员节