解決poi導出時單元格樣式被覆蓋問題
poi導出時單元格樣式被覆蓋
在poi操作時對每個單元格進行樣式設置,出現的問題是單元格樣式被覆蓋瞭?
如何解決這一問題????
解決方法
這裡使用到瞭CellStyle 的一個方法 void cloneStyleFrom(CellStyle var1);
創建一個不影響使用的cell 然後設置樣式
在創建一個新的cell使用
createCellStylecopy.cloneStyleFrom(oldercell.getCellStyle()); // 克隆出一個 style
其他的樣式可以在createCellStylecopy中設置,然後設置給新的cell
poi的cellstyle陷阱,樣式覆蓋
問題
cell.getCellStyle().setFont(font);
這句話本來隻是想設置這一個單元格cell的字體樣式,但是實際上卻影響瞭很多個單元格的樣式。
問題出在瞭,Excel模板中這些單元格本來就是同一個樣式,get得到的樣式修改,影響的當然也是全部的
解決方法
但是直接創建的樣式的話,會丟失Excel模板中原來就有的樣式,所以這裡使用到瞭CellStyle 的一個方法
void cloneStyleFrom(CellStyle var1);
保證瞭既可以新建一個CellStyle,又可以不丟失原來的CellStyle 的樣式
問題的那段代碼可以寫成如下:
//解決單元格樣式覆蓋的問題 CellStyle cStyle = book.createCellStyle(); cStyle.cloneStyleFrom(cell.getCellStyle()); cStyle.setWrapText(true); cStyle.setFont(font); cell.setCellStyle(cStyle);
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java導出Excel統計報表合並單元格的方法詳解
- SpringBoot實現excel文件生成和下載
- SpringBoot集成POI實現Excel導入導出的示例詳解
- Java使用EasyExcel進行單元格合並的問題詳解
- Java從服務端下載Excel模板文件的兩種方法