Mi generišemo Microsoft Word dokumente u PHP-u. Programsko generiranje dokumenata obrazaca u Wordu Kreiranje predloška Word dokumenta

U prethodnim člancima iz serije „Automatsko popunjavanje dokumenata“, govorio sam o tome kako kreirati korisnički interfejs aplikacije, organizovati validaciju unosa i dobiti broj rečima bez upotrebe VBA koda. U ovom završnom članku ćemo govoriti o magiji - prenošenju svih potrebnih vrijednosti iz Excel radne knjige u Word dokument. Dozvolite mi da vam pokažem krajnji rezultat:

Opis mehanizma

Za početak ću općenito opisati kako će se podaci prenijeti u Word dokument. Prije svega, potreban nam je šablon word dokument A koji sadrži sve oznake, tabele i dio teksta koji će ostati nepromijenjen. U ovom predlošku trebate definirati mjesta na kojima će biti zamijenjene vrijednosti iz Excel radne knjige - najprikladniji način da to učinite je pomoću bookmarka. Nakon toga, potrebno je da uredite Excel podatke na način da se poklapaju sa Word šablonom i na kraju, ali ne i najmanje važno, napišite samu proceduru prenosa u VBA.

Dakle, prvo prvo.

Kreirajte predložak Word dokumenta

Ovdje je sve krajnje jednostavno - kreiramo običan dokument, kucamo i formatiramo tekst, općenito, postižemo kako bismo dobili potrebnu formu. Na onim mjestima gdje će biti potrebno zamijeniti vrijednosti iz Excela, morate kreirati oznake. To se radi na sljedeći način:

Dakle, morat ćete kreirati sve oznake, odnosno označiti sva mjesta na koja će biti umetnuti podaci iz Excela. Dobivena datoteka mora biti sačuvana kao "MS Word šablon" koristeći stavku menija "Datoteka" -> "Sačuvaj kao...".

Priprema podataka u Excelu

Radi praktičnosti, odlučio sam sve podatke koje je potrebno prenijeti u Word dokument staviti na poseban radni list pod nazivom Bookmarks - bookmarks. Ovaj list ima dvije kolone: ​​prvi sadrži nazive oznaka (tačno onako kako su imenovani u Word dokumentu), a drugi sadrži odgovarajuće vrijednosti koje treba prenijeti.

Neke od ovih vrijednosti se dobijaju direktno iz lista za unos podataka, a neke su iz pomoćnih tabela koje se nalaze na listu podrške. U ovom članku neću analizirati formule koje izračunavaju željene vrijednosti, ako nešto nije jasno, postavljajte pitanja u komentarima.

U ovoj fazi važno je ispravno navesti sva imena oznaka - o tome ovisi ispravnost prijenosa podataka.

Postupak prijenosa

Ali ovo je najzanimljivije. Postoje dvije opcije za izvršavanje koda za migraciju podataka:

  • Kod se izvršava u Excel radnoj svesci, podaci se prosleđuju u Word jednu po jednu vrednost i odmah se smeštaju u dokument.
  • Kod se izvršava u posebnom Word dokumentu, svi podaci se prenose iz Excela u jednoj seriji.

Što se tiče brzine izvršenja, posebno kada u velikom broju oznake, druga opcija izgleda mnogo atraktivnije, ali zahtijeva složenije radnje. To je onaj koji sam koristio.

Evo šta treba uraditi:

  • Kreirajte predložak Word dokumenta s omogućenim makroima. Ovaj šablon će sadržati izvršni VBA kod.
  • U kreirani šablon potrebno je postaviti program napisan u VBA. Da biste to učinili, kada uređujete predložak, pritisnite kombinaciju tipki Alt + F11 i unesite programski kod u prozor uređivača Visual Basica koji se otvori.
  • U radnoj svesci Excel napišite kod koji poziva proceduru popunjavanja iz novokreiranog Word predloška.

Neću davati tekst procedure u članku - lako se može pogledati u datoteci FillDocument.dotm koja se nalazi u folderu Template u arhivi primjera.

