在microsoft word中标识表ID



我的word文档中有很多表。我想唯一地识别那些表,但微软办公软件没有为它们提供任何唯一的标识符(ID)。那么,有什么方法可以唯一地识别微软单词表吗?

问题:
用户为我提供了带有表格的word文件。我必须把它们转换成图像。如果用户向我提供了相同的文件,但表的内容已经更新,那么我必须更新该图像。所有删除并再次生成所有图像在我的情况下不起作用,因为我无法更改我第一次分配给它的图像的名称。

我尝试了什么

  1. 生成word文档的xml,并查看是否有任何id或唯一标识符。但根本不存在这样的东西
  2. 查看表属性,其中它们只有一个字段alt Text,但仍然不可用,因为用户可以更改它

这就是表在XML(3*3)中的样子:

<w:tbl>
            <w:tblPr>
                <w:tblStyle w:val="Grilledutableau"/>
                <w:tblW w:type="auto" w:w="0"/>
                <w:tblLook w:firstColumn="1" w:firstRow="1" w:lastColumn="0" w:lastRow="0" w:noHBand="0" w:noVBand="1" w:val="04A0"/>
            </w:tblPr>
            <w:tblGrid>
                <w:gridCol w:w="3070"/>
                <w:gridCol w:w="3071"/>
                <w:gridCol w:w="3071"/>
            </w:tblGrid>
            <w:tr w:rsidR="00153204" w:rsidTr="00153204">
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3070"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
            </w:tr>
            <w:tr w:rsidR="00153204" w:rsidTr="00153204">
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3070"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
            </w:tr>
            <w:tr w:rsidR="00153204" w:rsidTr="00153204">
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3070"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
                <w:tc>
                    <w:tcPr>
                        <w:tcW w:type="dxa" w:w="3071"/>
                    </w:tcPr>
                    <w:p w:rsidR="00153204" w:rsidRDefault="00153204"/>
                </w:tc>
            </w:tr>
        </w:tbl>

这里有一些ID,但如果用户添加一个表、移动它、。。。

您可以自己添加该标识符:

向表中添加特定的替换字符串(例如ID:1)

这会在w:tblCaption属性中添加此id:

    <w:tblPr>
        <w:tblStyle w:val="Grilledutableau"/>
        <w:tblW w:type="auto" w:w="0"/>
        <w:tblLook w:firstColumn="1" w:firstRow="1" w:lastColumn="0" w:lastRow="0" w:noHBand="0" w:noVBand="1" w:val="04A0"/>
        <w:tblCaption w:val="ID:1"/>
    </w:tblPr>

要在word中添加此标题:右键单击表格->属性->文本/替换

在要识别的每个表之前放置一些文本元素

这将在表之前添加以下xml

    <w:p w:rsidR="006B0CC1" w:rsidRDefault="006B0CC1">
        <w:r>
            <w:t>ID :1</w:t>
        </w:r>
        <w:bookmarkStart w:id="0" w:name="_GoBack"/>
        <w:bookmarkEnd w:id="0"/>
    </w:p>

我会选择第一种可能性,因为读取这些属性很容易,而且它们在表中,所以您只需要解析表元素。

相关内容

  • 没有找到相关文章

最新更新