2013-01-16 4 views
0

동적으로 생성 된 docx 파일이 있습니다.OpenXML 편집 docx

페이지 끝 부분에 텍스트를 정확하게 기입해야합니다. Microsoft.Interop와

는 내가 텍스트 앞에 단락을 삽입 : pages.count는 말씀으로 계산하기 때문에

int kk = objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing); 
while (objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing) != kk + 1) 
       { 
        objWord.Selection.TypeParagraph(); 

       } 
       objWord.Selection.TypeBackspace(); 

하지만 난 오픈 XML과 같은 코드를 사용할 수 없습니다. interop을 사용하면 불가능합니다. 왜냐하면 너무 느리기 때문입니다.

답변

0

Open XML에서 2 가지 옵션이 있습니다.

  1. 이 문서의 끝 부분에 마이크로 소프트 오피스 개발자 탭에서 컨텐츠 장소 홀더를 만들고 지금 당신은 프로그래밍 방식으로이 내용 플레이스 홀더에 액세스 할 수 있으며 거기에 어떤 텍스트를 배치 할 수 있습니다.

  2. 텍스트 끝에 driectly 단어를 추가하여 텍스트 끝에 삽입 할 수 있습니다. 이 방법에서는 먼저 문서에있는 모든 물건을 쓰고 있어요 그리고 당신은 당신이 당신의 문서를 다음과 같은 방법

를 추가 할 수있는 것보다 완료되면 //

public void WriteTextToWordDocument() 
{  
    using(WordprocessingDocument doc = WordprocessingDocument.Open(documentPath, true)) 
    { 
     MainDocumentPart mainPart = doc.MainDocumentPart; 
     Body body = mainPart.Document.Body; 
     Paragraph paragraph = new Paragraph(); 
     Run run = new Run(); 
     Text myText = new Text("Append this text at the end of the word document"); 
     run.Append(myText); 
     paragraph.Append(run); 
     body.Append(paragraph); 

     // dont forget to save and close your document as in the following two lines 
     mainPart.Document.Save(); 
     doc.Close(); 
    } 
} 

나는 테스트하지 않았습니다 이 코드는 OpenXML의 워드 문서를 다루는 아이디어를 줄 수 있기를 바랍니다. 감사합니다,

+0

당신은 나를 이해하지 못합니다. 콘텐츠가있는 콘텐츠 컨트롤이 있고 페이지 끝으로 이동해야합니다. 편집을 마치기 전에 끝까지 이동할 수 없습니다. – user1982834

+0

혼란스럽고 명확하지 않은 시나리오에 대해 조금 더 설명해 주시겠습니까? 그것에 대해? –