Kako sve to možete iskoristiti da riješite svoj određeni problem?

Razumijem da na riječima sve izgleda vrlo jednostavno, ali šta se dešava u praksi? Predlažem da jednostavno koristite gotovu opciju. Preuzmite arhivu sa primjerom, u Excel radnoj knjizi, pritisnite kombinaciju tipki Alt + F11 da otvorite Visual Basic editor i pročitate sve moje komentare o programu. Da biste promijenili program koji odgovara vašim potrebama, potrebno je samo promijeniti vrijednost nekoliko konstanti, koje se nalaze na samom početku programa. Možete slobodno kopirati cijeli tekst programa u svoj projekat.

Arhivska struktura

Arhiva priložena ovom članku sadrži nekoliko datoteka.

Glavna datoteka je Excel radna knjiga pod nazivom "Generiraj potvrde". U ovoj radnoj svesci postoje 4 radna lista, od kojih su samo dva prikazana: "Input" - list za unos podataka i "Baza podataka" - arhiva svih unesenih dokumenata.

Fascikla Templates sadrži predloške Word dokumenata. Jedan od njih je šablon koji sadrži program za popunjavanje obeleživača, a drugi je obrazac za popunjavanje. Šablon sa programom možete koristiti bez izmjena, ali će obrazac za popunjavanje, naravno, morati biti izmijenjen u skladu sa vašim potrebama.

Kako preraditi primjer "za sebe"?

  1. Pripremite predložak Word dokumenta koji će biti dovršen. Napravite sve potrebne oznake u njemu i sačuvajte ga kao "MS Word šablon".
  2. Kopirajte datoteku FillDocument.dotm iz arhive priložene ovom članku u fasciklu sa pripremljenim šablonom. Ovaj fajl je odgovoran za popunjavanje obeleživača šablona i ništa ne treba menjati u njemu.
  3. Pripremite Excel radnu svesku za unos podataka. Na vama je da odlučite da li će imati neko "napredno" korisničko sučelje i izvršiti razne škakljive proračune. Glavna stvar je da sadrži radni list s tablicom korespondencije između naziva oznake u Word predlošku i vrijednosti koju treba zamijeniti.
  4. Umetnite VBA programski kod iz datoteke uzorka u pripremljenu radnu svesku. Zamijenite sve konstante prema vašem projektu.
  5. Testirajte ispravan rad.
  6. Aktivno uživajte!

Jednom, nakon sumiranja rezultata olimpijade, kada su učesnici morali da pošalju pisma sa rezultatima položenih (ili nepoloženih) predmeta, primetio sam da devojka sedi i upisuje rezultate ispita, ime studenta. i druge informacije u predložak pisma svojim rukama. Ispred nje je ležalo nekoliko listova ispisanih iz Excela s imenima i ocjenama. Copy-Paste, Ctrl + C - Ctrl + V, prenos punog imena iz nominativa u genitiv, i tako je posao već obavljen sa polovinom prvog od tri lista sa podacima. Što mislite, koliko dugo bi mogla sjediti i kopirati podatke, a zatim provjeravati rezultat? Mislim da dugo, i bilo bi dosta grešaka. Ali tada je ipak morala potpisati poštanske koverte... Bilo mi je žao njenog vremena i za nekoliko minuta sam pokazao kako se ovaj proces može automatizirati jednostavnim sredstvima. Nakon kraće ekskurzije, njen posao je završen za 20 minuta.

U ovoj lekciji ću vam pokazati kako brzo kreirati dokumente (pisma, pozivnice) uz minimalno vrijeme. U različitim verzijama jezika ovaj opisani proces naziva se različito. Dakle, na ruskom je to "Merge", a na engleskom - "Merge".

Nadam se da se na isti način kreiraju i "pisma sreće" iz penzionog fonda, poreska obaveštenja :)

Instrumenti

