本文目录一览:
- 1、java : 一个excel文件以二进制的形式存在数据库中 如何将它导出并下载到本地
- 2、java 将页面内容写入excel文件中并可以将其下载到本地任意位置
- 3、java如何将导出的excel下载到客户端
java : 一个excel文件以二进制的形式存在数据库中 如何将它导出并下载到本地
从数据库中得到Blob/Clob,然后得到InputStream,直接给response.getOutputStream() 输出就可以
java 将页面内容写入excel文件中并可以将其下载到本地任意位置
java本身要生成excel文件必然是在后台做的,通过poi库生成excel文件并制作表格。
无法直接通过网页保存生成excel。
至于下载到本地任意位置,也是后台生成了excel文件发送到前台(浏览器),由用户选择要存在哪儿,不能直接存储(这是web沙箱限制,不允许网页直接访问本地硬盘,不然你想想,如果你打开一个网页,网页代码可以任意访问你的硬盘,你还敢开网页吗)。
要绕过沙箱限制必须装插件,也就是,你必须开发一个com或plugin插件,可以访问本地硬盘,但这需要用户手工安装(比如flash的插件,你之所以能用网页看flash是因为装了它的插件,但这是你手工装的,它不能绕过你直接给你装,它必须询问你行不行,你要手工点了OK,才能装)
java如何将导出的excel下载到客户端
package com.mr;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 利用Servlet导出Excel
* @author CHUNBIN
*
*/
public class ExportExcelServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");//设置request的编码方式,防止中文乱码
String fileName ="导出数据";//设置导出的文件名称
StringBuffer sb = new StringBuffer(request.getParameter("tableInfo"));//将表格信息放入内存
String contentType = "application/vnd.ms-excel";//定义导出文件的格式的字符串
String recommendedName = new String(fileName.getBytes(),"iso_8859_1");//设置文件名称的编码格式
response.setContentType(contentType);//设置导出文件格式
response.setHeader("Content-Disposition", "attachment; filename=" + recommendedName + "\"");//
response.resetBuffer();
//利用输出输入流导出文件
ServletOutputStream sos = response.getOutputStream();
sos.write(sb.toString().getBytes());
sos.flush();
sos.close();
}
}
%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
title导出Excel/title
script type="text/javascript"
function test(){
document.getElementById("tableInfo").value=document.getElementById("table").innerHTML;
}
/script
style
body{font-family:宋体;font-size:11pt}
/style
/head
body
form action="%=request.getContextPath()%/servlet/ExportExcelServlet" method="post"
span id="table"
table bgcolor="#EEECF2" bordercolor="#A3B2CC" border="1" cellspacing="0"
trth学号/thth姓名/thth科目/thth分数/th/tr
trtd10001/tdtd赵二/tdtd高数/tdtd82/td/tr
trtd10002/tdtd张三/tdtd高数/tdtd94/td/tr
trtd10001/tdtd赵二/tdtd线数/tdtd77/td/tr
trtd10002/tdtd张三/tdtd线数/tdtd61/td/tr
/table
/spanbr/
input type="submit" name="Excel" value="导出表格" onclick="test()"/
input type="hidden" id="tableInfo" name="tableInfo" value=""/
/form
/body
/html
以上代码来自网络: