jsp頁面轉成excel格式的實作思路:
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.*;
這個包可以幫助實作下載下傳excel模版的設計,簡單易用,功能也非常強大。
1 HSSFWorkbook workBook = new HSSFWorkbook();//是操作Excel2003的版本,擴充名是xls
2
3 HSSFSheet sheet = workBook.createSheet();//建立工作簿
4
5 HSSFRow row1 = sheet.createRow(1);//建立一行
6
7 HSSFCell cell0 = row1.createCell(0);//建立單元格
8
9 cell0.setCellValue("對賬單ID:");//給單元格指派
2.将建立的excel文檔轉換成需要輸出的流:可以是檔案流放在硬碟中,也可以是輸出流輸出到浏覽器供下載下傳。 ◆ 檔案流: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()方法連續兩次輸出流到頁面的時候,第二次的流會包括第一次的流,
* 是以可以使用response.reset或者resetBuffer的方法。
* resetBuffer方法與reset方法的差別是,頭和狀态碼沒有清除。
如果發現這樣設定後浏覽器端并沒有彈出【檔案另存為】選擇路徑視窗,請檢查下前面代碼是否出現:
1.response.setContentType("text/html;charset=UTF-8");//設定編碼格式
2.PrintWriter out = response.getWriter();導緻無法确定輸出流
3、excel檔案名為中文時亂碼或者出現未知檔案類型錯誤時,考慮用URLEncoder對檔案名進行轉碼

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();