Za kreiranje dokumenata potreban nam je OpenOffice Writer. U njemu ćemo kreirati šablon pisma. Takođe će vam trebati OpenOffice Calc. U njemu ćemo napraviti bazu podataka sa imenima i adresama onih osoba koje, na primjer, želimo pozvati na zabavu. Umjesto programa iz OpenOffice paketa, lako se mogu koristiti MS Word i Excel. Baza podataka može lako ležati u MS Access-u. I tako, hajde da počnemo.

Kreiranje baze podataka

Baza podataka nije ništa drugo do tabela u MS Excel-u ili OpenOffice Calc-u, gde su podaci raspoređeni u kolone, a prvi red se koristi za imenovanje kolona. Počnimo, na primjer, kolone "ime", "grad", "poštanski broj", "adresa". Unesite podatke i sačuvajte datoteku na disk.



Drugi izvori se mogu koristiti kao baze podataka, na primjer Adresar Outlook ili MS Access baza podataka.

Kreirajte predložak pisma

Sa kreiranjem šablona pisma situacija je malo komplikovanija. Budući da će podaci iz tabele (naše baze podataka) biti zamijenjeni u šablonu takvi kakvi jesu, tada se i pismo mora pisati u skladu s tim. Ako se vaše puno ime nalazi u nominativu u vašoj bazi podataka, malo je vjerovatno da ćete moći koristiti ovo polje u žalbi „Poštovani,<ФИО>!" a za kovertu u redu "Za:<ФИО>". U potonjem slučaju, puno ime će izgledati pomalo nespretno.

Prilikom sastavljanja šablona pisma, preporučujem da počnete sa pisanjem pisma nekima stvarna osoba. Možete sebi. Zatim u njemu označite podatke koje ćete preuzeti iz baze podataka i zamijeniti ih odgovarajućim poljima. Prije nego što odabrani tekst zamijenite poljem, preporučujem da obratite pažnju na to kojim slovom polje u bazi treba da počinje (malo ili veliko). Naravno, možete kreirati šablon odmah s poljima, ali tada možda nećete primijetiti neke greške, kao što su nedosljednosti u slučajevima.



Već u gornjem predlošku jasno je da nam je potrebno puno ime u padežu genitiva i polje koje sadrži samo ime i srednje ime. Sa prvim poljem možemo zamijeniti “Prima” sa “Primalac” i tada će nam puno ime u nominativu savršeno odgovarati. Sa drugim poljem sve je nešto komplikovanije i moraćemo da kreiramo još jednu kolonu u bazi i popunimo je odgovarajućim podacima. U jednoj od narednih lekcija reći ću vam kako da to uradite automatski, ali za sada ćemo pretpostaviti da već imamo takvo polje.

Da biste umetnuli polje i povezali predložak sa bazom podataka, morate izvršiti sljedeći niz radnji. Odaberite bazu podataka u OpenOffice Writer-u



i kliknite na "Definiraj".



Zatim umetnite polje iz povezane baze podataka na pravo mjesto. Da biste to učinili, pritisnite Ctrl + F2 ili odaberite "Polja" i "Ostalo" iz izbornika "Umetanje". U prozoru koji se otvori odaberite karticu "Baze podataka", u tipu polja odaberite "Polja spajanja pošte", odaberite odgovarajuće polje iz baze podataka i kliknite "Umetni". U ovom prozoru se može odabrati i sama baza podataka.



Nakon što je jedno polje umetnuto, bez zatvaranja trenutnog prozora, odaberite tekst koji želite zamijeniti sljedećim poljem, odaberite polje i ponovo kliknite na "Ubaci". I tako za svako od polja.

Za MS Word situacija je donekle slična i možda zgodnija. Nakon kreiranja tabele u MS Excel-u, pokrenite MS Word i idite na karticu "Mailouts". Na ovoj kartici možete vidjeti tri neophodna koraka: "Pokreni spajanje", "Sastavi dokument i umetanje polja" i "Završi". Postoji i međukorak "Prikaži rezultat", ali nije obavezan.

