我将 Office Interop 与 MS Word (Microsoft.Office.Interop.Word) 和 Microsoft.Office.Tools.Word 一起使用来修改 Word 加载项中的 Word 文档。我有一个包含我要编辑的特定文本的范围。
当我更新 Text 对象时,Range 的段落格式被重置,特别是 Alignment 和 LeftIndent。我可以将 Alignment 和 LeftIndent 保存在临时变量中并重置它们,但这并不理想。有没有办法阻止 ParagraphFormat 被重置,如果没有,是否还有其他我可能忘记需要保存的属性(我刚刚意识到前后段落间距也会被重置......)。
Microsoft.Office.Interop.Word.Range range = myObject.range;
var oldAlignment = range.ParagraphFormat.Alignment;
var oldLeftIndent = range.ParagraphFormat.LeftIndent;
range.Text = "new text";
range.ParagraphFormat.Alignment = oldAlignment;
range.ParagraphFormat.LeftIndent = oldLeftIndent;
编辑:我只是尝试将 ParagraphFormat 保存为临时变量,然后用它重置格式,但是临时变量也丢失了它的格式。
oldParagraphFormat = range.ParagraphFormat;
range.Text = "new text";
range.ParagraphFormat = oldParagraphFormat; // oldParagraphFormat's objects are reset