close
後來其實同事有弄出了Form的版本. 不過有點麻煩, 麻煩的點在oracle 10g的核心Java是1.4, 但POI本身需要1.5以後的版本才有完整支援2007以後的格式..真是笨的可以
後來的做法是在Form上掛載POI的JAVA包, 再掛載java 1.5核心降轉(Retrotranslator)1.4的JAVA包, 就可以完成在Form上呼叫Excel讀取/寫入的功能
但這不能滿足Concurrent的功能...於是我們又弄了一隻新的程式....為了輸出2007 ->更小更新的Excel file ( 能支援一些怪功能是重點... )
這個解決方法的來源是sakuya提出的疑問, 他說ooxml不是只是單純的zip file嗎, 那為啥不能把檔案寫好之後再zip就好
之前從來沒想過這個問題... 只知道新版的excel是用純xml, 但沒仔細的研究過他的結構..
後來發現其實這樣搞還蠻簡單的, 就實作了...
其實實際上比較麻煩的是SHARED STRING跟SHEET這兩組的XML, 他的設計會讓重覆的字串提取到shared string裡面
然後樣式也會, 不過如果不考慮樣式的話就更簡單了, 找個空的excel file解開, 把shared string跟sheet替換掉就好
如果要改sheet的檔名還要再多一個ref要改
整個跑完大概會多4-5隻xml file, 剩的用舊的, 然後再zip->改成xlsx
但這裡在做的時候遇到另一個蠢問題...unix上內建的zip會依相對路徑來建構資料夾結構, 但在concurrent呼叫host的狀態下...
似乎路徑的移動更改相當困難, 造成zip的路徑嚴重錯誤..
所以後來又寫了另外的java程式來做檔案搬移刪除跟zip
但後來又發現一個蠢點..DB上的Java...1.4的核心...不能呼叫更改權限的code..只能呼叫host上的chmod...好爛....
( 1.5以後可以設定write權限, 1.7以後可以做 777的設定 )
oracle出品的東西品質有沒有這麼差呀~~~~~~~~~~~~~~~~`
後來的做法是在Form上掛載POI的JAVA包, 再掛載java 1.5核心降轉(Retrotranslator)1.4的JAVA包, 就可以完成在Form上呼叫Excel讀取/寫入的功能
但這不能滿足Concurrent的功能...於是我們又弄了一隻新的程式....為了輸出2007 ->更小更新的Excel file ( 能支援一些怪功能是重點... )
這個解決方法的來源是sakuya提出的疑問, 他說ooxml不是只是單純的zip file嗎, 那為啥不能把檔案寫好之後再zip就好
之前從來沒想過這個問題... 只知道新版的excel是用純xml, 但沒仔細的研究過他的結構..
後來發現其實這樣搞還蠻簡單的, 就實作了...
其實實際上比較麻煩的是SHARED STRING跟SHEET這兩組的XML, 他的設計會讓重覆的字串提取到shared string裡面
然後樣式也會, 不過如果不考慮樣式的話就更簡單了, 找個空的excel file解開, 把shared string跟sheet替換掉就好
如果要改sheet的檔名還要再多一個ref要改
整個跑完大概會多4-5隻xml file, 剩的用舊的, 然後再zip->改成xlsx
但這裡在做的時候遇到另一個蠢問題...unix上內建的zip會依相對路徑來建構資料夾結構, 但在concurrent呼叫host的狀態下...
似乎路徑的移動更改相當困難, 造成zip的路徑嚴重錯誤..
所以後來又寫了另外的java程式來做檔案搬移刪除跟zip
但後來又發現一個蠢點..DB上的Java...1.4的核心...不能呼叫更改權限的code..只能呼叫host上的chmod...好爛....
( 1.5以後可以設定write權限, 1.7以後可以做 777的設定 )
oracle出品的東西品質有沒有這麼差呀~~~~~~~~~~~~~~~~`
全站熱搜
留言列表