I tako posao počinje odabirom dokumenta. To mogu biti slova, naljepnice, običan Word dokument. Ovdje također možete pokrenuti čarobnjaka za spajanje, koji će vas voditi kroz sve korake u procesu. Sljedeći korak je odabir primatelja, odnosno baze podataka. Ovdje možete odabrati gotovu bazu podataka (na primjer, MS Excel tabelu kreiranu u prethodnoj fazi) ili kreirati novu listu. Nakon odabira liste, aktiviraju se dugmad „Ubaci polje za spajanje“, „Uredi listu primalaca“ itd. Kroz dijalog „Uredi listu primalaca“, koji se otvara odgovarajućim dugmetom, možete sa cele liste izabrati samo evidencije neophodne za spajanje.







Prilikom umetanja polja smatram da je zgodno označiti sva polja sivom bojom klikom na dugme "Odaberi objedini polja". U suprotnom, ako postoji mnogo takvih polja, onda se mogu izgubiti u tekstu.

I tako, šablon je spreman.

Generacija pisma

Posljednja faza je generiranje slova. U OpenOfficeu, za to, u meniju "Alati", izaberite "Čarobnjak za spajanje pošte..." i prođite kroz sve predložene korake da kombinujete naš predložak sa bazom podataka.





U dijaloškom okviru vidimo da od predloženih 8 tačaka neke tačke ne moramo izvoditi. Dakle, već smo kreirali dokument i ne trebamo ga uređivati, već smo umetnuli i blok adrese. Ali idemo redom.

Prvo biramo da kreiramo slova na osnovu trenutnog dokumenta i kliknemo "Dalje" na dnu prozora. Druga stvar je da li ćemo imati ovo papirno pismo ili e-mail. Da bi pismo bilo sačuvano u fajlu, izaberite prvo. Kliknite na "Dalje". U trećem pasusu nudimo nam da kreiramo blok adrese, ali pošto smo ga kreirali ručno, poništavamo sva polja i prelazimo na sljedeći korak. Ovdje nam se nudi da ubacimo žalbu, ali je također već imamo, pa kliknite na "Dalje". U šestom pasusu možete urediti dokument, pogledati dokument sa umetnutim poljima iz baze podataka i po potrebi isključiti neka polja.



U koraku 7, predlaže se uređivanje svake datoteke stvorene kao rezultat povezivanja predloška sa bazom podataka. I konačno, u posljednjem, 8. koraku, možete odabrati šta ćete raditi sa primljenim dokumentima. Možete sačuvati, odštampati ili poslati e-mailom. U tom slučaju možete sačuvati sve dokumente u jednoj datoteci ili svaki dokument posebno.

U MS Wordu, proces spajanja se završava klikom na dugme "Pronađi i spoji".



Iz padajućeg menija je očigledno da se sva pisma mogu štampati i slati putem e-pošte, ali nije očigledno da se sva mogu sačuvati u fajlu. Za spremanje odaberite prvu stavku - "Promijeni pojedinačne dokumente". Ovo će otvoriti novi dokument u kojem će se nalaziti svako novo slovo nova stranica, i ovdje već možete sačuvati ovaj fajl.

Zaključak

I tako, u ovoj lekciji ste naučili kako koristiti alat za spajanje za kreiranje dokumenata na osnovu predloška. Hajde da ukratko zapišemo redoslijed radnji:

  1. U procesoru proračunskih tablica potrebno je kreirati bazu podataka iz koje će se preuzimati podaci za popunjavanje polja.
  2. Morate kreirati šablon pisma.
  3. Izvršite spajanje i sačuvajte rezultat.

A, prezimena u koloni B i zanimanja u rubrici C.

2. Kreirajte word dokument (.doc ili .docx)


(A), (B) i (C).

(A), (B) i (C) (A)- ime, (B)- prezime, (C)- profesija.

Postavke programe.

3. Odaberite putanje za datoteke i mape


Odaberite

4. Postavite listove i redove željenih podataka


Podaci u Excel fajlu

Redovi podataka Excel datoteke Podaci u Excel fajlu

1 .

