Ako generovať dokumenty vo worde. Programové generovanie formulárových dokumentov vo Worde. Vytvorte šablónu dokumentu programu Word

Žijeme vo svete, kde vývojári PHP musia z času na čas interagovať s operačným systémom. systém Windows. WMI (Windows Management Interface) Ovládacie prvky systému Windows) – jedným z takýchto príkladov je interakcia s Microsoft Office.

V tomto článku sa pozrieme na jednoduchú integráciu medzi Wordom a PHP: generovanie dokument spoločnosti Microsoft Vstupné polia založené na slove vo forme HTML pomocou PHP (a jeho rozšírenia Interop).

Prípravné kroky

V prvom rade sa presvedčíme, že máme nastavené základné prostredie WAMP. Keďže Interop je prítomný iba v systéme Windows, potrebujeme, aby bol náš server Apache a inštalácia PHP nasadená na počítači so systémom Windows. Ako taký používam EasyPHP 14.1, ktorý sa veľmi ľahko inštaluje a nastavuje.

Ďalším krokom je inštalácia balíka Microsoft Office. Verzia nie je veľmi dôležitá. Používam Microsoft Office 2013 Pro, ale akýkoľvek Office verzia staršie ako 2007 by mali fungovať.

Musíme sa tiež uistiť, že máme nainštalované knižnice na vývoj aplikácie Interop (PIA, Primary Interop Assemblies, Primary Interop Assemblies). To zistíte otvorením Prieskumník systému Windows a prejdite do adresára \assembly a tam by sme mali vidieť sadu nainštalovaných zostáv:

Tu môžete vidieť prvok Microsoft.Office.Interop.Word (podčiarknutý na snímke obrazovky). Toto bude zostava, ktorú použijeme v našej ukážke. Venujte prosím pozornosť Osobitná pozornosť v poliach „Názov zostavy (Názov zostavy)“, „Verzia (Verzia)“ a „Token verejného kľúča (token verejného kľúča)“. Čoskoro ich použijeme v našom PHP skripte.

