日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Jsp輸出excel文檔和中文亂碼問題的解決

寫一個javaBean,利用JExcelApi來動態(tài)生成excel文檔,我這里寫一個最簡單的,示意性的。復(fù)雜的你可能還要查詢數(shù)據(jù)庫什么的。

"熱情、務(wù)實、專業(yè)、創(chuàng)新”我們不忘初心,砥礪前行,實在做人,認(rèn)真做事,始終如一的專注企業(yè)互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷推廣服務(wù)。品牌網(wǎng)站制作本著讓客戶滿意的目標(biāo),幫助企業(yè)通過互聯(lián)網(wǎng)創(chuàng)造價值.成都創(chuàng)新互聯(lián)公司全體員工將通過不懈努力,力爭成為客戶在信息化領(lǐng)域中值得長期信賴的合作伙伴。

 
 
 
  1. package com.jagie.test
  2. import java.io. 
  3. import jxl.
  4. import jxl.write.
  5. import jxl.format.
  6. import java.util.
  7. import java.awt.Color
  8. public class Test 

寫一個JSP,來利用Test這個javabean輸出excel文檔。

 
 
 
  1. <%@page import="com.jagie.test.Test" %> 
  2. <%  
  3. response.reset();  
  4. response.setContentType("application/vnd.ms-excel");  
  5. Test.writeExcel(response.getOutputStream());  
  6. %> 

這樣就大功告成了,你用ie訪問test_excel.JSP就能在ie里面打開動態(tài)生成的excel文檔了。一點(diǎn)亂碼也沒有。

也許有人會問:response.reset();可不可以不要這一句,我的建議是一定要寫,除非你能保證response的buffer里面沒有別的東西。

還有人也許會問:我在JSP開頭加上< %@page contentType="application/vnd.ms-excel;charset=GBK" %>這一句,去掉response.setContentType("application/vnd.ms-excel");行不行?回答這個問題很簡單,就是查看JSP服務(wù)器編譯JSP后生成的java代碼,如果改成這樣,我的welogic7編譯test_excel.JSP后生成的java文件的示意性代碼是這樣的:

 
 
 
  1. public void _jspService(javax.servlet.http.HttpServletRequest
    request,   
  2. javax.servlet.http.HttpServletResponse response) throws 
    java.io.IOException,   
  3. javax.servlet.ServletException  catch (Throwable __ee)   
  4.  
  5.  
  6.         //before final close brace...  
  7.     } 

很明顯,屏蔽 response.setContentType("application/vnd.ms-excel");后,在 Test.writeExcel(response.getOutputStream());之前,response.reset(); 之后沒有設(shè)置 response contenttype的正確類型,當(dāng)然輸出為亂碼了。而正確輸出excel的JSP的編譯后源碼是這樣的:

 
 
 
  1. public void _jspService(javax.servlet.http.HttpServletRequest request,   
  2. javax.servlet.http.HttpServletResponse response) throws 
    java.io.IOException,  
  3. javax.servlet.ServletException   
  4.      catch (Throwable __ee)   
  5.  
  6.  
  7.         //before final close brace...  
  8.     } 

大家可以看到在response.reset();之后,Test.writeExcel(response.getOutputStream());之前正確的設(shè)置了response的輸出內(nèi)容。所以輸出就正常了。


文章標(biāo)題:Jsp輸出excel文檔和中文亂碼問題的解決
標(biāo)題來源:http://www.dlmjj.cn/article/djieoio.html