XWPFTableCell设置字体样式及大小导致的样式问题
關(guān)于使用XWPFTableCell設(shè)置字體,搜遍了全網(wǎng),看了很多文章,大致都是使用的XWPFRun去設(shè)置的字體,這個(gè)方法去設(shè)置字體本身是沒(méi)有問(wèn)題的,但是直接使用XWPFParagraph的createParagraph方法創(chuàng)建出來(lái)的XWPFRun去添加數(shù)據(jù),會(huì)導(dǎo)致莫名的換行出來(lái),問(wèn)題代碼:
問(wèn)題word樣式:
就頂上這個(gè)換行讓我百思不得其解,但是直接使用XWPFTableCell類的setText方法又是沒(méi)有問(wèn)題的,只是網(wǎng)上沒(méi)有XWPFTableCell類可以直接定義字體樣式的方法,這個(gè)就讓我陷入了很久的嘗試,也走了很多彎路,后面我實(shí)在沒(méi)有辦法,就查看setText方法源碼,發(fā)現(xiàn)這貨原來(lái)是這么個(gè)意思
所以我果斷沒(méi)有創(chuàng)建段落,而是去獲取的段落,代碼如下
然后一下是正常的樣式
以下為完整的代碼:
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);
//如果采購(gòu)人名稱拆分,第一個(gè)手動(dòng)造的空數(shù)據(jù)列則跳過(guò)
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);//是否粗體
總結(jié)
以上是生活随笔為你收集整理的XWPFTableCell设置字体样式及大小导致的样式问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 马光远:当前房地产产能严重过剩 80%开
- 下一篇: 高考冲刺家长减压:做后盾,率先行