關於POI列合併的問題

在做POI處理Excel的時候碰到的一個問題,就是POI列合併的問題,如圖:


因爲對POI的套路不是很熟,所以也是摸索的寫着,一開始是這麼寫的



先不論寫沒寫對,導出的結果是這樣的



我擦咧!!!爲啥會顯示在上面???至今這個問題我也沒搞懂


於是,我又改代碼


改成這樣:



結果是這樣的:


乾脆不顯示了,我那個火大啊!!!一天時間全浪費在這上面了

還是在百度上面找答案,說到這裏,不得不吐槽百度上面的答案了,千篇一律,互相抄襲轉載,難道你們碰到永遠是一樣的問題??。有些還好,遇到問題會貼出來。有些答案根本說的不明不白,受衆不一樣,像我這樣的菜鳥根本不能理解。

解決問題的參考的文章在這:



http://blog.csdn.net/zhangxinyuneil/article/details/34139393



看了下,發現這位博主的bodyCell.setCellVlue();是寫在上面的,如下圖:


我好像明白了什麼,又不太確信

我的List<Map>數據是這樣的

要說一下的是一開始我List<Map>的值是【{“count“=共計””}{“product_name”=“xxx元”}{"product_name"=“”}{。。。}{。。。}】這樣的,我只是把list裏最後一個改了

這個map裏的第下標爲6是個 空 ,這裏很重要!!!就因爲這裏是空,所以無法判斷有沒有設值,我老以爲合併的第二個單元格算作第二列,於是我把{“product_name”=“xxx元”}的值放到了{“product_price”=“”}裏,這個下標爲6,於是導出數據正確了。。。

這個POI的套路是

合併了的0到5列  雖然是一個單元格,但它依然看作是0到5列,於是第一個合併的單元格里設值下標是0,但是第二個單元格設值下標卻是6

(        如:row.createCell(6).setCellValue(params.get(params.size()-1).get("product_price").toString);    )

於是問題解決了!!



最後,只想說的是網上的答案拜託不要再互相抄襲了,很煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章