傻子一個

          一路走來~~

           

          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 老文 閱讀(3135) 評論(1)  編輯  收藏 所屬分類: 網絡經典文章

          評論

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

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

          導航

          常用鏈接

          留言簿(2)

          隨筆分類(29)

          收藏夾(1)

          My Work

          學習文章

          軟件使用

          最新隨筆

          最新評論

          主站蜘蛛池模板: 沙雅县| 东辽县| 天祝| 苏州市| 大荔县| 枣庄市| 永福县| 道真| 盘山县| 苏州市| 宁国市| 浦城县| 延津县| 高要市| 德安县| 项城市| 江门市| 竹溪县| 昌乐县| 原平市| 军事| 青海省| 茂名市| 彰武县| 马公市| 舟曲县| 阜宁县| 柞水县| 嘉定区| 达日县| 虎林市| 孝昌县| 积石山| 景德镇市| 剑川县| 大安市| 长乐市| 九江县| 南城县| 临邑县| 诸城市|