gpt4 book ai didi

c# - 使用 Word 互操作查找具有特定格式的文本范围

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

我有一个 MS Word 加载项,需要仅根据其格式从一系列文本中提取文本:特别是在我的情况下,如果文本带有下划线或删除线,则字符/单词的范围是需要找到带下划线或删除线的部分,以便我可以跟踪它们。

我的第一个想法是使用 Range.Find,即 outlined here ,但是当我不知道要查找的字符串是什么时,这将不起作用:

var rng = doc.Range(someStartRange, someEndRange);

rng.Find.Forward = true;
rng.Find.Format = true;
// I removed this line in favor of putting it inside Execute()
//rng.Find.Text = "";

rng.Find.Font.Underline = WdUnderline.wdUnderlineSingle;

// this works
rng.Find.Execute("");

int foundNumber = 0;

while (rng.Find.Found)
{
foundNumber++;
// this needed to be added as well, as per the link above
rng.Find.Execute("");
}

MessageBox.Show("Underlined strings found: " + foundNumber.ToString());

我很乐意自己解析文本,但我不确定如何在知道格式的情况下执行此操作。提前感谢您的任何想法。

编辑:

我更改了我的代码以修复查找下划线问题,并且随着该更改 while 循环永远不会终止。更具体地说,rng.Find.Found 查找带下划线的文本,但它会一遍又一遍地查找相同的文本,并且永远不会终止。

编辑 2:一旦我在 while 循环中添加了额外的 Execute() 调用,查找功能就会按需运行。

最佳答案

你需要

rng.Find.Font.Underline  = wdUnderline.wdUnderlineSingle;

(此时您正在为指定的 rng 设置格式,而不是为 Find 设置格式)

关于c# - 使用 Word 互操作查找具有特定格式的文本范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27072679/

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