【问题标题】:How do I insert an element in a .docx file at a specific location using the OpenXML SDK in .NET如何使用 .NET 中的 OpenXML SDK 在特定位置的 .docx 文件中插入元素
【发布时间】:2011-02-02 22:43:51
【问题描述】:

大家好,我正在尝试使用 openXML sdk 和 C# 来操作 word .docx 文件。

我可以正常打开文件并插入段落,但我需要在文档的特定位置(在我的正文中的某个段落之后)插入一个段落。

我无法在网上找到有关如何完成此操作的任何有用信息。

谁能指出我正确的方向?

【问题讨论】:

  • 老实说……没什么。我不知道从哪里开始,也没有找到任何我需要做的样本。我的想法是在需要插入之前找到段落,然后执行 InserAfter....
  • 您用来查找要插入之前的段落的键是什么?一段文字还是一个索引?
  • 听起来不错,试试看,如果遇到问题,请在此处提出更具体的问题。
  • 重新标记以删除“asp.net”并将openxml替换为“openxml-sdk”

标签: c# .net ms-word openxml-sdk


【解决方案1】:

我已经确定的解决方案(尽管我知道还有其他方法)是向文档添​​加书签,使用 SDK 找到书签,然后用我的列表替换它。效果很好。

IDictionary<String, BookmarkStart> bookMarkMap = new Dictionary<String, BookmarkStart>();
            foreach (BookmarkStart bookMarkStart in wordDoc.MainDocumentPart.RootElement.Descendants<BookmarkStart>())
            {
                bookMarkMap[bookMarkStart.Name] = bookMarkStart;
            }

            foreach (BookmarkStart bookMarkStart in bookMarkMap.Values)
            {
                if (bookMarkStart.Name == "MyBookmarkName")
                {
                    //do insert here   
                    var parent = bookMarkStart.Parent;

                    //create paragraph to insert
                    parent.InsertAfter(MyNewParagraph);         
                }
            }

【讨论】:

  • 如果我想在特定坐标处插入图片怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2011-03-22
相关资源
最近更新 更多