word自动化目录

时间:2012-04-01 14:15:16

标签: c# c#-4.0 word-automation

我有一份文件,其中有一些文字和一份内容表

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

        }  

但标题在开头有相同的单词,我想在内容表中删除该单词  我试过像

这样的东西
 toC.Range.Text = toC.Range.Text.Replace("text to be removed", "");

但它现在看起来搞砸了 对齐和间距被毁了,有没有人知道如何更改文本而不搞乱内容表的布局??!

看起来好像我遇到了死胡同 如果还有其他方法可以做到这一点,比如在模板中,如果我能以某种方式告诉内容表在生成时用一个情感字符串替换指定的文本,是否有类似的内容?? !!

2 个答案:

答案 0 :(得分:0)

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

  1. 所有TOC都使用“标题”样式。
  2. 创建样式的副本,说“NONTOCHeading”
  3. 将您不希望在TOC中显示的标题设置为“NONTOCHeading”
  4. 更新TOC

答案 1 :(得分: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);

但您不应更新内容表,或者您需要手动替换文本