OpenXml.Wordprocessing
中的 SdtCell
和 SdtBlock
都序列化为 <w:sdt>
,那么它们之间有什么区别呢?我猜其中一个是表格单元格,这也是 Microsoft 文档所暗示的。但提供的细节至少是稀少的,请您澄清一下。OpenXml.Wordprocessing
中的 SdtCell
和 SdtBlock
都序列化为 <w:sdt>
,那么它们之间有什么区别呢?我猜其中一个是表格单元格,这也是 Microsoft 文档所暗示的。但提供的细节至少是稀少的,请您澄清一下。从sdtcell和sdtblock的MSDN页面中,下面是我强调的内容:
主要区别在于<w:sdt>
内的<w:sdtContent>
类型。
SDTCELL
该元素指定了一个结构化文档标记围绕单个表格单元格。该元素的两个子元素将通过sdtPr和sdtContent元素分别用于指定当前结构化文档标记的属性和内容。
[示例:考虑一个友好名称为“company”的结构化文档标记,必须位于WordprocessingML文档中的单个表格单元格周围。这个要求可以在WordprocessingML中如下指定:
<w:tr>
<w:sdt>
<w:sdtPr>
<w:alias w:val="company"/>
</w:sdtPr>
<w:sdtContent>
<w:tc>
…
</w:tc>
</w:sdtContent>
</w:sdt>
…
</w:tr>
sdt元素指定结构化文档标记,其子sdtPr元素包含友好名称属性设置为company,sdtContent元素包含单个表格单元格(它是单元格级别的结构化文档标记)。
SDTBLOCK
此元素指定一个或多个块级结构(段落、表格等)周围存在结构化文档标记。该元素的两个子元素将通过sdtPr和sdtContent元素分别用于指定当前结构化文档标记的属性和内容。
[示例:考虑一个带有友好名称地址的结构化文档标记,必须位于WordprocessingML文档中的单个段落周围。在WordprocessingML中,可以如下指定此要求:
<w:body>
<w:sdt>
<w:sdtPr>
<w:alias w:val="address"/>
</w:sdtPr>
<w:sdtContent>
<w:p>
…
</w:p>
</w:sdtContent>
</w:sdt>
…
</w:body>
元素指定结构化文档标记,其子元素包含友好名称属性集,设置为“address”,元素包含单个段落(它是一个块级别的结构化文档标记)。