<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評論-64  文章-79  trackbacks-1
    我們用到了JXL的一些知識,關于JXL我懂得也不是很多,但是找到了一篇很不錯的文章,我想也該推薦大家去看看。好東西,自然是大家分享。

    http://blog.csdn.net/airskys/archive/2005/03/31/334548.aspx

            接下來看看我們的通用程序是怎么寫的。其實也沒有什么敲門,只是傳進去了一個將要從數據庫中讀出數據的SQL語句,將執行出來的結果寫入到 Excel中顯示出來而已。

     

    import jxl.Workbook;
    import jxl.write.Label;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;


    public void getExcelResult(String sql,OutputStream os) throws SQLException,IOException, WriteException{

                       
    //首先獲取結果集
                        
    //這里獲取RowSet的方法可以自己寫
                         CachedRowSet crs = this.GetResult(sql);

                         
    //然后將結果集轉化為Excel輸出
         
    //初始化工作

         WritableWorkbook wwb 
    = null;

         
    try {
                                wwb 
    = Workbook.createWorkbook(os);

              
    //創建工作表
               jxl.write.WritableSheet ws = wwb.createSheet("Sheet1"0);
                                
    //逐行添加數據
             int i = 0;
             
    while (crs.next()){
                 
    for (int j=1;j<=crs.getMetaData().getColumnCount();j++){
                                      String s 
    = crs.getString(j);
                     Label labelC 
    = new Label(j-1, i, s);
                     ws.addCell(labelC);
                }
                    i
    ++;
            }

            } 
    catch (Exception e) {
                logger.error(
    "export excel error:"+e);
                e.printStackTrace();
            } 
    finally {
                
    if (wwb != null){
                    wwb.write();
                    wwb.close();
                }
            }
            
        }

            看到了吧!其實這個方法很簡單,就是提供一個查詢的SQL語句和一個OutPutStream對象就可以了。

            接下來看看我是怎么在JSP頁面中調用并且生成文檔,然后提示用戶是打開還是保存的。

     

    <body>
        
    <%

            response.reset();
            response.setContentType(
    "application/vnd.ms-excel");        
            String sql
    =request.getParameter("sql");
            Sqlconn.getExcelResult(sql,response.getOutputStream());
        
    %>    
    </body>

            在前一個頁面中提交要查詢的SQL語句,在這里得到后,調用getExcelResult()方法創建Excel文件,就在這里一步完成了。可以看到,這里的OutPutStream對象我使用了Response的getOutPutSteam()方法得到了一個OutPutSteam,執行的結果將會對response進行操作。在此之前,已經設定JSP文件的ContentType為application/vnd.ms-excel,即會得到這個response對象操作形成的excel文件。

            當然,這樣執行出來的結果不是很好看。所以,可以想辦法修改生成文檔的樣式等。關于這方面,上面的地址中有很詳細的介紹。非常使用。大家可以根據自己的情況寫出各種各樣的樣式來,真是不錯啊。

    posted on 2007-10-19 19:43 飛鳥 閱讀(1073) 評論(2)  編輯  收藏 所屬分類: JAVA

    評論:
    # re: Java生成Excel文件通用程序 2008-05-23 17:23 | 懶人
    能不能不出現那個提示?  回復  更多評論
      
    # re: Java生成Excel文件通用程序[未登錄] 2008-05-23 19:20 | 飛鳥
    這個沒辦法,瀏覽器為了安全必須提示用戶  回復  更多評論
      
    主站蜘蛛池模板: 国产91色综合久久免费| 国产在线观看无码免费视频| 国产成人福利免费视频| 亚洲AV无码码潮喷在线观看 | 亚洲熟妇无码一区二区三区导航 | 亚洲AV网站在线观看| 福利片免费一区二区三区| 免费国产怡红院在线观看| 337P日本欧洲亚洲大胆艺术图| 免费一级做a爰片性色毛片| 黄色网页免费观看| 色久悠悠婷婷综合在线亚洲 | 999国内精品永久免费视频| 国产成人精品日本亚洲18图| 最近的中文字幕大全免费版| 亚洲AV无码一区二区三区牲色| 国产免费观看视频| 国产精品免费久久久久久久久| 亚洲国产精品无码久久SM| 久久免费精彩视频| 亚洲精品综合在线影院| 啊v在线免费观看| a级片免费在线播放| 亚洲日韩中文字幕天堂不卡| 女人与禽交视频免费看| 五月天婷婷免费视频| 亚洲ⅴ国产v天堂a无码二区| 在线永久免费的视频草莓| 国产亚洲精品美女| 亚洲成Av人片乱码色午夜| 野花高清在线观看免费3中文| 无人视频免费观看免费视频| 亚洲国产精品久久久久网站| 免费无码又爽又刺激聊天APP| 黄网站在线播放视频免费观看| 久久亚洲精品中文字幕三区| 成人无码区免费视频观看| 国产国产人免费人成成免视频| 亚洲精品在线不卡| 亚洲精品国产精品乱码不卡| 免费人成网站在线观看10分钟|