2009-09-01 2 views
17

원하는 레이아웃이 포함되어 있고 C#을 사용하여 내용을 삽입하려는 "템플릿"docx 문서가 있지만 단락이나 표와 같이 문서의 특정 섹션을 고유하게 주소 지정하는 방법을 찾을 수 없습니다. 문서의 요소를 고유하게 식별하는 가장 좋은 방법은 무엇입니까? 감사합니다. Matt Sharpe.docx 문서 및 Open XML SDK 2.0 (Aug 09) 템플릿의 내용을 바꾸는 방법은 무엇입니까?

답변

11

서식 파일은 어떻게 구성됩니까? * .docx의 일부로로드 된 기본 XML 스키마를 사용합니까? 아니면 개발자 리본에서 콘텐트 컨트롤을 사용하고 있습니까?이 경우 각 컨트롤은 지정된 태그 이름으로 고유하게 식별됩니까? 이 두 방법 모두 테이블이나 단락을 제어 할 수 있으므로 문서의 특정 섹션을 쉽게 식별 할 수 있습니다.

또한 Open XML SDK 2.0 (.NET 3.5 사용)을 사용해보십시오. 여기에는 Open XML 문서를 열고 검사 할 수있는 문서 리플렉션 도구가 포함되어 있으며 클릭 한 요소에 대한 코드를 생성하는 방법을 보여줍니다. 그 외에도에서

, 당신은이 게시물을 확인할 수있는 콘텐츠 컨트롤에 대한 자세한 내용은 :

+0

건배, 나는 그 링크들을 살펴볼 것이다. 매우 감사합니다. –

3

문서 변수/필드를 사용할 수 있습니까? 삽입 -> 빠른 부품 -> 필드 -> 문서 변수로 이동하여 변수 이름을 입력하십시오.

예 : 는 http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

당신은 단지 「## insert_first_name ## "와 같은 자리 표시 자 텍스트 값을 사용하고 검색을하고 그 변수를 대체 할 수있다.

예 : http://geekswithblogs.net/DanBedassa/archive/2009/01/16/dynamically-generating-word-2007-.docx-documents-using-.net.aspx

+0

감사합니다. DocVariable은 재미있어 보이며 잠재적으로이를 텍스트의 일부로 사용할 수 있습니다. 그러나 테이블을 고유하게 식별하는 문제는 다루지 않습니다. –

3

난 당신이
나도 같은 목적을 위해 Excel에서 명명 된 범위를 사용했습니다 (리본의 개발 도구 탭, 코드 예제 here에) 중 하나 북마크, 또는 콘텐츠 컨트롤을 찾고 있습니다 생각합니다.

+0

대단히 고마워, 나는 리본의 개발자 탭을 살펴볼 것이다 ... 나는 거기에 있었음을 잊었다 ;-) –

1

이 작업을 수행 할 수있는 몇 가지 옵션이 있습니다.

태그로 값을 대체하는 간단한 오픈 소스 라이브러리를 만들었습니다.

예를 들어 Hi {name}data={name:"John"}Hi John으로 바뀝니다.

는 여기있다 : https://github.com/edi9999/docxtemplater

데모 : 당신의 응답을 http://javascript-ninja.fr/docxgenjs/examples/demo.html

+1

tanks @ edi9999 .docx는 매우 훌륭하게 작동하지만 .pptx와 동일한 문제가 있습니다. – Massimo212121

+1

또한 pptx와 함께 작동합니다 ('PptxGen = require ("docxtemplater") 사용).PptxGen' 대신) – edi9999

+1

다시 @ edi9999 woks와 pptx :) – Massimo212121

관련 문제