SpringBoot操作XWPFTable(4)设置字体大小、加粗、对齐方式、边框线、背景颜色

原文链接:SpringBoot操作XWPFTable(4)设置字体大小、加粗、对齐方式、边框线、背景颜色 – 每天进步一点点

 

0.前言

前面的文章介绍了单元格合并的操作,这篇文章简单介绍一下设置字体大小、加粗、对齐方式、边框线、背景颜色等。

初始代码:

void testXWPFTable1(){
System.out.println("开始执行");
try {
//定义word
XWPFDocument doc = new XWPFDocument();
//在word中创建一个表格(2行,3列)
XWPFTable table = doc.createTable(4,4);
//第一行数据
table.getRow(0).getCell(0).setText("1");
table.getRow(0).getCell(1).setText("张三");
table.getRow(0).getCell(2).setText("李四");
table.getRow(0).getCell(3).setText("王五");
table.getRow(1).getCell(0).setText("5");
table.getRow(1).getCell(1).setText("6");
table.getRow(1).getCell(2).setText("7");
table.getRow(1).getCell(3).setText("8");
table.getRow(2).getCell(0).setText("9");
table.getRow(2).getCell(1).setText("10");
table.getRow(2).getCell(2).setText("11");
table.getRow(2).getCell(3).setText("12");
table.getRow(3).getCell(0).setText("13");
table.getRow(3).getCell(1).setText("14");
table.getRow(3).getCell(2).setText("15");
table.getRow(3).getCell(3).setText("16");
//导出
String path = "C:\"; //文件路径
String name = "test1"; //文件名
path = path + "/" + name + ".docx";
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file);
doc.write(out);
}catch (IOException e){
e.printStackTrace();
}
}
1.设置字体、大小、是否加粗

我们一般用下面的代码来设置单元格内字体、字体大小、字体是否加粗。

run.setFontSize(20);        //设置字体大小 14
run.setFontFamily("宋体");  //设置字体为宋体
run.setBold(true);         //设置加粗

第一种设置方式并不生效

//下面不生效
            XWPFRun run =  table.getRow(0).getCell(1).getParagraphs().get(0).createRun();
            run.setFontSize(20);        //设置字体大小 14
            run.setFontFamily("宋体");  //设置字体为宋体
            run.setBold(true);         //设置加粗

第二种设置方式生效:

          //生效
            XWPFRun run1 =  table.getRow(0).getCell(2).getParagraphArray(0).getRuns().get(0);
            run1.setFontSize(11);        //设置字体大小 14
            run1.setFontFamily("楷体");  //设置字体为宋体
            run1.setBold(true);         //设置加粗
            table.getRow(0).setHeight(300); //设置高度

效果:

可以看出,第二种形式生效了。

2.设置单元格大小

全局设置:

     table.getCTTbl().getTblPr().getTblW().setW(new BigInteger("9000"));       //测试不生效
     table.getCTTbl().addNewTblPr().addNewTblW().setW(new BigInteger("9000")); //测试生效

效果:

单独设置某个单元格的宽度

      table.getRow(1).getCell(0).getCTTc().getTcPr().addNewTcW().setW(BigInteger.valueOf(122));      //设置宽度 ,报错
            table.getRow(1).getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(5000));  //设置宽度,生效

效果:

3.设置对齐方式
    table.getRow(1).getCell(0).getParagraphArray(0).setAlignment(ParagraphAlignment.CENTER);  //设置水平居中
    table.getRow(1).getCell(1).getParagraphArray(0).setAlignment(ParagraphAlignment.LEFT);    //设置左对齐
    table.getRow(1).getCell(2).getParagraphArray(0).setAlignment(ParagraphAlignment.RIGHT);   //设置右对齐
    table.getRow(1).getCell(3).getParagraphArray(0).setVerticalAlignment(TextAlignment.CENTER);  //设置垂直居中

效果:

4.设置边框线

设置全局

  //全局设置
            CTTblPr tblpro =   table.getCTTbl().getTblPr();
            CTTblBorders borders = tblpro.addNewTblBorders();
            borders.addNewBottom().setVal(STBorder.SINGLE);
            borders.addNewLeft().setVal(STBorder.NIL);  //设置左侧无边框
            borders.addNewRight().setVal(STBorder.SINGLE);
            borders.addNewTop().setVal(STBorder.SINGLE);
            borders.addNewInsideH().setVal(STBorder.SINGLE);
            borders.addNewInsideV().setVal(STBorder.SINGLE);

效果:

单独设置某个单元格:

 table.getRow(1).getCell(1).getCTTc().getTcPr().addNewTcBorders().addNewRight().setVal(STBorder.NIL);//设置无边框, 测试报错,无法通过
 table.getRow(1).getCell(2).getCTTc().addNewTcPr().addNewTcBorders().addNewLeft().setVal(STBorder.NIL); //设置无边框,office测试不生效,wps测试生效

测试了两种方法,其中第一种直接报错,无法通过测试,奇怪的是第一种在另一个项目(Spring MVC)中正常显示,但是在这个新搭建的项目中直接报错。

第二种方法,测试后,发现在wps中生效,但是在office中不生效,效果如下:

5.设置背景颜色
table.getRow(1).getCell(1).getCTTc().addNewTcPr().addNewShd().setFill("AAABBB");

效果:

6.总结

实践了很多方法,发现在office中和wps中的效果不完全一致。

posted on   longkui  阅读(11)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示