如何插入段落和标题



我正在尝试在word文档中插入一个带有标题和一些文本的段落。

一切正常,除了当我应用标题样式时,它会更改以下文本的样式,或者,当我将段落正文更改回"正常"时,它会将标题更改回纯文本。我无法将它们识别为单独的段落,显然我做错了什么,但我只是看不出是什么。实际代码附后:-

Word.Paragraph p2 = wD.Paragraphs.Add(R.End);
Word.Range r2 = p2.Range;
r2.InsertAfter("If any updates were made then link to  the follow on program "
        + curTarget.followOn + ".n");
string style = "Normal";
object objStyle = style;
r2.set_Style(ref objStyle);
r2.InsertParagraphAfter();
Word.Paragraph p3 = wD.Paragraphs.Add(r2);
Word.Range r3 = p3.Range;
r3.Text = "Call follow on process.n";
style = "Heading 4";
objStyle = style;
r3.set_Style(ref objStyle);
r2.InsertParagraphAfter();

为混乱的代码道歉,但它已被重新(去)分解了大约二十次。

正如我在评论中指出的,您的某些代码看起来可疑地像 J# 而不是 C#。不确定这在多大程度上导致了混乱。

我注意到Word.Range.set_Style正在采取ref论点。我注意到您传入的引用是相同的变量,您在调用set_Style之间重新分配该变量:

string style = "Normal";
object objStyle = style;
r2.set_Style(ref objStyle);
...
style = "Heading 4";
objStyle = style;
r3.set_Style(ref objStyle);

相反,请尝试为第二种样式重新声明一个新变量:

string style = "Normal";
object objStyle = style;
r2.set_Style(ref objStyle);
...
string style2 = "Heading 4";
object objStyle2 = style2;
r3.set_Style(ref objStyle2);

老实说,这是一个疯狂的猜测 - 至少在 C# 中,使用 ref 和重新分配在这里应该无关紧要,但当我查看您的代码时,它确实引起了注意。

如果代码实际上是 J#,则可能是使用 ref 导致导致问题的替代行为 - 我无法找到足够的 J# 文档来证明或反驳这一理论。

最新更新