在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开

Quote:

这个问题可以分两部分讨论:

1、csv文件的格式
2、通过jsp向客户端输出csv文件

第一个问题我们就按简单的来讨论,可以认为是每个字段用""包含后再用,号分割
比如:
"a","b","c"
"d","e","f"

现在我们有了csv文件的内容,我们看看怎么把它输出到客户端

一种变通的方法是把csv的内容写到一个临时文件中,然后让客户端下载这个临时文件。

不过最简单的方法是直接向客户端输出:以下是csv.jsp的内容
"a","b","c"
"d","e","f"

就这么简单,这些信息就输出到客户端了。

不过现在的情况估计是不会满足楼主需要的,因为浏览器自己处理了这些信息,而不是交给excel来处理。
为了让浏览器把处理权让处理,我们需要在jsp的头部加上一些信息,告诉浏览器这些信息不用你来操心,交给其他合适的程序(对应csv来说当然是excel咯)来处理就好了。
先告诉它“以下信息是m$的,不是html的”:
<%@ page language="java" contentType="application/ms-excel"%>
再告诉它文件名是test.csv
<%response.setHeader("Content-Disposition","filename=test.xls");%>
最后是文件的内容:
"a","b","c"
"d","e","f"

全文就是这个样子
<%@ page language="java" contentType="application/ms-excel"%>
<%response.setHeader("Content-Disposition","filename=test.xls");%>
"a","b","c"
"d","e","f"

楼主把abcd什么的换成你从javaBean中查到的东西就可以了。

再访问这个网页,ie的话会提示你打开或者保存,应该是楼主想要的结果了吧。

以下是结合jstl实现的代码:
test.jsp文件
Code:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
response.resetBuffer();
response.setContentType("application/unknow");
response.setHeader("Content-disposition",
"attachment; filename=test.csv");
%><c:forEach items="$" var="record">$,$</c:forEach>

Collection是一个request.
posted @   dkcndk  阅读(1123)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示