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

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

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

    ……天天向上

    好的想法總是無窮無盡

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    使用jxl導出大數據量EXCEL時內存溢出的解決辦法

    1、通過jx1最新版本的采用臨時文件寫入EXCEL功能,設定臨時文件的位置,可以有效的避免內存溢出:
                wbSetting.setUseTemporaryFileDuringWrite(true);   
                wbSetting.setTemporaryFileDuringWriteDirectory(new File(excelPath));//臨時文件夾的位置


    2、EXCEL獲取的list集合先讀取數據總行數,再通過ROWNUM進行控制,設定每次讀取多少行數據,比如一個List設定為50000;
                WorkbookSettings wbSetting = new WorkbookSettings();   
                wbSetting.setUseTemporaryFileDuringWrite(true);   
                wbSetting.setTemporaryFileDuringWriteDirectory(new File(excelPath));//臨時文件夾的位置
                workbook = Workbook.createWorkbook(new File(fullPath),wbSetting);
                int returnCount=0;
                if(null!=pager)
                {
                    returnCount = BrasDatabase.getReturnCount(pager.getStartTime(),
                            pager.getEndTime(), pager);
                }

                if (returnCount > 0) {    
                    pager.setPageSize(50000);
                    pager.setTotalRows(returnCount);// 獲取總行數
                    pager.setNewTotalPages(pager.getTotalRows()); // 總頁數
                    for (int i = 1; i 
    <= pager.getTotalPages(); i++) {
                        pager.setCurrentPage(i); // 當前頁面d
                        List<BrasAuth
    > list = BrasDatabase
                                .getBrasAuthResultByIpToExcelList(pager
                                        .getStartTime(), pager.getEndTime(), pager);
                        this.createExcel(list,excelFilePath);
                        list.clear();
                    }
                }



    3、在寫入EXCEL的時候,將讀取的LIST分割,每50000條數據生成一個EXCEL的sheet(一個sheet最多能存儲60000多行數據),再寫入,寫入的時候,如果設置了采用臨時文件寫入的話,jx1會自動采用生成臨時文件的方式寫入EXCEL:
            for(int i=1;i<=list.size();i++)
            {
                if(i%50000
    ==0)
                
    {
                    sheetName
    =format.format(new Date());
                    toExcel(list.subList(reNum, i),sheetName);
                    reNum
    =i;
                
    }
            }

    posted on 2012-07-16 11:48 japper 閱讀(8903) 評論(1)  編輯  收藏 所屬分類: Java

    評論

    # re: 使用jxl導出大數據量EXCEL時內存溢出的解決辦法 2015-08-04 20:04 林秀東

    開啟寫臨時文件功能不懂用,我的報:系統找不到指定路勁,路徑我檢查過了的,請問樓主還有更加詳細的代碼嗎?謝謝  回復  更多評論   

    主站蜘蛛池模板: 九九精品免费视频| 免费av欧美国产在钱| 亚洲精品一级无码鲁丝片| 国产成人va亚洲电影| 日韩特黄特色大片免费视频| 亚洲色偷精品一区二区三区| 好男人www免费高清视频在线| 亚洲人成在线中文字幕| 无人在线观看免费高清视频 | 国产亚洲成av人片在线观看| 一个人看的免费观看日本视频www| 免费成人在线观看| caoporn成人免费公开| 久久久久噜噜噜亚洲熟女综合| 国产成人精品免费视频大全| 亚洲成AV人片在线观看无码| 91大神免费观看| 亚洲人成图片网站| 午夜国产羞羞视频免费网站| 一级毛片免费在线播放| 久热综合在线亚洲精品| 99热精品在线免费观看| 亚洲一区电影在线观看| 四虎影视永久免费观看网址| 国产精品视频全国免费观看| 亚洲伊人tv综合网色| 成人免费a级毛片无码网站入口 | 久久不见久久见免费影院| 亚洲精品精华液一区二区| 亚洲免费视频一区二区三区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 免费福利在线观看| 亚洲国产精品无码成人片久久| 国产成人精品免费视频大| 国产亚洲精品精品精品| 国产亚洲婷婷香蕉久久精品| 成人免费毛片内射美女APP| 一级女性全黄久久生活片免费| 久久久无码精品亚洲日韩蜜桃 | 最新国产成人亚洲精品影院| 亚洲AV无码乱码在线观看牲色 |