0

我有一个文档,其中有一些文本和目录

foreach (Word.TableOfContents toC in wordDoc.TablesOfContents)
        {
            toC.Update();

        }  

但是标题的开头有相同的单词,我想在目录中删除该单词我尝试过类似

 toC.Range.Text = toC.Range.Text.Replace("text to be removed", "");

但它现在看起来搞砸了对齐和间距都毁了,有谁知道如何在不弄乱目录布局的情况下更改文本??!

如果有任何其他方法可以做到这一点,就像在模板中一样,如果我能以某种方式告诉目录在生成时用表情字符串替换指定的文本,它看起来好像我遇到了死胡同,是否存在之类的??!!

4

2 回答 2

0

好的,我这样解决了

object findText = "text to be removed";
                object replaceText = string.Empty;
                object item = Word.WdGoToItem.wdGoToPage;
                object whichItem = Word.WdGoToDirection.wdGoToFirst;
                object replaceAll = Word.WdReplace.wdReplaceAll;
                object forward = true;
                object matchAllWord = true;
                toC.Range.Document.GoTo(ref item, ref whichItem, ref missing, ref missing);
                toC.Range.Find.Execute(ref findText, ref missing, ref matchAllWord,
                                  ref missing, ref missing, ref missing, ref forward,
                                  ref missing, ref missing, ref replaceText, ref replaceAll,
                                  ref missing, ref missing, ref missing, ref missing);

但您不应该更新目录,否则您需要手动替换文本

于 2012-04-02T10:53:15.513 回答
0

不确定这是否是直接编辑目录内容的最佳方式。可以试试这种方法

  1. 所有目录都使用“标题”样式。
  2. 创建样式的副本说“NONTOCHeading”
  3. 将不想出现在 TOC 中的标题设置为“NONTOCHeading”
  4. 更新目录
于 2012-04-02T10:29:12.613 回答