傻子一個

          一路走來~~

           

          java寫大數據到 excel文件

          來自:javaeye網站
          biguan 寫道
          tidus2005 寫道
          biguan 寫道
          我同事最近要把1000萬條記錄從數據庫導到excel里,在我的幫助下解決了。
          呵呵。原創的。
          因每個excel最多放5萬條,所以他把這1000萬條記錄記錄放到了200個excel文件里。用時40分鐘。
          采用基本的jdbc技術+io流。
          1.先進一個excel文件。填上要的表頭和兩條記錄。然后另存為網頁a.html。
          2.用記事本打開網頁a.html,就看到源代碼。把源代碼分成三部分:頭+記錄行+尾。
          3.用jdbc訪問數據庫,循環遍歷,每5萬條,用io流寫文件,格式為"xxx.xls”。
          a.html的頭代碼+記錄行代碼(已經被5萬條替換)+尾代碼。



          沒有看太懂你的意思, 用html是干什么?

          用java的io寫txt格式的文件,大家都會吧?

          其實,也可以用java的io寫xls格式的文件的。關鍵是你得按一定的excel文件格式寫,才能保證生成的是excel文件。

          這個格式怎樣得到呢?方法是這樣:

          你先建一個excel文件,如a.xls。填上兩條偽數據。然后另存為網頁,即htm格式,如a.htm。

          然后,用記事本打開htm格式的a.htm,這樣excel文件格式代碼就暴露在你面前。

          剩下的事,呵呵,就是把a.htm源代碼的偽數據部分,替成數據庫里的數據,然后把替換后的整個a.htm源代碼,用java的io寫成一個后綴為xls的文件。就打完收工了。

          注意:為了不給內存增加壓力,要把a.htm源代碼分成三部分:頭(偽數據部分 前的代碼) + 偽數據部分 + 尾(偽數據部分 后的代碼)。
          先把 頭 寫到文件,并flush。然后是 偽數據部分 ,替一條數據庫里的記錄就寫到文件里,并flush。最后把 尾 寫到文件,并flush。


          呵呵,你的方法很好啊,其實我本來也想到直接用io生成XLS文件的,不會我是直接用記事本打開的,結果看到亂碼 - -

          還有寫io你提到了重點,就是要經常flush,不然數據大就OOM了。

          我的方法也主要就是拼字符串,還有就是從數據庫讀取的數據采用分頁的形式,用list分次讀取出來,結束采用list.clear()一下,及時把資源釋放。

          posted on 2009-07-11 23:21 老文 閱讀(3134) 評論(1)  編輯  收藏 所屬分類: 網絡經典文章

          評論

          # re: java寫大數據到 excel文件[未登錄] 2010-08-13 12:14 liuy

          為什么不用java的nio呢?  回復  更多評論   

          導航

          常用鏈接

          留言簿(2)

          隨筆分類(29)

          收藏夾(1)

          My Work

          學習文章

          軟件使用

          最新隨筆

          最新評論

          主站蜘蛛池模板: 高陵县| 五大连池市| 资溪县| 凤冈县| 灵武市| 化州市| 大宁县| 枝江市| 荃湾区| 平和县| 公安县| 海南省| 永顺县| 水城县| 临武县| 中宁县| 乌什县| 贡嘎县| 梁平县| 东阿县| 晋江市| 大石桥市| 长海县| 北京市| 荥经县| 青田县| 晋州市| 祁东县| 铁岭市| 云龙县| 大丰市| 固原市| 齐齐哈尔市| 包头市| 无棣县| 南华县| 离岛区| 贡山| 安图县| 肥西县| 临清市|