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);//是否粗体

              /*  CTTc cttc = cell01.getCTTc();
                CTTcPr ctPr = cttc.getTcPr();
                ctPr.addNewVAlign().setVal(STVerticalJc.CENTER);
                //项目名称居中,采购人名称左对齐
                if(cells.size() == 1){
                    //水平居中
                    cttc.getPList().get(0).addNewPPr().addNewJc().setVal(STJc.CENTER);
                }else{
                    //水平居中
                    cttc.getPList().get(0).addNewPPr().addNewJc().setVal(STJc.LEFT);
                }*/
            }
        }
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值