OpenXML 从 Word 中删除项目符号或数字

问题描述 投票:0回答:2

我有一个网络应用程序,可以在其中生成 Word 文档。我使用合并字段从 SQL 插入数据。我已将其中一个合并字段标记为项目符号列表,这样当我插入数据时,我可以将其拆分并使用 Append(Break),我可以创建一个项目符号列表。这太棒了!问题是,有时,我没有任何东西可以放入合并字段,所以我只是说

Field.Text = ""
。因此,我从Word文档中删除了所有
<<MergeFieldName>>

但是项目符号或编号仍然保留在文档中。我不知道如何删除它。我尝试按层次结构向上:Txt -> Run -> Paragraph -> ParagraphProperties -> NumberingProperties -> NumberingID/LvlReference...但我不知道下一步该怎么做。我确定我需要在某个地方做一个

Remove()
,但我不知道在哪里。

c# asp.net ms-word openxml
2个回答
1
投票

似乎我通过向上层次结构并将 numberingId.Val 设置为 0 来实现结果。


0
投票

使用 openXML SDK,我能够删除文档的编号和缩进。 我就是这样做的。

var number = container.Descendants<NumberingProperties>().FirstOrDefault();
if (number != null)
{
    number.Parent.Descendants<ParagraphStyleId>().FirstOrDefault().Remove();
    number.Parent.Descendants<Indentation>().FirstOrDefault().Left = "-45";
    number.Remove();
}

容器是

OpenXmlCompositeElement
,你可以从这样的东西中获取这个对象
OpenXmlCompositeElement container = tagElement.Descendants<SdtContentRun>().FirstOrDefault();

© www.soinside.com 2019 - 2024. All rights reserved.