关于jsp页面转换成excel格式下载遇到问题及解决
jsp頁面轉(zhuǎn)成excel格式的實現(xiàn)思路:
1.使用poi包:poi-bin-3.9-20121203
下載連接地址:http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz
? import org.apache.poi.hssf.usermodel.*;
? 這個包可以幫助實現(xiàn)下載excel模版的設(shè)計,簡單易用,功能也非常強(qiáng)大。
?
1 HSSFWorkbook workBook = new HSSFWorkbook();//是操作Excel2003的版本,擴(kuò)展名是xls 2 3 HSSFSheet sheet = workBook.createSheet();//創(chuàng)建工作簿 4 5 HSSFRow row1 = sheet.createRow(1);//創(chuàng)建一行 6 7 HSSFCell cell0 = row1.createCell(0);//創(chuàng)建單元格 8 9 cell0.setCellValue("對賬單ID:");//給單元格賦值?
2.將創(chuàng)建的excel文檔轉(zhuǎn)換成需要輸出的流:可以是文件流放在硬盤中,也可以是輸出流輸出到瀏覽器供下載?! ? 文件流:FileOutputStream
1 FileOutputStream fos = new FileOutputStream("F://workbook.xls"); 2 workBook.write(fos); 3 fos.close();◆? 輸出流 :response.getOutputStream()
1 response.reset(); 2 response.setContentType("application/vnd.ms-excel;charset=gbk"); 3 response.setHeader("Content-Disposition", "attachment;filename=account.xls"); 4 OutputStream out = response.getOutputStream(); 5 workBook.write(out); 6 out.close();◆ tip:
*response.reset();清除首部的空白行
?? ??? ? * getResponse的getWriter()方法連續(xù)兩次輸出流到頁面的時候,第二次的流會包括第一次的流,
?? ??? ? * 所以可以使用response.reset或者resetBuffer的方法。
?? ??? ? * resetBuffer方法與reset方法的區(qū)別是,頭和狀態(tài)碼沒有清除。
???????? 如果發(fā)現(xiàn)這樣設(shè)置后瀏覽器端并沒有彈出【文件另存為】選擇路徑窗口,請檢查下前面代碼是否出現(xiàn):
1.response.setContentType("text/html;charset=UTF-8");//設(shè)置編碼格式
?? ?? 2.PrintWriter out = response.getWriter();導(dǎo)致無法確定輸出流
3、excel文件名為中文時亂碼或者出現(xiàn)未知文件類型錯誤時,考慮用URLEncoder對文件名進(jìn)行轉(zhuǎn)碼
???
??
1 String name = java.net.URLEncoder.encode(fileName, "utf-8"); 2 response.setContentType("application/vnd.ms-excel;charset=utf-8"); 3 response.setHeader("Content-Disposition", "attachment;filename="+name.toString()+".xls"); 4 OutputStream out = response.getOutputStream(); 5 workBook.write(out); 6 out.close();?
?? ????
轉(zhuǎn)載于:https://www.cnblogs.com/zhutouying/p/3192813.html
總結(jié)
以上是生活随笔為你收集整理的关于jsp页面转换成excel格式下载遇到问题及解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Exchange2003-2010迁移系
- 下一篇: 陶哲轩实分析引理10.4.1:反函数定理