解決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。

推薦閱讀: