piliskys

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            25 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
               jsp導出excel有很多種方法,在此介紹本人認為簡單的一種,
          前提:能在jsp頁面取到要導出的內容,即 request能得到導出的數據,然后代碼如下
          <%@ page language="java" contentType="text/html;charset=gb2312"%>
          <%@ page language="java"  import="java.util.*,
                                            org.apache.poi.hssf.usermodel.HSSFWorkbook,
                                            org.apache.poi.hssf.usermodel.HSSFSheet,
                                            org.apache.poi.hssf.usermodel.HSSFRow,
                                            org.apache.poi.hssf.usermodel.HSSFCell,
                                            java.text.DecimalFormat
          "
          %>
          <%
              response.reset();
              response.setContentType(
          "application/msexcel");
              response.setHeader(
          "Content-disposition","inline;filename=untitled.xls");//定義文件名
              DecimalFormat f 
          = new DecimalFormat("#,##0.00");
              HSSFWorkbook wb 
          = new HSSFWorkbook();
              HSSFSheet sheet 
          = wb.createSheet("sheet1");
              
          String[] taxpayerid = request.getParameterValues("taxpayerid");
              
          String[] taxpayername = request.getParameterValues("taxpayername");
              
          String[] tax = request.getParameterValues("tax");
              
          String[] taxreduce = request.getParameterValues("taxreduce");
              
          String[] deratereasonname = request.getParameterValues("deratereasonname");
              
          String[] orgdeptname = request.getParameterValues("orgdeptname");
              
          String[] operatortime = request.getParameterValues("operatortime");
              
          String[] declaredate = request.getParameterValues("declaredate");
              
          String[] taxtermbegin = request.getParameterValues("taxtermbegin");
              
          String[] taxtermend = request.getParameterValues("taxtermend");

          //以下以寫表頭
                  
          //表頭為第一行
                HSSFRow row 
          = sheet.createRow((short) 0);
          //定義10列
                   HSSFCell cell1 
          = row.createCell((short) 0);
                  HSSFCell cell2 
          = row.createCell((short) 1);
                  HSSFCell cell3 
          = row.createCell((short) 2);
                  HSSFCell cell4 
          = row.createCell((short) 3);
                  HSSFCell cell5 
          = row.createCell((short) 4);
                  HSSFCell cell6 
          = row.createCell((short) 5);
                  HSSFCell cell7 
          = row.createCell((short) 6);
                  HSSFCell cell8 
          = row.createCell((short) 7);
                  HSSFCell cell9 
          = row.createCell((short) 8);
                  HSSFCell cell10 
          = row.createCell((short) 9);

                  cell1.setEncoding((short) 
          1);
                  cell1.setCellType(
          1);
                  cell2.setEncoding((short) 
          1);
                  cell2.setCellType(
          1);
                  cell3.setEncoding((short) 
          1);
                  cell3.setCellType(
          1);
                  cell4.setEncoding((short) 
          1);
                  cell4.setCellType(
          1);
                  cell5.setEncoding((short) 
          1);
                  cell5.setCellType(
          0);
                  cell6.setEncoding((short) 
          1);
                  cell6.setCellType(
          1);
                  cell7.setEncoding((short) 
          1);
                  cell7.setCellType(
          1);
                  cell8.setEncoding((short) 
          1);
                  cell8.setCellType(
          1);
                  cell9.setEncoding((short) 
          1);
                  cell9.setCellType(
          1);
                  cell10.setEncoding((short) 
          1);
                  cell10.setCellType(
          1);
          //定義表頭的內容
                  cell1.setCellValue(
          "納稅人管理碼");
                  cell2.setCellValue(
          "納稅人名稱");
                  cell3.setCellValue(
          "稅種");
                  cell4.setCellValue(
          "減免金額");
                  cell5.setCellValue(
          "減免原因");
                  cell6.setCellValue(
          "征收單位");
                  cell7.setCellValue(
          "操作日期");
                  cell8.setCellValue(
          "申報日期");
                  cell9.setCellValue(
          "所屬期起");
                  cell10.setCellValue(
          "所屬期止");


              
          for(int i= 0; i < taxpayerid.length; i++){
          //定義數據從第二行開始       
            row 
          = sheet.createRow((short) i+1);
                          cell1 
          = row.createCell((short) 0);
                          cell2 
          = row.createCell((short) 1);
                          cell3 
          = row.createCell((short) 2);
                          cell4 
          = row.createCell((short) 3);
                          cell5 
          = row.createCell((short) 4);
                          cell6 
          = row.createCell((short) 5);
                          cell7 
          = row.createCell((short) 6);
                          cell8 
          = row.createCell((short) 7);
                          cell9 
          = row.createCell((short) 8);
                          cell10 
          = row.createCell((short) 9);

                         cell1.setEncoding((short) 
          1);
                         cell1.setCellType(
          1);
                         cell2.setEncoding((short) 
          1);
                         cell2.setCellType(
          1);
                         cell3.setEncoding((short) 
          1);
                         cell3.setCellType(
          1);
                         cell4.setEncoding((short) 
          1);
                         cell4.setCellType(
          1);
                         cell5.setEncoding((short) 
          1);
                         cell5.setCellType(
          0);
                         cell6.setEncoding((short) 
          1);
                         cell6.setCellType(
          1);
                         cell7.setEncoding((short) 
          1);
                         cell7.setCellType(
          1);
                         cell8.setEncoding((short) 
          1);
                         cell8.setCellType(
          1);
                         cell9.setEncoding((short) 
          1);
                         cell9.setCellType(
          1);
                         cell10.setEncoding((short) 
          1);
                         cell10.setCellType(
          1);

          //填充內容

                  cell1.setCellValue(taxpayerid[i]);
                  cell2.setCellValue(taxpayername[i]);
                  cell3.setCellValue(tax[i]);
                  cell4.setCellValue(f.parse(taxreduce[i].trim()).doubleValue());
                  cell5.setCellValue(deratereasonname[i]);
                  cell6.setCellValue(orgdeptname[i]);
                  cell7.setCellValue(operatortime[i].substring(
          0,16));
                  cell8.setCellValue(declaredate[i].substring(
          0,16));
                  cell9.setCellValue(taxtermbegin[i].substring(
          0,16));
                  cell10.setCellValue(taxtermend[i].substring(
          0,16));
              }
              wb.write(response.getOutputStream());
              response.getOutputStream().flush();
              response.getOutputStream().close();
          %>


          代碼比較簡單,首先把取得到的數據定義為一系列數組,然后定義表頭,然后把取得的數據做為excel數據對應的放入,對poi有何疑問請參考http://java2.5341.com/3.html
          posted on 2005-11-23 10:27 霹靂火 閱讀(11698) 評論(12)  編輯  收藏

          評論

          # re: jsp導出excel 2006-02-15 08:37 ts
          你們自己測過嗎,報錯:
          Note: sun.tools.javac.Main has been deprecated.
          /fdtj/test.jsp:11: Class org.apache.poi.hssf.usermodel.HSSFWorkbook not
          found in import.
          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          ^
          /fdtj/test.jsp:12: Class org.apache.poi.hssf.usermodel.HSSFSheet not found
          in import.
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          ^
          /fdtj/test.jsp:13: Class org.apache.poi.hssf.usermodel.HSSFRow not found
          in import.
          import org.apache.poi.hssf.usermodel.HSSFRow;
          ^
          /fdtj/test.jsp:14: Class org.apache.poi.hssf.usermodel.HSSFCell not found
          in import.
          import org.apache.poi.hssf.usermodel.HSSFCell;
            回復  更多評論
            

          # re: jsp導出excel 2006-02-15 11:00 霹靂火
          如果我沒測試過我就不會發上來,樓上的你自己沒有導入包,這種應該算你的失誤啊  回復  更多評論
            

          # re: jsp導出excel 2006-03-08 14:39 請問,這是什么故障啊?
          exception

          org.apache.jasper.JasperException
          org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
          org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
          org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


          root cause

          java.lang.NullPointerException
          org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:116)
          org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
          org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
          org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

          請問,這是什么故障啊?  回復  更多評論
            

          # re: jsp導出excel 2006-03-10 14:24 霹靂火
          NullPointerException 你要確保你的參數能從頁面上取到值,所以必須為input,提交后要能由request得到,可能是你的沒有得到值   回復  更多評論
            

          # re: jsp導出excel 2006-07-10 21:26 jsp郁悶者
          如何同時設置excel的紙張為橫向?  回復  更多評論
            

          # re: jsp導出excel 2008-01-02 10:16
          哪可以下POI的JAR文件  回復  更多評論
            

          # re: jsp導出excel 2008-04-07 00:32 BinTime
          很好,找了好久了!  回復  更多評論
            

          # re: jsp導出excel 2008-04-21 11:06 cfhjava
          為什么我的是亂碼了。<%@ page language="java" contentType="text/html;charset=utf-8"%>
          我是JSP的。請幫!  回復  更多評論
            

          # re: jsp導出excel[未登錄] 2008-12-20 23:22 JAVA
          OK,正在找....  回復  更多評論
            

          # re: jsp導出excel 2008-12-28 00:51 mya
          String[] taxtermend = request.getParameterValues("taxtermend");
          請問右邊這個taxtermend是頁面上表格的ID還是什么名稱?  回復  更多評論
            

          # re: jsp導出excel 2009-05-31 08:42 guest
          <%@ page language="java" contentType="text/html;charset=GBK"%>
          這樣就OK  回復  更多評論
            

          # re: jsp導出excel 2009-06-08 11:47 文東
          這個東西是怎么去調用的啊  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宜城市| 昌都县| 马关县| 新化县| 日土县| 金乡县| 拜城县| 布尔津县| 临朐县| 东辽县| 左云县| 柯坪县| 宽城| 恭城| 铅山县| 蒙城县| 台湾省| 合山市| 承德市| 西峡县| 永寿县| 杭锦后旗| 天柱县| 绥化市| 沙坪坝区| 六安市| 大方县| 灵山县| 巴中市| 麻江县| 永胜县| 丽江市| 广东省| 宾阳县| 龙门县| 萍乡市| 嵊泗县| 永昌县| 乡城县| 铁力市| 西贡区|