当前位置: 代码迷 >> C# >> C# 调用WORD有关问题
  详细解决方案

C# 调用WORD有关问题

热度:20   发布时间:2016-05-05 02:33:54.0
C# 调用WORD问题。
请问,C# 调用WORD多页 如何替换每一页第一行的文本内容?

我目前做到了在每一页第一行插入文本,也能获取到每一页的第一行文本内容。
但就是第一行原有的文本无法被替换掉。我需要替换掉(注:第一行的内容字符数不固定)。
不能用Selection.Find.Execute的方式,因为第一行的内容可能与其它内容一样,用Selection.Find.Execute方式会将查找到的所有匹配项替换掉。
以下是我的代码,请大神们为我转身。。。

ApplicationClass cls = null;
            Document doc = null;
            Table table = null;
            object missing = Missing.Value;
            object path = "d:\\课件.docx";
            cls = new ApplicationClass();
                           doc = cls.Documents.Open
                    (ref path, ref missing, ref missing, ref missing,
                     ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing,
                      ref missing, ref missing, ref missing, ref missing);
                int pages = doc.ComputeStatistics(WdStatistic.wdStatisticPages, missing);
                for (int i = 1; i <= pages; i++)
                {
                    object objWhat = Word.WdGoToItem.wdGoToPage;
                    object objWhich = Word.WdGoToDirection.wdGoToAbsolute;
                    cls.Selection.GoTo(ref objWhat, ref objWhich, i, ref missing);
                    cls.Selection.Select();
                    cls.Selection.TypeText("张三");
                    //Word.Range range = cls.Selection.Range;
                   //range .Text = "李四";这种方式也只能插入文字,无法替换。
                   //cls.Selection.Paragraphs[1].Range.Text.Replace(cls.Selection.Paragraphs[1].Range.Text.ToString(), "李四");用这个方式能获取到每页第一行内容,但还是无法替换掉,不知道是什么原因。
                }
              if (doc != null)
                    doc.Close(ref missing, ref missing, ref missing);
                cls.Quit(ref missing, ref missing, ref missing);
------解决思路----------------------
selection.Delete(ref wdCharacter, ref nullobj);
先删除再插入,试过没?
  相关解决方案