Excel导出中HttpServletResponse消息头参数设置

response.setCharacterEncoding("UTF-8");

//编码格式为UTF-8


response.setContentType("application/vnd.ms-excel;charset=UTF-8");

//让服务器告诉浏览器它发送的数据属于excel文件类型

其他常用类型:

 'doc'        => 'application/msword',
    'bin'        => 'application/octet-stream',
    'exe'        => 'application/octet-stream',
    'so'        => 'application/octet-stream',
    'dll'        => 'application/octet-stream',
    'pdf'        => 'application/pdf',
    'ai'        => 'application/postscript',
    'xls'        => 'application/vnd.ms-excel',
    'ppt'        => 'application/vnd.ms-powerpoint',
    'dir'        => 'application/x-director',
    'js'        => 'application/x-javascript',
    'swf'        => 'application/x-shockwave-flash',
    'xhtml'        => 'application/xhtml+xml',
    'xht'        => 'application/xhtml+xml',
    'zip'        => 'application/zip',
    'mid'        => 'audio/midi',
    'midi'        => 'audio/midi',
    'mp3'        => 'audio/mpeg',
    'rm'        => 'audio/x-pn-realaudio',
    'rpm'        => 'audio/x-pn-realaudio-plugin',
    'wav'        => 'audio/x-wav',
    'bmp'        => 'image/bmp',
    'gif'        => 'image/gif',
    'jpeg'        => 'image/jpeg',
    'jpg'        => 'image/jpeg',
    'png'        => 'image/png',
    'css'        => 'text/css',
    'html'        => 'text/html',
    'htm'        => 'text/html',
    'txt'        => 'text/plain',
    'xsl'        => 'text/xml',
    'xml'        => 'text/xml',
    'mpeg'        => 'video/mpeg',
    'mpg'        => 'video/mpeg',
    'avi'        => 'video/x-msvideo',
    'movie'        => 'video/x-sgi-movie',  


response.setHeader("Content-Transfer-Encoding", "binary");

//描述内容在传输过程中的编码格式,BINARY可能不止包含非ASCII字符,还可能不是一个短行(超过1000字符)。


response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");

//must-revalidate:强制页面不缓存,post-check=0, pre-check=0:0秒后,在显示给用户之前,该对象被选中进行更新过


response.setHeader("Pragma", "public");

//表示响应可能是任何缓存的,即使它只是通常是非缓存或可缓存的仅在非共享缓存中。


response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".xls\"");

//告诉浏览器这个文件的名字和类型,attachment:作为附件下载;inline:直接打开

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将使用 Apache POI 3.14 版本导出Excel 文件设置在 `response` ,确保您已经添加了正确的依赖项。然后,您可以按照以下步骤进行操作: 1. 导入所需的类: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; ``` 2. 创建一个新的 Java 方法,并将 `HttpServletResponse` 对象作为参数传入: ```java public void exportExcel(HttpServletResponse response) { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); // 在这里添加您的数据和样式 // ... // 设置响应部信息 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=output.xlsx"); // 将工作簿写入响应流 try (ServletOutputStream outputStream = response.getOutputStream()) { workbook.write(outputStream); workbook.close(); outputStream.flush(); } catch (IOException e) { e.printStackTrace(); } } ``` 3. 在方法,您可以根据需要添加数据和样式到工作表。 4. 设置响应的内容类型为 `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,这将告诉浏览器它是一个 Excel 文件。然后,设置 Content-Disposition 部信息为 "attachment; filename=output.xlsx",这将指示浏览器将文件作为附件下载。 5. 最后,将工作簿写入到 `response` 的输出流,并在完成后刷新输出流。 请注意,在使用完工作簿后,务必调用 `close()` 方法来释放资源。 您可以在需要导出 Excel 的地方调用 `exportExcel(response)` 方法,其 `response` 是您从 servlet 或控制器获取到的 `HttpServletResponse` 对象。 希望这可以解决您的问题!如有任何疑问,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值