poi、docx4j生成word:另一种角度理解word文档和xml那层关系

在利用poi、docx4j等jar包生成word文档,涉及到一些复杂的功能的时候,往往需要引入一些这样的类进行辅助编码。初学时,我很困惑这些类的名字以及背后所代表的含义。
在这里插入图片描述
在引入poi jar包的时候,往往需要引入poi-ooxml的相关jar包,可见该jar包和xml有着莫大的关系。

		<properties>
        	<poi.version>4.1.2</poi.version>
    	</properties>
    	
		<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>

实际上,在word文档另存为功能下可以选择word文档保存类型,我们将word文档保存为xml格式,并利用格式化工具将其格式化 XML 在线格式化
在这里插入图片描述
这是其中一个普通文本的片段。你是否看到了那些似曾相识的对象?

<w:body>
                    <w:p w:rsidR="00FB5F74" w:rsidRDefault="00B50936">
                        <w:r w:rsidRPr="00410D05">
                            <w:rPr>
                                <w:rFonts w:hint="eastAsia"/>
                                <w:b/>
                            </w:rPr>
                            <w:t>8</w:t>
                        </w:r>
                        <w:r w:rsidRPr="00410D05">
                            <w:rPr>
                                <w:b/>
                            </w:rPr>
                            <w:t>455</w:t>
                        </w:r>
                        <w:r>
                            <w:t xml:space="preserve">   442</w:t>
                        </w:r>
                    </w:p>
                    <w:p w:rsidR="009E398F" w:rsidRDefault="009E398F"/>
                    <w:p w:rsidR="009E398F" w:rsidRDefault="009E398F"/>

在这里可以对word进行字体设置、文字加粗等样式设置。
在这里插入图片描述
在这里可以对word进行表格宽度、居中方式、垂直对齐的样式设置
在这里插入图片描述
相信你现在已经不难理解这段代码了(word的单元格垂直合并)。

    public static void setRowMerge(XWPFTableCell tableCell, STMerge.Enum mergeValue) {
        CTTc ctTc = tableCell.getCTTc();
        CTTcPr cpr = ctTc.isSetTcPr() ? ctTc.getTcPr() : ctTc.addNewTcPr();
        CTVMerge merge = cpr.isSetVMerge() ? cpr.getVMerge() : cpr.addNewVMerge();
        merge.setVal(mergeValue);
    }

在这里插入图片描述
又如word页码的关键代码 PAGE * MERGEFORMAT。
在这里插入图片描述
另外,利用开发工具的debug功能我们也可以非常方便的抓取内容,进行word文档的内容和格式调整。
在这里插入图片描述
相信掌握这些开发技巧,再复杂的word文档你也将游刃有余。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值