Tento adresár obsahuje aj ďalšie zostavy (vrátane celej rodiny Office) dostupné pre použitie v ich programoch (nielen pre PHP, ale aj pre VB.net, C# atď.).

Ak zoznam zostáv neobsahuje celý balík Microsoft.Office.Interop, musíme buď preinštalovať Office pridaním PIA, alebo manuálne stiahnuť balík z webovej lokality Microsoftu a nainštalovať ho. Pre viac podrobné pokyny pozrite si túto stránku na MSDN.

Komentujte Poznámka: Na stiahnutie a inštaláciu je k dispozícii iba distribúcia Microsoft Office 2010 PIA. Verzia zostavy v tomto balíku je 14.0.0 a verzia 15 sa dodáva iba s balíkom Office 2013.

Nakoniec musíte povoliť rozšírenie php_com_dotnet.dll v php.ini a reštartovať server.

Teraz môžeme prejsť k programovaniu.

HTML formulár

Od hlavnej časti tento príklad leží na strane servera, vytvoríme jednoduchú stránku s formulárom, ktorý bude vyzerať takto:

Máme tu textové pole pre meno, skupinu prepínačov pre pohlavie, posúvač pre vek a oblasť na zadávanie textu na zadanie správy, ako aj neslávne známe tlačidlo „Odoslať“.

Uložte tento súbor ako "index.html" do adresára virtuálny hostiteľ tak, aby bol dostupný na adrese URL ako http://test/test/interop .

Serverová časť

Obslužný súbor na strane servera je hlavným cieľom našej konverzácie. Na začiatok dám úplný kód tento súbor a potom to vysvetlím krok za krokom.

viditeľné = pravdivé; $fn = __DIR__ . "\\template.docx"; $d = $w->Dokumenty->Otvoriť($fn); echo "Dokument je otvorený.


"; $flds = $d->Polia; $count = $flds->Count; echo "Dokument má polia $count.
"; echo"
    "; $mapping = setupfields(); foreach ($flds ako $index => $f) ( $f->Select(); $key = $mapping[$index]; $value = $inputs[$key]; if ($key == "pohlavie") ( if ($value == "(!LANG:m") $value = "Pán."; else $value = "Pani."; } if($key=="printdate") $value= date ("Y-m-d H:i:s"); $w->Selection->TypeText($value); echo "!}
  • Priradenie $index: $kľúč k $hodnote
  • ";) echo"
"; echo "Spracovanie dokončené!

"; echo "Tlačí sa, čakajte prosím...
"; $d->PrintOut(); sleep(3); echo "Hotovo!"; $w->Quit(false); $w=null; function setupfields() ( $mapping = array(); $mapping = "pohlavie"; $mapping = "meno"; $mapping = "vek"; $mapping = "správa"; $mapping = "dátum tlače"; návrat $mapovanie; )

Po zapísaní hodnôt prijatých z formulára do premennej $inputs a vytvorení prázdneho prvku s kľúčom printdate (prečo sme to urobili - budeme diskutovať neskôr), prejdeme na štyri veľmi dôležité riadky:

$assembly = "Microsoft.Office.Interop.Word, verzia=15.0.0.0, kultúra=neutral, PublicKeyToken=71e9bce111e9429c"; $class = "Microsoft.Office.Interop.Word.ApplicationClass"; $w = new DOTNET($zostava, $trieda); $w->visible = true;

PHP manipulátor COM vyžaduje, aby bola trieda vytvorená v rámci "zostavy". V našom prípade pracujeme s Wordom. Ak sa pozriete na prvú snímku obrazovky, môžete si zapísať úplný podpis zostavy pre Word:

  • „Názov“, „Verzia“, „Token verejného kľúča“ sú všetky prevzaté z informácií, ktoré je možné zobraziť v „c:\Windows\assembly“ .
  • „Kultúra“ je vždy neutrálna

Trieda, na ktorú sa chceme odvolávať, sa vždy volá „názov zostavy“ + „.ApplicationClass“.

Nastavením týchto dvoch parametrov môžeme získať objekt na prácu s Wordom.

Tento objekt môže zostať na pozadí alebo ho môžeme uviesť do výroby nastavením atribútu viditeľný na true .

Ďalším krokom je otvorenie dokumentu na spracovanie a zápis inštancie „dokumentu“ do premennej $d .

Existuje niekoľko spôsobov, ako vytvoriť obsah založený na formulári v dokumente.

Najhoršie by bolo naprogramovať obsah dokumentu v PHP a potom ho vypísať do dokumentu programu Word. Dôrazne odporúčam nerobiť to z nasledujúcich dôvodov:

  1. Stratíte flexibilitu. Akékoľvek zmeny vo výstupnom súbore budú vyžadovať zmeny v kóde PHP.
  2. Tým sa prelomí oddelenie kontroly a pohľadu
  3. Použitie štýlov na obsah dokumentu (zarovnanie, fonty, štýly atď.) v skripte výrazne zvýši počet riadkov kódu. Programová zmena štýlov je príliš ťažkopádna.

Ďalšou možnosťou by bolo použiť nájsť a nahradiť. PHP má na to dobré vstavané nástroje. Môžeme vytvoriť dokument programu Word, do ktorého umiestnime štítky so špeciálnymi oddeľovačmi, ktoré sa neskôr nahradia. Môžeme napríklad vytvoriť dokument, ktorý bude obsahovať nasledujúci úryvok:

a pomocou PHP ho môžeme ľahko nahradiť obsahom poľa „Name“ prijatého z formulára.

Je to jednoduché a chráni nás to pred všetkými nepríjemnými následkami, ktorým čelíme pri prvej metóde. Musíme sa len rozhodnúť pre správny oddeľovač, v takom prípade nakoniec použijeme vzor.

Odporúčam tretí spôsob a je založený na hlbšej znalosti Wordu. Polia použijeme ako zástupné symboly a pomocou kódu PHP priamo aktualizujeme hodnoty v poliach zodpovedajúcimi hodnotami.

Tento prístup je flexibilný, rýchly a v súlade s osvedčenými postupmi programu Word. S ním sa môžete vyhnúť aj fulltextovému vyhľadávaniu v dokumente, čo má dobrý vplyv na výkon. Upozorňujeme, že toto riešenie má aj nevýhody.

Word od samého začiatku nepodporoval pomenované indexy pre polia. Aj keď máme určené názvy pre vytvorené polia, stále musíme použiť číselné identifikátory týchto polí. To tiež vysvetľuje, prečo musíme použiť samostatnú funkciu (setupfields), aby sme zhodovali index poľa a názov poľa z formulára.

V tejto ukážke použijeme dokument s 5 poliami MERGEFIELD. Dokument šablóny umiestnime na rovnaké miesto ako náš obslužný program skriptu.

Upozorňujeme, že pole dátumu tlače nemá zodpovedajúce pole vo formulári. Preto sme do poľa $inputs pridali prázdny prvok printdate. Bez toho bude skript stále bežať a spúšťať, ale PHP vydá varovanie, že v poli $inputs chýba index dátumu tlače.

Po nahradení polí novými hodnotami dokument vytlačíme s

$d->PrintOut();

Metóda PrintOut má niekoľko voliteľných parametrov a používame jej najjednoduchšiu formu. Toto vytlačí jednu kópiu dokumentu na predvolenej tlačiarni pripojenej k počítaču so systémom Windows.

Môžete tiež zavolať PrintPreview a pozrieť sa na výsledok predtým, ako ho vytlačíte. V plne automatickom prostredí samozrejme využijeme metódu PrintOut.

Pred ukončením aplikácie Word musíte chvíľu počkať, pretože zaradenie tlačovej úlohy do frontu nejaký čas trvá. Bez oneskorenia(3) sa metóda $w->Quit vykoná okamžite a úloha sa nezaradí do frontu.

Nakoniec zavoláme $w->Quit(false) , čím sa zatvorí aplikácia Word, ktorú volal náš skript. Jediný parameter odovzdaný metóde je uložiť súbor pred ukončením. Urobili sme úpravy v dokumente, ale nechceme ich ukladať, pretože na neskoršiu prácu potrebujeme čistú šablónu.

Keď skončíme s kódom, môžeme načítať stránku formulára, vyplniť niektoré hodnoty a odoslať ho. Na obrázkoch nižšie je zobrazený výstup skriptu, ako aj aktualizovaný dokument programu Word:

Vylepšená rýchlosť spracovania a niečo viac o PIA

PHP je voľne napísaný jazyk. Objekt COM typu Object . Pri písaní skriptu nemáme žiadny spôsob, ako získať popis objektu, či už je to aplikácia Word, dokument alebo pole. Nevieme, aké vlastnosti má tento objekt, ani aké metódy podporuje.

To výrazne spomalí rýchlosť vývoja. Pre urýchlenie vývoja by som odporučil napísať funkcie najskôr v C# a potom preložiť kód do PHP. Môžem odporučiť bezplatné IDE pre vývoj C# s názvom „#develop“. Môžete ju nájsť. Uprednostňujem ho pred Visual Studio, pretože #develop je menšie, jednoduchšie a rýchlejšie.

Migrácia kódu C# do PHP nie je taká strašidelná, ako sa zdá. Dovoľte mi ukázať vám pár riadkov v C#:

Word.Application w=new Word.Application(); w.Visible=true; String path=Application.StartupPath+"\\template.docx"; Word.Document d=w.Documents.Open(cesta) ako Word.Document; Word.Fields flds=d.Fields; intlen=flds.Count; foreach (Word.Field f in flds) ( f.Select(); int i=f.Index; w.Selection.TypeText("..."); )

Môžete vidieť, že kód C# je veľmi podobný kódu PHP, ktorý som ukázal predtým. C# je silne typovaný jazyk, takže v tomto príklade môžete vidieť niekoľko operátorov castingu a tiež musíte zadať typ premenných.

Zadaním typu premennej si môžete vychutnať prehľadnejší kód a automatické dopĺňanie a výrazne sa zvýši rýchlosť vývoja.

Ďalším spôsobom, ako urýchliť vývoj PHP, je zavolať makro vo Worde. Vykonávame rovnakú postupnosť akcií a potom ju uložíme ako makro. Makro je napísané vo Visual Basicu, ktorý je tiež ľahko preložiteľný do PHP.

A čo je najdôležitejšie, dokumentácia PIA balíka Microsoft Office, najmä dokumentácia priestoru názvov každej aplikácie balíka Office, je najpodrobnejšou referenciou. Najpoužívanejšie tri aplikácie sú:

  • Excel 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel(v=office.15).aspx
  • Word 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.15).aspx
  • PowerPoint 2013: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint(v=office.15).aspx

Záver

V tomto článku sme vám ukázali, ako naplniť dokument programu Word údajmi pomocou knižníc PHP COM a interoperability Microsoft Office.

Windows a Office sú široko používané v každodennom živote. Poznať silu Office/Window a PHP bude užitočné pre každého vývojára PHP a Windows.

Rozšírenie PHP COM vám otvára dvere na použitie tejto kombinácie.

Všetci sa zaoberáme textami, tak či onak. Niekedy je potrebné vygenerovať veľké alebo nie príliš veľké množstvo textu pre nejakú úlohu, napríklad hrať sa s formátovaním, ale nie je po ruke žiadny text, je príliš lenivé napísať ho sami. Čo robiť? Odpoveď je jednoduchá: použite vstavaný generátor náhodného textu vo Worde!

V editore Microsoft Word môžete generovať text pomerne rýchlo a jednoducho pomocou špeciálnych príkazov. Ako pokusný králik budem používať Word 2007. Tieto príkazy by mali fungovať vo všetkých verziách Wordu. Poviem vám o troch metódach generovania textu.

Metóda 1: Použitie rand()

Funkcia rand() vloží ukážku lokalizovaného textu, 3 odseky po 3 vety. Otvorte Word, umiestnite kurzor tam, kde sa text čoskoro objaví a zadajte príkaz:

