사용자 입력 (서식있는 텍스트 편집기 포함)의 내용을 Word 문서에 삽입해야하는 응용 프로그램을 개발 중입니다. 이를 위해 DocX 라이브러리 (http://docx.codeplex.com/)를 사용합니다. 라이브러리는 특정 작업을 수행하는 데 아주 깔끔한 방법을 제공하며 빈 문서에 내용을 삽입하기 만하면됩니다.DocX - 단락이나 목록의 색인을 얻는 방법?
그러나 내가 삽입해야하는 문서는 이미 일부 콘텐츠가있는 템플릿입니다. 내가 필요한 것은 문서에이 내용 뒤에 사용자 입력을 삽입 할 수 있어야한다는 것입니다. 이와 같이 :
일부 기본 내용은 여기에 있습니다.
[내 콘텐츠가 필요했습니다]
다른 기본 콘텐츠가 여기에 있습니다.
DOCX 문서에 단락과 목록을 삽입하는 방법이 있습니다
using(var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(PathToTestFile))
{
var doc = DocX.Load(stream); //will have two paragraphs
var p = doc.InsertParagraph(); //adds a new, empty paragraph to the end of the document
var list = doc.AddList(listType: ListItemType.Numbered); //adds a list
doc.AddListItem(list, "Test1", listType: ListItemType.Numbered); //adds a listitem to the list
doc.InsertList(list); //adds a list to the end of the document
}
단락도 테이블이나 단락 등 특정 객체를 삽입하기위한 방법을 갖는 하나 OG 전에 자체 후 :
//given a Paragraph p and another Paragraph newP:
p.InsertParagraphAfterSelf(newP);
을
목록에는 동일한 방법이 있지만 둘 다 다른 목록과 동일하게 수행 할 수있는 옵션이 없습니다 (즉, 위의 예를 목록과 동일하게 수행 할 수 없습니다). 이를 위해 필자는 문서에서 단락이나 목록의 색인이 필요합니다. 이렇게하면 인덱스를 매개 변수로 사용하는 삽입 메서드를 사용할 수 있습니다.
// A lookup for the Paragraphs in this document.
internal Dictionary<int, Paragraph> paragraphLookup = new Dictionary<int, Paragraph>();
이 사전 내부에, I가 액세스 할 수 없음을 의미 :
DOCX 클래스이 (: http://docx.codeplex.com/SourceControl/latest#DocX/DocX.cs DOCX 소스 코드로부터 추출)를 갖는다. 나는 내 인생에서 인덱스를 찾는 다른 방법을 찾을 수 없지만이 인덱스가 필요한 메소드가 있기 때문에 방법이되어야합니다. 누구도 같은 문제가 발생 했습니까? 해결책은 많이 appriciated 것입니다!
색인을 찾으려는 단락에 태그가 있습니까? – Phillip
아니요, 특정 배열 인덱스에 무언가를 삽입하는 것처럼 문서의 지정된 인덱스에 내용을 삽입 할 수있는 방법을 찾고있었습니다. 그러나, 나는 머리말과 꼬리말에 내 "기본"콘텐츠를 넣어, 따라서 내 초기 문제를 해결. 그럼에도 불구하고 인덱스 매개 변수를 받아들이는 "InsertSomething"메소드를 사용하는 방법에 대한 초기 질문은 대답이 없습니다 .. –
'p = p.paragraphs [0];'단락을 사용하여 인덱스를 얻은 다음'p. InsertParagraphAfterSelf (newP);'. 'doc.Paragraphs'는'Paragraphs' 문서 목록입니다. 나는 아직도 당신이 성취하려는 것을 확신하지 못합니다. 여러 단락 뒤에 단락을 삽입 하시겠습니까? 문제를 해결할 수있어서 기쁩니다. – Phillip