?? 111.txt
字號:
關(guān)于POI的使用
前段時間做個一個項(xiàng)目,其中客戶有一個需求是excel和程序的關(guān)聯(lián)。下面把一些思路和大家一起討論,歡迎大家多提寶貴意見。
除了畫面檢出的數(shù)據(jù)生成Excel報表外,還需要通過修改Excel報表上傳來更新DB的數(shù)據(jù),客戶指定要求使用POI來控制Excel。
1,比較簡單的情況
第一次接觸POI,因?yàn)榭蛻粜枰?guī)定好了要求的報表樣式,如果用代碼來控制所有的Excel內(nèi)容的情況,代碼量會非常的大,需要指定cell的大小,樣式,字體等等。所以想用模板的方式,就是為每個excel報表制作一個模板,模板中定義好了報表的固定部分,數(shù)據(jù)部分只有第一條作為sample。在生成Excel文件前,先讀入模板對象,然后模板對象和查詢的數(shù)據(jù)組合成需要的excel文件。
2,比較復(fù)雜的情況
客戶希望通過配置文件來定制生成的Excel文件。我的想法是通過xml文件來設(shè)置excel內(nèi)的項(xiàng)目(cell的大小,樣式,字體,分頁等等)??蛻粲痔岢鲰?xiàng)目的順序也是可定制的,還需要下載到本地以后修改然后上傳,更新DB。這種情況比較難實(shí)現(xiàn)。
解決的方法
1,定制模板,提取出共同的部分。在生成excel的時候參照使用,然后通過POI的 cell拷貝功能直接得到樣式。
2,動態(tài)部分通過讀取配置文件和一個排序的算法,生成需要的項(xiàng)目(這個地方出了 很多的問題)
3,讀取excel的時候因?yàn)榍懊娴臄?shù)據(jù)都是可變的,這里也出了很多問題(數(shù)據(jù)讀取錯 誤,越界等等)?,F(xiàn)在的解決辦法比較笨,就是一個個讀取比對,如果是就填入相應(yīng)的 對象,最后再來提交數(shù)據(jù)庫進(jìn)行更新。
關(guān)于Excel讀取這里覺得應(yīng)該還會有更好的辦法來解決(讀取的樣式不固定,然后要更新相應(yīng)的DB)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -