2009-09-01 8 views

Odpowiedz

11

Jak zbudowany jest twój szablon? Czy używa bazowego schematu XML załadowanego jako część pliku * .docx? A może używasz kontroli treści poza wstążką dla programistów, w którym to przypadku każda kontrola jest jednoznacznie identyfikowana przez daną nazwę tagu? Oba te podejścia ułatwiłyby identyfikację niektórych sekcji dokumentu, ponieważ można kontrolować, gdzie znajdują się tabele lub akapity.

Możesz również rozważyć użycie Open XML SDK 2.0 (używa .NET 3.5). Zawiera poręczne narzędzie do odczytywania dokumentów, które umożliwia otwieranie i sprawdzanie dowolnego dokumentu Open XML i pokazuje, jak wygenerować kod dla dowolnego klikniętego elementu.

Oprócz tego, aby dowiedzieć się więcej na temat kontroli treści można sprawdzić te posty:

+0

Pozdrawiam, przyjrzę się tym liniom. Dziękuję bardzo. –

3

Czy możesz użyć zmiennych/pól dokumentu? Po prostu przejdź do Insert-> Quick Parts-> Fields-> Doc Variable, wprowadź nazwę zmiennej.

przykład: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

Można też po prostu użyć wartości tekstowe zastępczy jak „## insert_first_name ##”, a następnie zrobić wyszukiwania i zamiany dla tych zmiennych.

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

+0

Dzięki za odpowiedź. DocVariable wygląda interesująco i możemy potencjalnie użyć tego dla fragmentów tekstu. Nie dotyczy to jednak kwestii tabel jednoznacznie identyfikujących. –

3

myślę szukasz albo zakładek lub kontroli zawartości (na karcie Deweloper na wstążce, w przykładzie kodu here)
używałem nazwane zakresy w Excel w tym samym celu.

+0

Bardzo dziękuję, przyjrzę się w zakładce Deweloper w Wstążce ... Zapomniałem, że tam był ;-) –

1

Istnieje kilka opcji, aby to zrobić.

Stworzyłem prostą bibliotekę otwartego źródła, która zastąpi znaczniki według wartości.

Na przykład Hi {name} z data={name:"John"} zostanie zastąpione przez Hi John.

Oto ona: https://github.com/edi9999/docxtemplater

Demo: http://javascript-ninja.fr/docxgenjs/examples/demo.html

+1

Zbiorniki @ edi9999 Działa bardzo ładnie z .docx, ale mają ten sam problem z .pptx. – Massimo212121

+1

Działa również z pptx (użyj 'PptxGen = require (" docxtemplater ").PptxGen' zamiast) – edi9999

+1

jeszcze raz dziękuję @ edi9999 woki z pptx :) – Massimo212121

Powiązane problemy