a stlačte Enter. Samotná funkcia rand zmizne a namiesto toho sa objavia 3 odseky textu:

To však nie je všetko. Ak potrebujete veľa textu, môžete použiť funkciu rand s ďalšími argumentmi, ako napríklad:

=rand(x,y)

kde " X' znamená počet odsekov a ' r» je počet viet v každom odseku. Napríklad, =rand(20,5) vloží 20 odsekov po piatich frázach. ALE =rand(7) vloží 7 odsekov po 3 vety.

Metóda 2: Použitie lorem()

Ak chcete vložiť starý dobrý Lorem Ipsum ako vzorku - použite funkciu lorem (). Zadajte nasledujúci príkaz a stlačte kláves Enter:

A dostaneme tento celý latinský text

Funkcia lorem() tiež ľahko prijíma ďalšie argumenty, ako napríklad rand(), vo forme niekoľkých odsekov a viet. Bez argumentov funkcia štandardne vloží 3 odseky s 3 vetami.

Metóda 3. Funkcia rand.old().

Použitie je podobné ako v predchádzajúcich príkazoch:

=rand.old()

a stlačte Enter.

Funkcia rand.old() je ponechaná kvôli kompatibilite so starou kanceláriou až do roku 2003 vrátane. Spôsob aplikácie je rovnaký ako pri predchádzajúcich dvoch, len text bude pozostávať z rovnakých fráz "Jedzte viac týchto mäkkých francúzskych roliek a pite čaj." Toto slovné spojenie pozná každý, kto občas musel pracovať s písmom.

Argumenty môžete odovzdať ako v prvých dvoch metódach.

To je všetko, texty sú vygenerované, teraz môžete jesť viac týchto mäkkých francúzskych roliek a piť čaj :)

Podarilo sa vám vložiť text pomocou vyššie uvedených funkcií?

V predchádzajúcich článkoch série „Automatizácia vypĺňania dokumentov“ som hovoril o tom, ako vytvoriť používateľské rozhranie aplikácie, organizovať overenie vstupu a získať číslo v slovách bez použitia kódu VBA. V tomto poslednom článku budeme hovoriť o mágii - prenose všetkých potrebných hodnôt zo zošita programu Excel do dokumentu programu Word. Dovoľte mi ukázať vám konečný výsledok:

Popis mechanizmu

Na začiatok popíšem všeobecne, ako presne sa budú dáta prenášať do dokumentu programu Word. Najprv potrebujeme šablónu dokumentu programu Word, ktorá obsahuje všetky značky, tabuľky a tú časť textu, ktorá zostane nezmenená. V tejto šablóne musíte definovať miesta, kde budú nahradené hodnoty z excelového zošita - najpohodlnejší spôsob, ako to urobiť, je pomocou záložiek. Potom je potrebné usporiadať dáta Excelu tak, aby zodpovedali šablóne Wordu a v neposlednom rade napísať samotný postup prenosu vo VBA.

Takže prvé veci.

Vytvorte šablónu dokumentu programu Word

Všetko je tu veľmi jednoduché - vytvoríme bežný dokument, napíšeme a naformátujeme text, vo všeobecnosti dosiahneme potrebnú formu. Na miestach, kde bude potrebné nahradiť hodnoty z Excelu, musíte vytvoriť záložky. Toto sa vykonáva nasledujúcim spôsobom:

Preto budete musieť vytvoriť všetky záložky, to znamená označiť všetky miesta, kde sa budú vkladať údaje z Excelu. Výsledný súbor je potrebné uložiť ako „šablónu MS Word“ pomocou položky ponuky „Súbor“ -> „Uložiť ako...“.

Príprava údajov v Exceli

Pre pohodlie som sa rozhodol umiestniť všetky údaje, ktoré je potrebné preniesť do dokumentu programu Word, na samostatný pracovný hárok s názvom Záložky - záložky. Tento hárok má dva stĺpce: prvý obsahuje názvy záložiek (presne tak, ako sú pomenované v dokumente programu Word) a druhý obsahuje zodpovedajúce hodnoty, ktoré sa majú preniesť.

