XWPFTableCell设置字体样式及大小导致的样式问题
關于使用XWPFTableCell設置字體,搜遍了全網,看了很多文章,大致都是使用的XWPFRun去設置的字體,這個方法去設置字體本身是沒有問題的,但是直接使用XWPFParagraph的createParagraph方法創建出來的XWPFRun去添加數據,會導致莫名的換行出來,問題代碼:
問題word樣式:
就頂上這個換行讓我百思不得其解,但是直接使用XWPFTableCell類的setText方法又是沒有問題的,只是網上沒有XWPFTableCell類可以直接定義字體樣式的方法,這個就讓我陷入了很久的嘗試,也走了很多彎路,后面我實在沒有辦法,就查看setText方法源碼,發現這貨原來是這么個意思
所以我果斷沒有創建段落,而是去獲取的段落,代碼如下
然后一下是正常的樣式
以下為完整的代碼:
for(int i = 0; i < daList.size(); i++){
List cells = table.getRow(i).getTableCells();
for(int j = 0; j < cells.size(); j++){
XWPFTableCell cell01 = cells.get(j);
//如果采購人名稱拆分,第一個手動造的空數據列則跳過
if(cells.size() == 2){
if(j == 0){
continue;
}
}
//cell01.setText(daList.get(i)[j]);
CTP ctP = (cell01.getCTTc().sizeOfPArray() == 0) ? cell01.getCTTc().addNewP() : cell01.getCTTc().getPArray(0);
XWPFParagraph p = cell01.getParagraph(ctP);
XWPFRun headRun0 = p.createRun();
headRun0.setText(daList.get(i)[j]);
if(cells.size() == 1){
headRun0.setFontSize(24);
//水平居中
p.setAlignment(ParagraphAlignment.CENTER);
}else{
headRun0.setFontSize(16);
//水平居中
p.setAlignment(ParagraphAlignment.LEFT);
}
headRun0.setFontFamily(“宋體”);
headRun0.setBold(true);//是否粗體
總結
以上是生活随笔為你收集整理的XWPFTableCell设置字体样式及大小导致的样式问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马光远:当前房地产产能严重过剩 80%开
- 下一篇: 2018-11-3-WPF-内部的5个窗