因此,在使用Microsoft.Office.Interop.Word自动生成字母时,我遇到的问题是标题部分。每当我运行下面的代码时,它都会替换所有页面标头中的第一个Item,而不是在不同行的所有页面标头中都包含客户端名称和客户端地址,我只获得客户端地址
foreach (Section section in document.Sections)
{
//Get the header range and add the header details.
var headerRange = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
var headerRange1 = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange, WdFieldType.wdFieldPage);
headerRange1.Fields.Add(headerRange, WdFieldType.wdFieldPage);
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
headerRange1.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
headerRange.Font.ColorIndex = WdColorIndex.wdBlack;
headerRange1.Font.ColorIndex = WdColorIndex.wdBlack;
headerRange.Font.Size = 12;
headerRange1.Font.Size = 12;
headerRange.Font.Name = "Arial";
headerRange1.Font.Name = "Arial";
headerRange.Font.Bold = 1;
headerRange1.Font.Bold = 1;
headerRange.Text = ClientNameBox.Text;
headerRange.InsertParagraphAfter();
headerRange1.Text = ClientsAddressBox.Text;
headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
headerRange1.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
}
答案 0 :(得分:0)
将范围想象为一个不可见的选择:如果在选择内容时键入内容,则键入的内容将替换选择的内容。因此,如果您向具有内容的范围分配某些内容,则分配的内容将替换内容。不必将相同的内容分配给两个单独的Range对象-因为它们都包含相同的起点和终点,所以改变一个会改变另一个。
使用范围和选择的技巧是“折叠”它。对于选择,请按箭头键。对于“范围”,有一种“折叠”方法,您可以在其中指定方向:指向起点或终点。
style.xml