2016-11-30 2 views
0

, 에서 C# 프로그래밍하여 Word 파일에 헤더를 삽입하는 방법 지금은 내 질문은 : 내가 경로 을 선택하여 워드 파일의 헤더를 설정하는 방법 또한 Microsoft.Office.Interop.Word.Section section을 시도했지만이있다 새로운 create 파일.내가 OpenFileDialog를 컨트롤에서 워드 파일을 선택하고의 WinForm

내 코드 :

public void addheader() 
{ 
    string temp_path = textbox1.text 
    foreach (Microsoft.Office.Interop.Word.Section section in temp_path.Sections) 
    { 
     //Get the header range and add the header details. 
     Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; 
     headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage); 
     headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; 
     headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; 
     headerRange.Font.Size = 10; 
     headerRange.Text = "Header text goes here"; 
    } 
} 

워드 파일의 경로로 헤더를 설정하는 방법은 없나요? 샘플 시도

+0

열기 단어, 코드를 볼 녹화하려면 Alt + F11을 중지 수동으로 물건을, 매크로 기록을 시작하고 볼 수 있습니다 당신이 사용해야하는 방법. –

+0

@Alex 감사하지만 프로그래밍으로해야합니다. – Mamta

+0

예. 그러나 기록 된 VBA 코드를 보면 헤더를 추가하고 편집하는 데 사용되는 개체 메서드를 볼 수 있으므로 C#에서 해당 코드를 복제 할 수 있습니다. –

답변

1

,

private void button1_Click(object sender, EventArgs e) 
     { 
      CreateDocument(); 
     } 

     //Create document method 
     private void CreateDocument() 
     { 
      try 
      { 
       //Create an instance for word app 
       Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); 

       //Set animation status for word application 
       winword.ShowAnimation = false; 

       //Set status for word application is to be visible or not. 
       winword.Visible = false; 

       //Create a missing variable for missing value 
       object missing = System.Reflection.Missing.Value; 

       //Create a new document 
       Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing); 

       //Add header into the document 
       foreach (Microsoft.Office.Interop.Word.Section section in document.Sections) 
       { 
        //Get the header range and add the header details. 
        Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; 
        headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage); 
        headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; 
        headerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue; 
        headerRange.Font.Size = 10; 
        headerRange.Text = "Header text goes here"; 
       } 

       //Add the footers into the document 
       foreach (Microsoft.Office.Interop.Word.Section wordSection in document.Sections) 
       { 
        //Get the footer range and add the footer details. 
        Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; 
        footerRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed; 
        footerRange.Font.Size =10; 
        footerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter; 
        footerRange.Text = "Footer text goes here"; 
       } 

       //adding text to document 
       document.Content.SetRange(0, 0); 
       document.Content.Text = "This is test document "+ Environment.NewLine; 

       //Add paragraph with Heading 1 style 
       Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing);     
       object styleHeading1 = "Heading 1"; 
       para1.Range.set_Style(ref styleHeading1);     
       para1.Range.Text = "Para 1 text"; 
       para1.Range.InsertParagraphAfter(); 

       //Add paragraph with Heading 2 style 
       Microsoft.Office.Interop.Word.Paragraph para2 = document.Content.Paragraphs.Add(ref missing); 
       object styleHeading2 = "Heading 2"; 
       para2.Range.set_Style(ref styleHeading2); 
       para2.Range.Text = "Para 2 text"; 
       para2.Range.InsertParagraphAfter(); 

       //Create a 5X5 table and insert some dummy record 
       Table firstTable = document.Tables.Add(para1.Range, 5, 5, ref missing, ref missing); 

       firstTable.Borders.Enable = 1; 
       foreach (Row row in firstTable.Rows) 
       { 
        foreach (Cell cell in row.Cells) 
        { 
         //Header row 
         if (cell.RowIndex == 1) 
         { 
          cell.Range.Text = "Column " + cell.ColumnIndex.ToString(); 
          cell.Range.Font.Bold = 1; 
          //other format properties goes here 
          cell.Range.Font.Name = "verdana"; 
          cell.Range.Font.Size = 10; 
          //cell.Range.Font.ColorIndex = WdColorIndex.wdGray25;        
          cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25; 
          //Center alignment for the Header cells 
          cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; 
          cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; 

         } 
         //Data row 
         else 
         { 
          cell.Range.Text = (cell.RowIndex - 2 + cell.ColumnIndex).ToString(); 
         } 
        } 
       } 

       //Save the document 
       object filename = @"c:\temp1.docx"; 
       document.SaveAs2(ref filename); 
       document.Close(ref missing, ref missing, ref missing); 
       document = null; 
       winword.Quit(ref missing, ref missing, ref missing); 
       winword = null; 
       MessageBox.Show("Document created successfully !"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

이 될 것 enter image description here

관련 문제