Niektoré z týchto hodnôt sa získavajú priamo z hárku na zadávanie údajov a niektoré sú z pomocných tabuliek umiestnených na hárku podpory. V tomto článku nebudem analyzovať vzorce, ktoré vypočítavajú požadované hodnoty, ak niečo nie je jasné, položte otázky v komentároch.

V tejto fáze je dôležité správne zadať všetky názvy záložiek - od toho závisí správnosť prenosu údajov.

Postup prenosu

Ale toto je najzaujímavejšie. Existujú dve možnosti na spustenie kódu migrácie údajov:

  • Kód sa spustí v excelovom zošite, údaje sa prenesú do Wordu po jednej hodnote a okamžite sa umiestnia do dokumentu.
  • Kód sa vykonáva v samostatnom dokumente programu Word, všetky údaje sa prenášajú z Excelu v jednej dávke.

Z hľadiska rýchlosti vykonávania, najmä pri veľkom počte záložiek, vyzerá druhá možnosť oveľa atraktívnejšie, ale vyžaduje si zložitejšie akcie. To je ten, ktorý som použil.

Tu je to, čo je potrebné urobiť:

  • Vytvorte šablónu dokumentu programu Word s podporou makier. Táto šablóna bude obsahovať spustiteľný kód VBA.
  • Do vytvorenej šablóny je potrebné umiestniť program napísaný vo VBA. Ak to chcete urobiť, pri úprave šablóny stlačte kombináciu klávesov Alt + F11 a zadajte kód programu do okna editora jazyka Visual Basic, ktoré sa otvorí.
  • V excelovom zošite napíšte kód, ktorý volá procedúru výplne z novovytvorenej šablóny programu Word.

Text postupu v článku neuvediem - je možné ho jednoducho zobraziť v súbore FillDocument.dotm umiestnenom v priečinku Template v archíve príkladov.

Ako to všetko môžete použiť na vyriešenie vášho konkrétneho problému?

Chápem, že slovami to všetko vyzerá veľmi jednoducho, ale čo sa stane v praxi? Navrhujem, aby ste použili hotovú možnosť. Stiahnite si archív s príkladom v zošite programu Excel stlačením kombinácie klávesov Alt + F11 otvorte editor jazyka Visual Basic a prečítajte si všetky moje komentáre k programu. Aby ste zmenili program podľa svojich potrieb, stačí zmeniť hodnotu niekoľkých konštánt, ktoré sú umiestnené na samom začiatku programu. Celý text programu môžete voľne kopírovať do svojho projektu.

Štruktúra archívu

Archív priložený k tomuto článku obsahuje niekoľko súborov.

Hlavným súborom je zošit programu Excel s názvom „Generovať potvrdenia“. V tomto zošite sú 4 pracovné hárky, z ktorých sú zobrazené len dva: "Vstup" - hárok na zadávanie údajov a "Databáza" - archív všetkých zadaných dokumentov.

Priečinok Šablóny obsahuje šablóny dokumentov programu Word. Jednou z nich je šablóna obsahujúca program na vyplnenie záložiek a druhou je formulár na vyplnenie. Šablónu môžete s programom používať bezo zmien, ale formulár na vyplnenie bude samozrejme potrebné upraviť podľa vašich potrieb.

Ako prepracovať príklad „pre seba“?

  1. Pripravte si šablónu dokumentu Word, ktorú treba dokončiť. Vytvorte si v ňom všetky potrebné záložky a uložte si ho ako „šablónu MS Word“.
  2. Skopírujte súbor FillDocument.dotm z archívu priloženého k tomuto článku do priečinka s pripravenou šablónou. Tento súbor je zodpovedný za vyplnenie záložiek šablóny a nie je potrebné v ňom nič meniť.
  3. Pripravte si excelový zošit na zadávanie údajov. Je len na vás, či bude mať nejaké „pokročilé“ používateľské rozhranie a vykonávať rôzne záludné výpočty. Hlavná vec je, že obsahuje pracovný hárok s tabuľkou zhody medzi názvom záložky v šablóne programu Word a hodnotou, ktorá sa má nahradiť.
  4. Do pripraveného zošita vložte kód programu VBA zo vzorového súboru. Nahraďte všetky konštanty podľa vášho projektu.
  5. Otestujte správnu činnosť.
  6. Aktívne si užívajte!

A, priezviská v stĺpci B a profesie v kolónke C.

2. Vytvorte dokument programu Word (.doc alebo .docx)


(A), (B) a (C).

(A), (B) a (C) (A)- názov, (B)- priezvisko, (C)- povolanie.

