在 Microsoft.Office.Interop.Word header 中添加不止一项
Adding More then one items in Microsoft.Office.Interop.Word header
所以在使用 Microsoft.Office.Interop.Word 自动生成字母时,我遇到的问题是 header 部分。每当我 运行 下面的代码只是替换所有页面上 header 中的第一个项目,而不是在不同行的所有页面的 header 上同时包含客户端名称和客户端地址,我刚拿到客户端地址
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;
}
将范围想象成一个不可见的选择:如果您在内容被选中时键入内容,您键入的内容将替换所选内容。因此,如果您将某些内容分配给具有内容的范围,则您分配的内容将替换内容。您是否将相同的内容分配给两个单独的 Range 对象并不重要 - 因为它们都包含相同的起点和终点,改变一个会改变另一个。
与选择一样,范围的技巧是 "collapse" 它。要进行选择,请按箭头键;对于 Range,有一个 Collapse 方法,您可以在其中指定方向:到起点或终点。
foreach (Section section in document.Sections)
{
//Get the header range and add the header details.
var headerRange = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange, WdFieldType.wdFieldPage);
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
headerRange.Font.ColorIndex = WdColorIndex.wdBlack;
headerRange.Font.Size = 12;
headerRange.Font.Name = "Arial";
headerRange.Font.Bold = 1;
headerRange.Text = ClientNameBox.Text;
headerRange.InsertParagraphAfter();
object oCollapseEnd = WdCollapseDirection.wdCollapseEnd;
headerRange.Collapse(ref oCollapseEnd);
headerRange.Text = ClientsAddressBox.Text;
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
}
所以在使用 Microsoft.Office.Interop.Word 自动生成字母时,我遇到的问题是 header 部分。每当我 运行 下面的代码只是替换所有页面上 header 中的第一个项目,而不是在不同行的所有页面的 header 上同时包含客户端名称和客户端地址,我刚拿到客户端地址
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;
}
将范围想象成一个不可见的选择:如果您在内容被选中时键入内容,您键入的内容将替换所选内容。因此,如果您将某些内容分配给具有内容的范围,则您分配的内容将替换内容。您是否将相同的内容分配给两个单独的 Range 对象并不重要 - 因为它们都包含相同的起点和终点,改变一个会改变另一个。
与选择一样,范围的技巧是 "collapse" 它。要进行选择,请按箭头键;对于 Range,有一个 Collapse 方法,您可以在其中指定方向:到起点或终点。
foreach (Section section in document.Sections)
{
//Get the header range and add the header details.
var headerRange = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange, WdFieldType.wdFieldPage);
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
headerRange.Font.ColorIndex = WdColorIndex.wdBlack;
headerRange.Font.Size = 12;
headerRange.Font.Name = "Arial";
headerRange.Font.Bold = 1;
headerRange.Text = ClientNameBox.Text;
headerRange.InsertParagraphAfter();
object oCollapseEnd = WdCollapseDirection.wdCollapseEnd;
headerRange.Collapse(ref oCollapseEnd);
headerRange.Text = ClientsAddressBox.Text;
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
}