javaexcel文件下載
⑴ 用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/javascript
json數據
application/xml
xml數據
這
個方法設置發送到客戶端的響應的內容類型,此時響應還沒有提交。給出的內容類型可以包括字元編碼說明,例
如: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">BMP
value="image/gif">GIF
value="image/jpeg">JPEG
value="image/tiff">TIFF
value="image/x-dcx">DCX
value="image/x-pcx">PCX
value="text/html">HTML
value="text/plain">TXT
value="text/xml">XML
value="application/afp">AFP
value="application/pdf">PDF
value="application/rtf">RTF
value="application/msword">MSWORD
value="application/vnd.ms-excel">MSEXCEL
value="application/vnd.ms-powerpoint">MSPOWERPOINT
value="application/wordperfect5.1">WORDPERFECT
value="application/vnd.lotus-wordpro">WORDPRO
value="application/vnd.visio">VISIO
value="application/vnd.framemaker">FRAMEMAKER
value="application/vnd.lotus-1-2-3">LOTUS123
MIME映射策略就是在網頁中使用哪個應用程序(即插件),打開哪種文件。另外還有使用許可權問題。比如對PDF文檔,用「application/pdf
「策略。這在動態網頁中很常見。出現這種現象,有兩種情形:一是使用一個應用程序去打開它不能打開的文檔,比如用在標簽中定義「DWG」文檔用
「application/pdf
」,就會出現無法打開的問題。二是文件擴展名符合要求,但文件內容(格式)不符合要求。你可以檢查你瀏覽的網頁源代碼,獲得出錯信息。檢查方法是:查看—
源文件。尋找類似於「application/pdf
「的字元串,就可以看到,要打開的文件是否與應用程序匹配。
追問
如果不相匹配
如何解決回答
這通常是由網頁編寫人來更改。比如:你在源文件裡面找到你要打開的文件的HTML標簽,在裡面加上應用程序即可。比如,你要在網頁上打開一個PDF文檔,
找到PDF文檔那一行,在HTML標簽里加上
type=「application/pdf
「
就可以了
⑵ 怎麼使用Java完成下載excel文件,伺服器上excel文件是直接存在的而不是導出的(必須使用action)
寫個文件專門提供下載文件也可以,但那樣對於你這種情況明顯多餘了,把伺服器端Excel文件的MIME類型映射信息改成application/octet-stream即可。這個映射可以在web.xml中定義。
⑶ java生成excel文件後,下載不完整
使用瀏覽器的調試功能。看文件下載過程中,是否有其他請求中斷了下載。
檢查本地殺毒軟體,是否有影響,我曾經遇到過。
換個機器測試下。
⑷ java 將頁面內容寫入excel文件中並可以將其下載到本地任意位置
java本身要生成excel文件必然是在後台做的,通過poi庫生成excel文件並製作表格。
無法直接通過網頁保存生成excel。
至於下載到本地任意位置,也是後台生成了excel文件發送到前台(瀏覽器),由用戶選擇要存在哪兒,不能直接存儲(這是web沙箱限制,不允許網頁直接訪問本地硬碟,不然你想想,如果你打開一個網頁,網頁代碼可以任意訪問你的硬碟,你還敢開網頁嗎)。
要繞過沙箱限制必須裝插件,也就是,你必須開發一個com或plugin插件,可以訪問本地硬碟,但這需要用戶手工安裝(比如flash的插件,你之所以能用網頁看flash是因為裝了它的插件,但這是你手工裝的,它不能繞過你直接給你裝,它必須詢問你行不行,你要手工點了OK,才能裝)
⑸ 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
*@authorCHUNBIN
*
*/
{
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文件
使用 HttpURLConnection 去下載 ,按二進制保存文件 ~~~~~~~~~
⑺ 用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/javascript json數據
application/xml xml數據
這 個方法設置發送到客戶端的響應的內容類型,此時響應還沒有提交。給出的內容類型可以包括字元編碼說明,例 如: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">BMP
value="image/gif">GIF
value="image/jpeg">JPEG
value="image/tiff">TIFF
value="image/x-dcx">DCX
value="image/x-pcx">PCX
value="text/html">HTML
value="text/plain">TXT
value="text/xml">XML
value="application/afp">AFP
value="application/pdf">PDF
value="application/rtf">RTF
value="application/msword">MSWORD
value="application/vnd.ms-excel">MSEXCEL
value="application/vnd.ms-powerpoint">MSPOWERPOINT
value="application/wordperfect5.1">WORDPERFECT
value="application/vnd.lotus-wordpro">WORDPRO
value="application/vnd.visio">VISIO
value="application/vnd.framemaker">FRAMEMAKER
value="application/vnd.lotus-1-2-3">LOTUS123
MIME映射策略就是在網頁中使用哪個應用程序(即插件),打開哪種文件。另外還有使用許可權問題。比如對PDF文檔,用「application/pdf 「策略。這在動態網頁中很常見。出現這種現象,有兩種情形:一是使用一個應用程序去打開它不能打開的文檔,比如用在標簽中定義「DWG」文檔用 「application/pdf 」,就會出現無法打開的問題。二是文件擴展名符合要求,但文件內容(格式)不符合要求。你可以檢查你瀏覽的網頁源代碼,獲得出錯信息。檢查方法是:查看— 源文件。尋找類似於「application/pdf 「的字元串,就可以看到,要打開的文件是否與應用程序匹配。 追問 如果不相匹配 如何解決回答 這通常是由網頁編寫人來更改。比如:你在源文件裡面找到你要打開的文件的HTML標簽,在裡面加上應用程序即可。比如,你要在網頁上打開一個PDF文檔, 找到PDF文檔那一行,在HTML標簽里加上 type=「application/pdf 「 就可以了
⑻ 請問下,我想用java實現下載excel表格,思路是先在臨時文件里生成臨時excel文件,但是不知
你的意思是 導出excel表格吧。 導出的時候會創建臨時文件 但是導出後要刪除臨時文件吧