nastavenie programy.

3. Vyberte cesty pre súbory a priečinky


Vyberte

4. Nastavte hárky a riadky požadovaných údajov


Údajové listy súboru Excel

Dátové riadky súboru Excel Údajové listy súboru Excel

1 .

Ak chcete, aby sa na tvorbe dokumentu podieľali všetky hárky a/alebo riadky vášho excelového súboru s údajmi, kliknite na príslušné tlačidlo vpravo s popisom čísla(jeho nápis sa zmení na Všetky).

5. Nastavte šablónu názvu pre nové súbory Word


Nastavte šablónu názvu pre nové súbory Word:

Nová šablóna názvov súborov programu Word je šablóna pre názvy nových dokumentov (súborov word) generovaných programom. Šablóna názvu tu obsahuje názvy stĺpcov súboru programu Excel orámované zloženými zátvorkami: (A) a (B). Pri generovaní nového dokumentu program nahradí všetky (A) a (B) zodpovedajúce hodnoty buniek zo súboru programu Excel - to bude názov nového dokumentu (súbor programu Word).

Na karte si môžete nastaviť vlastné znaky ohraničenia nastavenie programy.

6. Kliknite na "Generovať"


Kliknite na tlačidlo Generovať a priebeh sa zobrazí na obrazovke. Dokumenty (súbory word) sa vytvoria presne toľko, koľko riadkov excelového súboru je zapojených do tvorby.

7. Všetko


Všetky dokumenty (súbory word) boli vytvorené a nachádzajú sa v priečinku špecifikovanom v Priečinok na uloženie nových súborov programu Word. všetko :)

Exwog- generátor správ šablón z Excelu do Wordu

Bezplatný generátor súborov Word podľa šablóny (súbor Word) na základe údajov súboru Excel

Funguje na Mac OS, Windows a Linux

Umožňuje vám nastaviť názvy nových vygenerovaných súborov slov

Umožňuje nastaviť hárky a riadky požadovaných údajov

Umožňuje nastaviť znaky okrajov pre názvy stĺpcov programu Excel

Jednoduché použitie

Uložte si dáta vo formáte Excel (.xls a .xlsx) a generujte súbory Word (.doc a .docx) niekoľkými kliknutiami :)


Ako to funguje?

Pozrite sa na svoj excelový súbor


V tomto príklade excelový súbor obsahuje informácie o klientoch. Každý riadok zodpovedá konkrétnemu klientovi. Mená sú v stĺpci A, priezviská v stĺpci B a profesie v kolónke C.

Kliknutím zobrazíte

Vytvorte dokument programu Word (.doc alebo .docx)


Kliknutím zobrazíte

Vytvorte "šablónu" (súbor word) na generovanie nových dokumentov (súbory word). Tu text „šablóny“ obsahuje názvy stĺpcov excelového súboru orámované zloženými zátvorkami: (A), (B) a (C).

Program vygeneruje nové doklady podľa „šablóny“ nahradí všetky (A), (B) a (C) zodpovedajúce hodnoty buniek zo súboru programu Excel: (A)- názov, (B)- priezvisko, (C)- povolanie.

Na karte si môžete nastaviť aj vlastné znaky ohraničenia nastavenie programy.

Vyberte cesty pre súbory a priečinky


Vyberte cesty pre súbory a priečinky (tlačidlá označené Vyberte). V programe zadáte nasledujúce cesty:

Excel súbor s údajmi (*.xls, *.xlsx)- toto je cesta k vášmu excelovému súboru s údajmi (informácie o zákazníkovi);

Súbor šablóny programu Word (*.doc, *.docx) je cesta k vašej "šablóne" (slovný súbor vytvorený v predchádzajúcom kroku);

Priečinok na uloženie nových súborov programu Word- toto je cesta k priečinku, kam program uloží novovygenerované dokumenty.

Kliknutím zobrazíte

Nastavte hárky a riadky požadovaných údajov


Kliknutím zobrazíte

Nastavte počty listov a riadkov vášho excel súboru s údajmi (informáciami o klientoch), na ktorých chcete generovať dokumenty:

Údajové listy súboru Excel- počet listov vášho excelového súboru, ktoré sa budú podieľať na tvorbe nových dokumentov;

Dátové riadky súboru Excel- čísla riadkov hárkov (hárky uvedené v Údajové listy súboru Excel) vášho excelového súboru, ktorý sa bude podieľať na tvorbe nových dokumentov. Na základe údajov každého zadaného riadku sa vytvorí samostatný dokument (súbor word).

