我正在尝试使用以下代码反转文档段落:
using Word = Microsoft.Office.Interop.Word;
object filePath = @"input.docx";
Word.Application app = new();
app.Visible = false;
object missing = System.Type.Missing;
object readOnly = false;
object isVisible = false;
Word.Document doc = app.Documents.Open(
ref filePath,
ref missing, ref readOnly, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible, ref missing,
ref missing, ref missing, ref missing);
try
{
Word.Range cachedPara2 = doc.Paragraphs[2].Range.Duplicate;
doc.Paragraphs[2].Range.FormattedText = doc.Paragraphs[1].Range.FormattedText;
doc.Paragraphs[1].Range.FormattedText = cachedPara2.FormattedText;
doc.SaveAs(@"output.docx");
}
finally
{
doc.Close();
app.Quit();
}
我期望这个:
但实际结果是这样的:
如何获得期望?
更新
有了下面的答案,我的第一个案例就得到了预期的结果。
现在,在另一种情况下,我想做以下事情:
不幸的是,我无法弄清楚.Collabse()
方法是如何工作的。我正在尝试这样做.InsertParagraphAfter()
:
doc.Paragraphs[2].Range.InsertParagraphAfter();
doc.Paragraphs[3].Range.FormattedText = doc.Paragraphs[5].Range.FormattedText;
doc.Paragraphs[5].Range.FormattedText = doc.Paragraphs[2].Range.FormattedText;
doc.Paragraphs[2].Range.Delete();
这个空的段落是从哪里来的?如何避免?