<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文件進行合并。
    首先,測試將全部數(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ù)的增大,速度一定程度上增快。

    然后,進行整合,由于將多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對文件進行合并速度較快,但有數(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ā)生假死機現(xiàn)象
    60000數(shù)據(jù)/sheet 發(fā)生假死機現(xiàn)象

    但是導(dǎo)出的數(shù)據(jù)為XML不是純正的Excel文件,如使用Excel文件的xls后綴保存,打開文件會彈出警告,但不影響閱讀。
    且經(jīng)實際測試,在Access2007和Access2003中可通過導(dǎo)入外部數(shù)據(jù)的方式,將導(dǎo)出的XML導(dǎo)入進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
    主站蜘蛛池模板: 亚洲人成网亚洲欧洲无码| 亚洲黄色一级毛片| 添bbb免费观看高清视频| 成年美女黄网站色大免费视频| 亚洲国产精品线观看不卡| 99久久免费国产香蕉麻豆 | sihu国产精品永久免费| 一本色道久久88亚洲综合 | 国产色爽免费无码视频| 国产亚洲精品资在线| 中文在线观看免费网站| 国产亚洲综合成人91精品| 久久精品视频免费播放| 亚洲成在人线电影天堂色| 毛片免费在线视频| 日韩成人精品日本亚洲| jlzzjlzz亚洲乱熟在线播放| 最新国产乱人伦偷精品免费网站| 亚洲AV综合色一区二区三区| 2021在线永久免费视频| 亚洲熟伦熟女新五十路熟妇 | 国产成人精品免费视频大全麻豆 | 亚洲精品视频在线观看免费 | 久久精品视频免费播放| 亚洲成AV人片久久| 国产在线观看www鲁啊鲁免费| jzzjzz免费观看大片免费| 亚洲精品国产成人专区| 毛片a级毛片免费播放下载| 黄页网站在线视频免费| 亚洲av鲁丝一区二区三区| 福利免费观看午夜体检区| 美女被艹免费视频| 亚洲男人天堂2017| 黄a大片av永久免费| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 免费看www视频| av永久免费网站在线观看| 亚洲毛片在线观看| 国产国产人免费人成免费视频| 久久九九全国免费|