2017-10-05 12 views
0

COM Interop을 사용하여 자동으로 MS-Project 파일을 만들고 그 안에 몇 가지 작업을 추가했습니다.COM Interop를 사용하여 프로젝트에 헤더 추가

내가 자동으로 아래와 같이 MS-Word에서 작동하는 방식보다 유사하게이 파일에 헤더와 바닥 글을 추가하려고 :

foreach (Microsoft.Office.Interop.Word.Section section in myDoc.Sections) 
{ 
    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.wdAlignParagraphRight; 
} 

그러나 나는이 주제에 대한 문서를 찾을 수없는이있다 가능한 최소한?

편집

나는이 구문을 시도했다 :

Application.FilePageSetupHeader , 1, "Date: &[Date]" 

그러나 그것은 VBA 구문처럼 보이는 내가 Interop를 COM과 C#을 사용하고 있습니다.

project.Application.FilePageSetupHeader(1, PjAlignment.pjCenter, "Date"); 

를하지만 항상 곁에 나에게이 오류 함께 System.Runtime.InteropServices.COMException을 제공합니다 :

나는 몇 가지 테스트를하는 동안 내가 찾은이 명령으로 시도한 '인수 값이 유효하지 않습니다. '

누구나 C# 또는 FilePageSetupHeader가 C#에서 작동하는 방식으로 깨끗한 구문을 알고 있습니까?

답변

1

함수 FilePageSetupHeader 모든 파라미터들이 선택적 항목과 마찬가지로,이 보인다 첫번째 파라미터 ,보기가 필요합니다.

projApp.Application.FilePageSetupHeader(view, Microsoft.Office.Interop.MSProject.PjAlignment.pjCenter, 
               "Date: " + DateTime.Now.ToString("dd/MM/yyyy")); 

참고 : projApp는 마이크로 소프트입니다

Microsoft.Office.Interop.MSProject.Views views = project.Views; 
Microsoft.Office.Interop.MSProject.View view = null; 
foreach(Microsoft.Office.Interop.MSProject.View vw in views) 
{ 
    view = vw; 
} 

그런 다음 당신이 당신의 헤더를 편집 할 수 있습니다 : 그래서 (나는 내 ​​프로젝트에서 하나 개의보기를) 같이 그것을 얻을했다 .Office.Interop.MSProject.Application 개체입니다.

1

MS 프로젝트의 머리글과 바닥 글은 초보적입니다. 각 섹션 (왼쪽, 가운데, 오른쪽)에 대해 단일 문자열 속성이 있습니다. 포맷팅은 포맷 코드를 통해 이루어집니다.

이 중심 헤더에 날짜를 추가

Application.FilePageSetupHeader , PjAlignment.pjCenter, "Date: &[Date]" 

FilePageSetupHeader Documentation

FilePageSetupFooter Documentation

+0

첫 번째 인수는보기 또는 보고서의 이름이며 선택 사항입니다. 첫 번째 인수로 1을 넣지 마십시오. 내 대답을 업데이트하여 두 번째 인수를 내장 상수 (예 : 1 ='PjAlignment.pjCenter')로 변경했습니다. –