Číslovanie listov a riadkov v programe začína na 1 .

Raz, po sčítaní výsledkov olympiády, keď účastníci potrebovali rozposlať listy s výsledkami z absolvovaných (alebo neprospelých) predmetov, som si všimol, že dievča sedí a zadáva výsledky skúšky, meno študentky. a ďalšie informácie do šablóny listu rukami. Pred ňou ležalo niekoľko hárkov vytlačených z Excelu s menami a známkami. Copy-Paste, Ctrl + C - Ctrl + V, prenesenie celého mena z nominatívu do genitívu, a tak sa už pracovalo s polovicou prvého z troch údajových listov. Čo myslíte, ako dlho by mohla sedieť, kopírovať údaje a potom kontrolovať výsledok? Myslím, že dlho, a našlo by sa dosť veľa chýb. Potom však ešte musela podpísať poštové obálky... Zľutoval som jej čas a za pár minút som ukázal, ako sa tento proces dá zautomatizovať pomocou jednoduchých prostriedkov. Po krátkej exkurzii bola jej práca hotová za 20 minút.

V tejto lekcii vám ukážem, ako rýchlo vytvárať dokumenty (listy, pozvánky) s minimom času. V rôznych verziách jazykov sa tento opísaný proces nazýva inak. Takže v ruštine je to "Merge" a v angličtine - "Merge".

Dúfam, že tak isto vznikajú aj "listy šťastia" z dôchodkového fondu, daňové výmery :)

Nástroje

Na vytváranie dokumentov potrebujeme OpenOffice Writer. V ňom vytvoríme šablónu listu. Budete tiež potrebovať OpenOffice Calc. V ňom vytvoríme databázu s menami a adresami tých osôb, ktoré napríklad chceme pozvať na párty. Namiesto programov z balíka OpenOffice možno jednoducho použiť MS Word a Excel. Databáza môže jednoducho ležať v MS Access. A tak, začnime.

Vytvorenie databázy

Databáza nie je nič iné ako tabuľka v MS Excel alebo OpenOffice Calc, kde sú dáta usporiadané do stĺpcov a prvý riadok slúži na pomenovanie stĺpcov. Začnime napríklad stĺpcami „meno“, „mesto“, „psč“, „adresa“. Zadajte údaje a uložte súbor na disk.



Ako databázy možno použiť aj iné zdroje, napríklad adresár programu Outlook alebo databázu MS Access.

Vytvorte šablónu listu

S tvorbou šablóny listu je situácia trochu komplikovanejšia. Keďže údaje z tabuľky (našej databázy) budú do šablóny nahradené tak, ako sú, potom musí byť písmeno napísané zodpovedajúcim spôsobom. Ak je vaše celé meno vo vašej databáze uvedené v nominatívnom prípade, je nepravdepodobné, že toto pole budete môcť použiť v odvolaní „Vážený,<ФИО>!" a pre obálku v riadku „Komu:<ФИО>". V druhom prípade bude celé meno vyzerať trochu nemotorne.

Pri zostavovaní predlohy listu odporúčam začať napísaním listu nejakej skutočnej osobe. Môžete pre seba. Potom v ňom zvýraznite údaje, ktoré preberiete z databázy a nahraďte ich príslušnými políčkami. Pred nahradením vybraného textu poľom odporúčam venovať pozornosť tomu, akým písmenom má pole v databáze začínať (malé alebo veľké). Šablónu môžete samozrejme vytvoriť okamžite s poľami, ale potom si možno nevšimnete niektoré chyby, ako sú nezrovnalosti v prípadoch.



Už vo vyššie uvedenej šablóne je jasné, že potrebujeme celé meno v prípade genitívu a pole obsahujúce iba krstné a stredné meno. Prvým poľom môžeme nahradiť „Komu“ za „Príjemca“ a potom nám bude úplne vyhovovať celé meno v nominatívnom prípade. S druhým poľom je všetko o niečo komplikovanejšie a budeme musieť vytvoriť ďalší stĺpec v databáze a vyplniť ho príslušnými údajmi. V jednej z nasledujúcich lekcií vám poviem, ako to urobiť automaticky, ale zatiaľ budeme predpokladať, že už také pole máme.

Ak chcete vložiť pole a naviazať šablónu na databázu, musíte vykonať nasledujúcu postupnosť akcií. Vyberte databázu v OpenOffice Writer



a kliknite na "Definovať".



