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

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

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

    隨筆-314  評論-209  文章-0  trackbacks-0

     

    試共同條件:
    數(shù)據(jù)總數(shù)為110011條,每條數(shù)據(jù)條數(shù)為19個字段。
    電腦配置為:P4 2.67GHz,1G內(nèi)存。

    一、POI、JXL、FastExcel比較
    POI、JXL、FastExcel均為java第三方開源導(dǎo)出Excel的開源項目。

    導(dǎo)出方案一:一次性全部導(dǎo)出到一個Excel文件中。
    實際情況均報OutOfMemery錯誤,以下數(shù)據(jù)為報OutOfMemery數(shù)據(jù)時,數(shù)據(jù)到的最大數(shù)據(jù)數(shù)目,如表1所示:
    表1:報OutOfMemery錯誤時所能處理的數(shù)據(jù)量
    FastExecl POI JXL
    10000數(shù)據(jù)/sheet 37465 28996 42270
    5000數(shù)據(jù)/sheet 39096 31487 46270
    3000數(shù)據(jù)/sheet 39000 32493 47860
    小結(jié):
    多分sheet能一定程度上減少內(nèi)存的使用,但是均因為程序中創(chuàng)建的Cell(即為Excel中的一個單元格)無法釋放,消耗大量內(nèi)存,導(dǎo)致OutOfMemery錯誤;JXL表現(xiàn)最好,創(chuàng)建Cell內(nèi)存使用較少。

    導(dǎo)出方案二:先分多個Excel文件將數(shù)據(jù)全部導(dǎo)出,然后對多個Excel文件進(jìn)行合并。
    首先,測試將全部數(shù)據(jù)導(dǎo)出所用的時間,如表2所示,數(shù)據(jù)均測試三次取平均。
    表2:導(dǎo)出全部數(shù)據(jù)所用時間

    FastExecl POI JXL
    10000數(shù)據(jù)/文件 68s 33s 30s
    5000數(shù)據(jù)/文件 68s 32s 33s
    3000數(shù)據(jù)/文件 59s 33s 39s
    小結(jié):
    均成功導(dǎo)出Excel文件,原因是導(dǎo)出一個Excel文件,釋放所占用的創(chuàng)建Cell的內(nèi)存。
    FastExecl表現(xiàn)最差,POI表現(xiàn)穩(wěn)定,JXL隨著數(shù)據(jù)的增大,速度一定程度上增快。

    然后,進(jìn)行整合,由于將多Excel合并成一個Excel文件的功能只有POI所有,故使用POI測試,結(jié)果如表3所示。
    注:數(shù)據(jù)量大合并還會報OutOfMemery錯誤,故合并總數(shù)據(jù)量以5萬為準(zhǔn)。
    表3:合并5萬數(shù)據(jù)所用時間
    時間
    10000數(shù)據(jù)/文件 11s
    5000數(shù)據(jù)/文件 11s
    3000數(shù)據(jù)/文件 11s
    小結(jié):
    使用POI對文件進(jìn)行合并速度較快,但有數(shù)據(jù)量的限制。


    總結(jié):方案二比較可行,但是數(shù)據(jù)量有限制,為5萬條。


    二、導(dǎo)出XML 的電子表格
    導(dǎo)出的格式類似為純文本,能實現(xiàn)大數(shù)據(jù)量的存儲,并能實現(xiàn)分Sheet查看,且能添加簡單的樣式,符合項目要求。經(jīng)實際測試Excel2003和Excel2007均能識別并正常打開查看。使用時間測試如表4所示,數(shù)據(jù)均測試3次取平均。
    表4:生成全部數(shù)據(jù)所用時間
    時間
    10000數(shù)據(jù)/sheet 28.0秒
    20000數(shù)據(jù)/sheet 30.1秒
    30000數(shù)據(jù)/sheet 28.1秒
    40000數(shù)據(jù)/sheet 26.5秒
    50000數(shù)據(jù)/shee 28.2秒
    55000數(shù)據(jù)/sheet 26.8秒
    59000數(shù)據(jù)/sheet 30.1秒
    59500數(shù)據(jù)/sheet 發(fā)生假死機(jī)現(xiàn)象
    60000數(shù)據(jù)/sheet 發(fā)生假死機(jī)現(xiàn)象

    但是導(dǎo)出的數(shù)據(jù)為XML不是純正的Excel文件,如使用Excel文件的xls后綴保存,打開文件會彈出警告,但不影響閱讀。
    且經(jīng)實際測試,在Access2007和Access2003中可通過導(dǎo)入外部數(shù)據(jù)的方式,將導(dǎo)出的XML導(dǎo)入進(jìn)Access數(shù)據(jù)庫。

    三、總結(jié)
    項目要求是大數(shù)據(jù)量導(dǎo)出Excel文件,POI、JXL、FastExcel不能完全滿足要求;使用XML 的電子表格導(dǎo)出實現(xiàn)了大數(shù)據(jù)量導(dǎo)出,但是格式為XML不是純正的Excel文件,為曲線救國。兩種導(dǎo)出形式的比較,如表5所示。
    表5:合并5萬數(shù)據(jù)所用時間
    POI、JXL、FastExcel XML 的電子表格
    導(dǎo)出數(shù)據(jù)格式 為純Execl文件 為XML文件
    導(dǎo)出數(shù)據(jù)量 較大
    能否分Sheet
    能否添加樣式
    能否添加圖片 POI 能 不能
    導(dǎo)出數(shù)據(jù)能否導(dǎo)入Access
    posted on 2009-08-07 15:57 xzc 閱讀(1804) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲av日韩综合一区久热| 免费国产在线精品一区| 最近中文字幕mv免费高清视频7 | 午夜高清免费在线观看| 最新亚洲人成无码网www电影| 国内精品99亚洲免费高清| 1000部拍拍拍18勿入免费视频软件 | 亚洲成在人线aⅴ免费毛片| 羞羞网站免费观看| 亚洲黄色免费观看| 亚洲国产V高清在线观看| 日本最新免费网站| 精品乱子伦一区二区三区高清免费播放 | 精品国产免费观看| 一级毛片在线免费看| 美女尿口扒开图片免费| 亚洲熟妇色自偷自拍另类| 亚洲av再在线观看| 日韩精品无码区免费专区| 日韩精品无码免费专区午夜| 亚洲欧美日韩一区二区三区 | 亚洲国产成人片在线观看| 好大好硬好爽免费视频| 久久国产精品一区免费下载| 婷婷亚洲综合一区二区| 亚洲人成电影青青在线播放| 在线亚洲午夜理论AV大片| 热99re久久免费视精品频软件| 日韩精品久久久久久免费| 一级大黄美女免费播放| 妞干网在线免费视频| 国色精品va在线观看免费视频| 在线视频亚洲一区| 国产成人亚洲精品| 99ri精品国产亚洲| 亚洲国产三级在线观看| 国产成人精品亚洲精品| 免费日韩在线视频| 日本一区免费电影| 妞干网在线免费视频| 中文字幕无码不卡免费视频|