『壹』 请问下,我想用java实现下载excel表格,思路是先在临时文件里生成临时excel文件,但是不知
你的意思是 导出excel表格吧。 导出的时候会创建临时文件 但是导出后要删除临时文件吧
『贰』 java如何将导出的excel下载到客户端
packagecom.mr;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/***利用Servlet导出Excel*@N**/{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("UTF-8");//设置request的编码方式,防止中文乱码StringfileName="导出数据";//设置导出的文件名称StringBuffersb=newStringBuffer(request.getParameter("tableInfo"));//将表格信息放入内存StringcontentType="application/vnd.ms-excel";//定义导出文件的格式的字符串StringrecommendedName=newString(fileName.getBytes(),"iso_8859_1");//设置文件名称的编码格式response.setContentType(contentType);//设置导出文件格式response.setHeader("Content-Disposition","attachment;filename="+recommendedName+""");//response.resetBuffer();//利用输出输入流导出文件ServletOutputStreamsos=response.getOutputStream();sos.write(sb.toString().getBytes());sos.flush();sos.close();}}<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>导出Excel</title><scripttype="text/javascript">functiontest(){document.getElementById("tableInfo").value=document.getElementById("table").innerHTML;}</script><style>body{font-family:宋体;font-size:11pt}</style></head><body><formaction="<%=request.getContextPath()%>/servlet/ExportExcelServlet"method="post"><spanid="table"><tablebgcolor="#EEECF2"bordercolor="#A3B2CC"border="1"cellspacing="0"><tr><th>学号</th><th>姓名</th><th>科目</th><th>分数</th></tr><tr><td>10001</td><td>赵二</td><td>高数</td><td>82</td></tr><tr><td>10002</td><td>张三</td><td>高数</td><td>94</td></tr><tr><td>10001</td><td>赵二</td><td>线数</td><td>77</td></tr><tr><td>10002</td><td>张三</td><td>线数</td><td>61</td></tr></table></span><br/><inputtype="submit"name="Excel"value="导出表格"onclick="test()"/><inputtype="hidden"id="tableInfo"name="tableInfo"value=""/></form></body></html>
以上代码来自网络:http://jtlyuan.iteye.com/blog/1322097
『叁』 java 将页面内容写入excel文件中并可以将其下载到本地任意位置
java本身袭要生成excel文件必然是在后台做的,通过poi库生成excel文件并制作表格。无法直接通过网页保存生成excel。至于下载到本地任意位置,也是后台生成了excel文件发送到前台(浏览器),由用户选择要存在哪儿,不能直接存储(这是web沙箱限制,不允许网页直接访问本地硬盘,不然你想想,如果你打开一个网页,网页代码可以任意访问你的硬盘,你还敢开网页吗)。要绕过沙箱限制必须装插件,也就是,你必须开发一个com或plugin插件,可以访问本地硬盘,但这需要用户手工安装(比如flash的插件,你之所以能用网页看flash是因为装了它的插件,但这是你手工装的,它不能绕过你直接给你装,它必须询问你行不行,你要手工点了OK,才能装)
『肆』 为什么我用java实现excel下载时,弹出框提示的文件后缀为do
因为你的下载链接不是直接写到.xls文件上的,而是给action发送了一个请求。action接到请求后返回一个输出流供你下载数据,这时候由于你请求的地址是xxx.do,所以解析到的下载地址也是.do
『伍』 怎么使用Java完成下载excel文件,服务器上excel文件是直接存在的而不是导出的(必须使用action)
写个文件抄专门提供下载文件也可以,但那样对于你这种情况明显多余了,把服务器端Excel文件的MIME类型映射信息改成application/octet-stream即可。这个映射可以在web.xml中定义。
『陆』 java如何实现从服务器下载已经生成好的excel文件
使用 HttpURLConnection 去下载 ,按二进制保存文件 ~~~~~~~~~
『柒』 java excel导出下载
超链接<a href="execel文件的路径">文件另存为</a>这种是最简单的第二种例子是下载图片Action中代码 return null//设置响应的方式response.setContentType("application/x-msdownload");//设置响应文件长度response.setContentLength(user.getImage().length);//设置响应头response.setHeader("Content-Disposition","attachment;filename="+filename);//处理文件名为中文时的编码方式response.setHeader("Content-Disposition","attachment;filename="+new String(filename.getBytes("GBK"),"ISO-8859-1"));BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());bos.write(b);bos.close();
『捌』 用java下载一个excel文件,在Response.setContentType()参数中
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。Tomcat的安装目录\conf\web.xml中就定义了大量MIME类型,可以参考。response.setContentType("text/html;charset=utf-8");html.setContentType("text/plain;charset=utf-8");文本text/javascriptjson数据application/xmlxml数据这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置Content-type实体报头。一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");response.setContentType()的String参数及对应类型value="image/bmp">BMPvalue="image/gif">GIFvalue="image/jpeg">JPEGvalue="image/tiff">TIFFvalue="image/x-dcx">DCXvalue="image/x-pcx">PCXvalue="text/html">HTMLvalue="text/plain">TXTvalue="text/xml">XMLvalue="application/afp">AFPvalue="application/pdf">PDFvalue="application/rtf">RTFvalue="application/msword">MSWORDvalue="application/vnd.ms-excel">MSEXCELvalue="application/vnd.ms-powerpoint">MSPOWERPOINTvalue="application/wordperfect5.1">WORDPERFECTvalue="application/vnd.lotus-wordpro">WORDPROvalue="application/vnd.visio">VISIOvalue="application/vnd.framemaker">FRAMEMAKERvalue="application/vnd.lotus-1-2-3">LOTUS123MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。另外还有使用权限问题。比如对PDF文档,用“application/pdf“策略。这在动态网页中很常见。出现这种现象,有两种情形:一是使用一个应用程序去打开它不能打开的文档,比如用在标签中定义“DWG”文档用“application/pdf”,就会出现无法打开的问题。二是文件扩展名符合要求,但文件内容(格式)不符合要求。你可以检查你浏览的网页源代码,获得出错信息。检查方法是:查看—源文件。寻找类似于“application/pdf“的字符串,就可以看到,要打开的文件是否与应用程序匹配。追问如果不相匹配如何解决回答这通常是由网页编写人来更改。比如:你在源文件里面找到你要打开的文件的HTML标签,在里面加上应用程序即可。比如,你要在网页上打开一个PDF文档,找到PDF文档那一行,在HTML标签里加上type=“application/pdf“就可以了
『玖』 怎样用jsp或java将本地的execl文件下载下来
把 文件路径写在 a 标签里 <a href="文件路径">点击下载</a> 文件路径是 相对工程的路径 不是绝对路径这样基本上就可以
未经允许不得转载:山九号 » excel文件的下载java|java 将页面内容写入excel文件中并可以将其下载到本地任意位置