Ako želite da svi listovi i/ili redovi vaše excel datoteke sa podacima učestvuju u formiranju dokumenta, kliknite na odgovarajuće dugme na desnoj strani sa natpisom brojevi(njegov natpis će se promijeniti u Sve).

5. Postavite predložak imena za nove datoteke riječi


Postavite šablon imena za nove word fajlove:

Novi predložak za nazive datoteka riječi je šablon za nazive novih dokumenata (word-fajlova) koje generiše program. Ovdje predložak imena sadrži nazive stupaca excel datoteke, uokvirene vitičastim zagradama: (A) i (B). Prilikom generisanja novog dokumenta, program će zamijeniti sve (A) i (B) odgovarajuće vrijednosti ćelija iz excel datoteke - to će biti naziv novog dokumenta (word datoteke).

Na kartici možete postaviti vlastite ivice znakova Postavke programe.

6. Kliknite na "Generiraj"


Kliknite na dugme Generiraj i napredak će se pojaviti na ekranu. Dokumenti (word-fajlovi) će biti kreirani tačno onoliko redova excel-datoteke koji su uključeni u formiranje.

7. Sve


Svi dokumenti (word-fajlovi) su kreirani i nalaze se u fascikli navedenoj u Folder za spremanje novih datoteka riječi. sve :)

Exwog- generator šablona izvještaja iz Excela u Word

Besplatni generator Word fajlova po šablonu (Word fajl) na osnovu podataka Excel fajla

Radi na Mac OS, Windows i Linux

Omogućava vam da postavite nazive novih generiranih datoteka riječi

Omogućava postavljanje listova i redova potrebnih podataka

Omogućava vam da postavite granične znakove za nazive stupaca programa Excel

Jednostavan za korištenje

Spremite svoje podatke u Excel format (.xls i .xlsx) i generirajte Word datoteke (.doc i .docx) u nekoliko klikova :)


Kako radi?

Pogledajte svoju excel datoteku


U ovom primjeru, excel datoteka sadrži informacije o klijentima. Svaka linija odgovara određenom klijentu. Imena su u koloni A, prezimena u koloni B i zanimanja u rubrici C.

Kliknite da vidite

Kreirajte word dokument (.doc ili .docx)


Kliknite da vidite

Kreirajte "template" (word-file) za generiranje novih dokumenata (word-files). Ovdje tekst "šablona" sadrži nazive stupaca excel datoteke, uokvirene vitičastim zagradama: (A), (B) i (C).

Program će generirati nove dokumente prema "šablonu" zamjenjujući sve (A), (B) i (C) odgovarajuće vrijednosti ćelije iz excel datoteke: (A)- ime, (B)- prezime, (C)- profesija.

Na kartici možete postaviti i vlastite granične znakove Postavke programe.

Odaberite putanje za datoteke i mape


Odaberite putanje za datoteke i mape (tipke označene Odaberite). U programu navodite sljedeće staze:

Excel datoteka s podacima (*.xls, *.xlsx)- ovo je put do vaše excel datoteke sa podacima (informacije o korisniku);

Word šablonski fajl (*.doc, *.docx) je put do vašeg "šablona" (word fajl kreiran u prethodnom koraku);

Folder za spremanje novih datoteka riječi- ovo je put do foldera u koji će program pohraniti novogenerirane dokumente.

Kliknite da vidite

Postavite listove i redove željenih podataka


Kliknite da vidite

Postavite brojeve listova i redova vaše excel datoteke s podacima (informacijama o klijentima) na kojima želite generirati dokumente:

Podaci u Excel fajlu- brojevi listova vaše excel-datoteke koji će biti uključeni u formiranje novih dokumenata;

Redovi podataka Excel datoteke- brojevi redova listova (listova navedenih u Podaci u Excel fajlu) vaše excel datoteke koja će biti uključena u formiranje novih dokumenata. Na osnovu podataka svake navedene linije, kreiraće se poseban dokument (word-file).

Numeracija listova i redova u programu počinje sa 1 .