使用 Range.PasteAndFormat c# 时粘贴项的顺序
Order of the paste item while using Range.PasteAndFormat c#
我正在尝试使用以下代码使用 Word 自动化将文本粘贴到循环中。
Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsText())
Thread.Sleep(500);
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);
我有一个字符串集合,我试图写:
This is line 1
This is line 2
This is line 3
我希望输出以相同的顺序打印,但是在使用上面的代码时我得到的输出顺序相反,即
This is line 3
This is line 2
This is line 1
知道我需要做什么才能修复输出的顺序吗?
终于,我找到了解决办法。我不得不添加
PasteAndFormat 调用之前的 "initialRange.MoveEnd();" 行。
因此,最终代码看起来像
Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsData(DataFormats.Rtf))
Thread.Sleep(500);
initialRange.MoveEnd();
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);
我正在尝试使用以下代码使用 Word 自动化将文本粘贴到循环中。
Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsText())
Thread.Sleep(500);
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);
我有一个字符串集合,我试图写:
This is line 1
This is line 2
This is line 3
我希望输出以相同的顺序打印,但是在使用上面的代码时我得到的输出顺序相反,即
This is line 3
This is line 2
This is line 1
知道我需要做什么才能修复输出的顺序吗?
终于,我找到了解决办法。我不得不添加
PasteAndFormat 调用之前的"initialRange.MoveEnd();" 行。
因此,最终代码看起来像
Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsData(DataFormats.Rtf))
Thread.Sleep(500);
initialRange.MoveEnd();
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);