gpt4 book ai didi

c# - 使用c#删除书签的内容而不删除ms word中的书签

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:33 25 4
gpt4 key购买 nike

在 ms word2010 中,我有一个书签名称为:nameOfBookmark

现在书签内容可以是任何内容,从纯文本到混合图片、表格以及您能想到放入 word 文档中的任何内容。

问题如下:我的书签上有一些我想删除的内容。但是,每次我尝试删除内容时,它也会删除我想保留的书签。

我试过这个,它只是删除了整个东西:

    public void cleanBookmark(string bookmark)
{
var start = currentDocument.Bookmarks[nameOfBookmark].Start;
var end = currentDocument.Bookmarks[nameOfBookmark].End;
Word.Range range = currentDocument.Range(start, end);
range.Delete();
}

我还尝试将范围设置为此:

Word.Range range = currentDocument.Range(start +1, end -1);

但后来我得到了一个书签,其中仍然包含我要删除的内容的第一个和最后一个字符。

最佳答案

我想知道为什么我必须继续回答我自己的问题,如果您认为这可能与我提问的方式有关,请通知我。

无论如何,经过更多研究后我找到了解决方案,但似乎我想要的事情根本无法完成,或者至少无法以我认为可以完成的方式完成。

如果删除书签的内容,书签也会被删除。所以你要做的就是将书签的名称和范围存储在一个局部变量中,然后在删除书签后重新添加。

    public void cleanBookmark(string bookmark)
{
var start = currentDocument.Bookmarks[bookmark].Start;
var end = currentDocument.Bookmarks[bookmark].End;
Word.Range range = currentDocument.Range(start, end);
range.Delete();
//The Delete() only deletes text so if you got tables in the doc it leaves the tables empty.
//The following removes the tables in the current range.
if (range.Tables.Count != 0)
{
for (int i = 1; i <= range.Tables.Count; i++)
{
range.Tables[i].Delete();
}
}
currentDocument.Bookmarks.Add(bookmark, range);
}

如果您想阅读有关此主题的更多信息,请参阅 this问题。

关于c# - 使用c#删除书签的内容而不删除ms word中的书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25624982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com