2012-03-09 5 views
4

Word는 서로 끼워진 테이블을 병합하는 기능이 있으므로 별도의 두 테이블을 추가하려면 두 테이블 사이에 단락을 넣어야합니다. 이것은 잘 작동했지만 지금은 단락을 분리하여 테이블을 서로 겹치게 만들 필요가 있습니다.워드 문서에 두 개의 테이블을 직접 추가하기

var document = GetDocument(word, @"C:\Blank.docx"); 
object missing = System.Reflection.Missing.Value; 

var paragraph = document.Paragraphs.Add(ref missing); 
paragraph.Range.Text = "..."; 

var table = document.Tables.Add(paragraph.Range, 1, 1, ref missing, ref missing); 
table.Borders.Enable = 1; 

paragraph.Range.Collapse(Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd); 
paragraph.Range.InsertParagraphAfter(); 
paragraph.Range.Collapse(Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd); 

paragraph = document.Paragraphs.Add(ref missing); 
paragraph.Range.Text = "..."; 
table = document.Tables.Add(paragraph.Range, 1, 1, ref missing, ref missing); 
table.Borders.Enable = 1; 

document.Save(); 

var doc_close = (Microsoft.Office.Interop.Word._Document)document; 
doc_close.Close(); 

Marshal.ReleaseComObject(document); 

위 그림은 위 코드의 결과를 보여줍니다. 두 테이블 사이의 단락을 제거하고 싶지만 com 객체를 사용하는 방법을 모릅니다. 주목할 중요한 점은 단어의 단락을 지우려면 "Backspace"가 아니라 "Delete"를 눌러야한다는 것입니다. 나는 그것이 올바른 대답을 찾는 중요한 힌트라고 생각한다.

The top picture is the result of the above code, the bottom picture is what I want.

이 예는 내가 단일 테이블 함께 할 수있는 일을하고 싶은 것처럼 보일 수 있지만, 실제 응용 프로그램이 다르게 작동 서로의 상부에 적층되어 두 개의 서로 다른 테이블을 필요로한다.

나는이 해방 http://docx.codeplex.com/를 사용하려고 할 것이다 나는 그것이 잠시 돌아

당신은 항상뿐만 아니라 사무실에 대한 OPENXML의 SDK를 사용하여 COM보다 사용하기 위해 많이 쉬워 보이지만 내가 DOCX 쉽게 될 것입니다 의심 발견

답변

1
+0

필자는 필자의 다음 프로젝트에서 이것을 사용하겠다. co.kr은 머리통과 반이다. 이 프로젝트에서 저는 이미 com을 사용하여 모든 것을 코딩했습니다.이 단락은 이것을 완료하는 유일한 방법입니다. (그것은 나를 미치게합니다! lol) – sooprise

+0

슬픈 표정으로 DocX는 같은 문제를 겪고있는 것처럼 보입니다. 같은 문서에 두 개의 표를 추가하려고 시도했지만 단어 하나를 합치면됩니다. 그럼 난 그들 사이의 단락과 두 테이블을 추가하려고 지금은 단락을 제거 할 수 없습니다 ... 나는 여전히 희망을 유지하고있어,이 훨씬 com보다 사용하기 쉽습니다. – sooprise

+0

Doh! 다행스럽게도 –

관련 문제