XWPFTableRow、XWPFTableCell设置字体格式

因写入word模板,表格需要设置字体大小,百度找了一圈没有,研究了下,然后发布出来

在这里插入图片描述

代码如下
 XWPFTableRow newRow = table.getRow(i);
 List<XWPFTableCell> cells = newRow.getTableCells();
          for (int j = 0; j < cells.size(); j++) {
              if (Objects.nonNull(cells.get(j))){
                  XWPFTableCell cell = cells.get(j);
                  //获取 XWPFTableCell 的CTTc
                  CTTc ctTc = cell.getCTTc();
                  String s = tableList.get(i - 1)[j];
                  //获取 CTP 
                 CTP ctP = (ctTc.sizeOfPArray() == 0) ?
                 ctTc.addNewP() : ctTc.getPArray(0);
                 //getParagraph(ctP) 获取 XWPFParagraph 
                XWPFParagraph par = cell.getParagraph(ctP);
                        //XWPFRun   设置格式
                        XWPFRun run = par.createRun();
                        run.setFontSize(7);
                        run.setText(s);
                    }
                }
看到评论说设置居中的问题,那我就补充下

居中是由XWPFParagraph 设置

                    //获取段落
                    XWPFParagraph par = cell.getParagraph(ctP);
                    //设置水平居中
                    par.setAlignment(ParagraphAlignment.CENTER);
                    //设置垂直居中
                    par.setVerticalAlignment(TextAlignment.CENTER);
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
部分代码.................. . .. .. /** * 处理动态表格 * 默认取第二行第一列的标识 * @param table * @param ctRow * @param values 需要添加的数据 */ public static void processDynamicTable(XWPFTable table, CTRow ctRow, List values) { if(values==null || values.size()==0) return; for (Iterator iterator = values.iterator(); iterator.hasNext();) { String[] value = iterator.next(); XWPFTableRow newRow = new XWPFTableRow(ctRow,table); List cells = newRow.getTableCells(); if(cells==null || cells.size()==0) return; for (int j = 0; j < cells.size(); j++) { XWPFTableCell cell = cells.get(j); cell.removeParagraph(0); if(j<=value.length) cell.setText(value[j]); } table.addRow(newRow); } } /** * 处理表格 * @param doc * @param dataMap */ public static void processTable(XWPFDocument doc, Map dataMap) { Iterator iter = doc.getTablesIterator(); while(iter.hasNext()) { XWPFTable table = iter.next(); List rows = table.getRows(); if(rows==null || rows.size()==0) continue; CTRow ctRow = null; for (int i = 0; i < rows.size(); i++) { XWPFTableRow row = rows.get(i); ctRow = (CTRow)row.getCtRow().copy(); List cells = row.getTableCells(); if(cells==null || cells.size()==0) continue; //处理标致 boolean sign = false; for (int j = 0; j < cells.size(); j++) { XWPFTableCell cell = cells.get(j); if(cell.getText()==null) continue; if(i==1 && j==0) { //取第二行第一列的值,再添加table.关键字之后与dataMap匹配,有则当动态表格处理 String key = "table."+ cell.getText(); if(dataMap.containsKey(key)) { List values = (List)dataMap.get(key); table.removeRow(1); processDynamicTable(table, ctRow, values); //更新处理标致 sign = true; break; } } if(!cell.getText().startsWith("\\$") && cell.getText().endsWith("\\$")) continue; String key = cell.getText().replaceAll("\\$", ""); if(dataMap.containsKey(key)) {

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值