Potom vložte pole z pripojenej databázy na správne miesto. Ak to chcete urobiť, stlačte Ctrl + F2 alebo z ponuky "Vložiť" vyberte "Polia" a "Iné". V okne, ktoré sa otvorí, vyberte záložku "Databázy", v type poľa zvoľte "Polia hromadnej korešpondencie", vyberte príslušné pole z databázy a kliknite na "Vložiť". V tomto okne je možné vybrať aj samotnú databázu.



Po vložení jedného poľa bez zatvorenia aktuálneho okna vyberte text, ktorý sa má nahradiť nasledujúcim poľom, vyberte pole a znova kliknite na „Vložiť“. A tak pre každé z polí.

V prípade MS Word je situácia trochu podobná a možno aj pohodlnejšia. Po vytvorení tabuľky v programe MS Excel spustite MS Word a prejdite na kartu „Mailouts“. Na tejto karte môžete vidieť tri potrebné kroky: „Spustiť zlúčenie“, „Vytvoriť dokument a vložiť polia“ a „Dokončiť“. Existuje aj medzikrok „Zobraziť výsledok“, ale je voliteľný.

A tak práca začína výberom dokumentu. Môžu to byť listy, nálepky, bežný dokument programu Word. Priamo tu môžete spustiť aj sprievodcu zlúčením, ktorý vás prevedie všetkými krokmi procesu. Ďalším krokom je výber príjemcu, teda databázy. Tu si môžete vybrať hotovú databázu (napríklad tabuľku MS Excel vytvorenú v predchádzajúcej fáze) alebo vytvoriť nový zoznam. Po zvolení zoznamu sa aktivujú tlačidlá „Vložiť zlučovacie pole“, „Upraviť zoznam príjemcov“ atď. záznamy potrebné na zlúčenie.







Pri vkladaní polí považujem za vhodné zvýrazniť všetky polia sivou farbou kliknutím na tlačidlo „Vybrať zlúčiť polia“. V opačnom prípade, ak je takýchto polí veľa, môžu sa v texte stratiť.

A tak je šablóna pripravená.

Generovanie písmen

Poslednou fázou je generovanie písmen. V OpenOffice na tento účel v ponuke „Nástroje“ vyberte „Sprievodca hromadnou korešpondenciou ...“ a prejdite všetkými navrhovanými krokmi na spojenie našej šablóny s databázou.





V dialógovom okne vidíme, že z navrhnutých 8 bodov nemusíme vykonať niektoré body. Takže dokument už máme vytvorený a nemusíme ho upravovať, už sme vložili aj blok adresy. Ale poďme pekne po poriadku.

Najprv si zvolíme, že vytvoríme písmená na základe aktuálneho dokumentu a klikneme na „Ďalej“ v spodnej časti okna. Druhým bodom je, či budeme mať tento papierový list alebo e-mail. Ak chcete list uložiť do súboru, vyberte prvý. Kliknite na „Ďalej“. V treťom odseku sa nám ponúka vytvorenie bloku adresy, ale keďže sme ho vytvorili ručne, zrušíme začiarknutie všetkých políčok a prejdeme na ďalší krok. Tu sa nám ponúka vloženie odvolania, ale tiež ho už máme, takže kliknite na „Ďalej“. V šiestom odseku môžete dokument upraviť, pozrieť si dokument s poliami vloženými z databázy a prípadne niektoré polia vylúčiť.



V kroku 7 sa navrhuje upraviť každý zo súborov vytvorených ako výsledok pripojenia šablóny k databáze. A nakoniec, v poslednom kroku 8 si môžete vybrať, čo robiť s prijatými dokumentmi. Môžete uložiť, vytlačiť alebo poslať e-mailom. V tomto prípade môžete uložiť všetky dokumenty do jedného súboru alebo každý dokument samostatne.

V programe MS Word sa proces spájania dokončí kliknutím na tlačidlo „Nájsť a zlúčiť“.



Z roletového menu je zrejmé, že všetky listy je možné vytlačiť a odoslať e-mailom, nie je však zrejmé, že všetky je možné uložiť do súboru. Pre uloženie zvoľte prvú položku – „Zmeniť jednotlivé doklady“. Tým sa otvorí nový dokument, v ktorom bude každé nové písmeno umiestnené na novej stránke a tu už môže byť tento súbor uložený.

Záver

A tak ste sa v tejto lekcii naučili používať nástroj zlučovania na vytváranie dokumentov na základe šablóny. Stručne si napíšme postupnosť akcií:

  1. V tabuľkovom procesore je potrebné vytvoriť databázu, z ktorej sa budú brať údaje na vyplnenie polí.
  2. Je potrebné vytvoriť šablónu listu.
  3. Vykonajte zlúčenie a uložte výsledok.