Generujemy dokumenty Microsoft Word w PHP. Programowe generowanie dokumentów formularza w programie Word Tworzenie szablonu dokumentu programu Word

W poprzednich artykułach z serii „Automatyzacja wypełniania dokumentów” mówiłem o tym, jak stworzyć interfejs użytkownika aplikacji, zorganizować walidację danych wejściowych i uzyskać liczbę słownie bez użycia kodu VBA. W tym ostatnim artykule porozmawiamy o magii - przeniesieniu wszystkich niezbędnych wartości ze skoroszytu Excela do dokumentu Worda. Pokażę efekt końcowy:

Opis mechanizmu

Na początek opiszę ogólnie dokładnie, w jaki sposób dane zostaną przeniesione do dokumentu Word. Przede wszystkim potrzebujemy szablonu dokument słowny A zawierający wszystkie znaczniki, tabele i część tekstu, która pozostanie niezmieniona. W tym szablonie musisz zdefiniować miejsca, w których zostaną podstawione wartości ze skoroszytu Excela - najwygodniej zrobić to za pomocą zakładek. Następnie należy ułożyć dane w Excelu tak, aby pasowały do ​​szablonu Worda, a na końcu napisać samą procedurę transferu w VBA.

Więc najpierw najważniejsze.

Utwórz szablon dokumentu programu Word

Tutaj wszystko jest niezwykle proste - tworzymy zwykły dokument, wpisujemy i formatujemy tekst, ogólnie osiągamy, aby uzyskać potrzebną formę. W miejscach, w których konieczne będzie zastąpienie wartości z Excela, należy utworzyć zakładki. Odbywa się to w następujący sposób:

W związku z tym będziesz musiał utworzyć wszystkie zakładki, czyli zaznaczyć wszystkie miejsca, w których zostaną wstawione dane z Excela. Wynikowy plik należy zapisać jako „Szablon MS Word” za pomocą pozycji menu „Plik” -> „Zapisz jako…”.

Przygotowanie danych w Excelu

Dla wygody postanowiłem umieścić wszystkie dane, które należy przenieść do dokumentu Word, w osobnym arkuszu roboczym o nazwie Zakładki - zakładki. Ten arkusz ma dwie kolumny: pierwsza zawiera nazwy zakładek (dokładnie tak, jak są nazwane w dokumencie Word), a druga zawiera odpowiednie wartości do przeniesienia.

Część z tych wartości uzyskuje się bezpośrednio z arkusza wprowadzania danych, a część z tabel pomocniczych znajdujących się na arkuszu pomocniczym. W tym artykule nie będę analizować formuł obliczających pożądane wartości, jeśli coś nie jest jasne, zadawaj pytania w komentarzach.

Na tym etapie ważne jest, aby poprawnie podać wszystkie nazwy zakładek - od tego zależy poprawność przesyłania danych.

Procedura transferu

Ale to jest najciekawsze. Istnieją dwie możliwości wykonania kodu migracji danych:

  • Kod jest wykonywany w skoroszycie programu Excel, dane są przekazywane do programu Word po jednej wartości na raz i natychmiast umieszczane w dokumencie.
  • Kod jest wykonywany w osobnym dokumencie Word, wszystkie dane są przesyłane z Excela w jednej partii.

Pod względem szybkości wykonania, zwłaszcza gdy w dużych ilościach zakładek, druga opcja wygląda znacznie atrakcyjniej, ale wymaga bardziej skomplikowanych działań. To ten, którego użyłem.

Oto, co należy zrobić:

  • Utwórz szablon dokumentu programu Word z obsługą makr. Ten szablon będzie zawierał wykonywalny kod VBA.
  • W utworzonym szablonie należy umieścić program napisany w języku VBA. Aby to zrobić, podczas edycji szablonu naciśnij kombinację klawiszy Alt + F11 i wprowadź kod programu w otwartym oknie edytora Visual Basic.
  • W skoroszycie programu Excel napisz kod wywołujący procedurę wypełniania z nowo utworzonego szablonu programu Word.

Nie będę podawał tekstu procedury w artykule - można go łatwo przejrzeć w pliku FillDocument.dotm znajdującym się w folderze Template w przykładowym archiwum.

Jak możesz to wszystko wykorzystać do rozwiązania konkretnego problemu?

Rozumiem, że słownie wszystko wygląda bardzo prosto, ale co dzieje się w praktyce? Sugeruję, abyś po prostu skorzystał z gotowej opcji. Pobierz archiwum z przykładem, w skoroszycie programu Excel naciśnij kombinację klawiszy Alt + F11, aby otworzyć edytor Visual Basic i przeczytać wszystkie moje komentarze dotyczące programu. Aby dostosować program do swoich potrzeb, wystarczy zmienić wartość kilku stałych, które znajdują się na samym początku programu. Możesz dowolnie skopiować cały tekst programu do swojego projektu.

Struktura archiwum

Archiwum dołączone do tego artykułu zawiera kilka plików.

Głównym plikiem jest skoroszyt programu Excel o nazwie „Generuj potwierdzenia”. W skoroszycie znajdują się 4 arkusze, z których tylko dwa są wyświetlane: „Wprowadzanie” – arkusz wprowadzania danych oraz „Baza danych” – archiwum wszystkich wprowadzonych dokumentów.

Folder Szablony zawiera szablony dokumentów programu Word. Jeden z nich to szablon zawierający program do wypełniania zakładek, a drugi to formularz do wypełnienia. Możesz użyć szablonu z programem bez zmian, ale formularz do wypełnienia będzie oczywiście musiał zostać zmieniony zgodnie z Twoimi potrzebami.

Jak przerobić przykład „dla siebie”?

  1. Przygotuj szablon dokumentu Word do wypełnienia. Utwórz w nim wszystkie niezbędne zakładki i zapisz jako „szablon MS Word”.
  2. Skopiuj plik FillDocument.dotm z archiwum załączonego do tego artykułu do folderu z przygotowanym szablonem. Ten plik odpowiada za wypełnienie zakładek szablonu i nic nie trzeba w nim zmieniać.
  3. Przygotuj skoroszyt programu Excel do wprowadzania danych. Do Ciebie należy decyzja, czy będzie miał „zaawansowany” interfejs użytkownika i wykona różne trudne obliczenia. Najważniejsze jest to, że zawiera arkusz roboczy z tabelą zgodności między nazwą zakładki w szablonie Word a wartością, która ma zostać zastąpiona.
  4. Wstaw kod programu VBA z przykładowego pliku do przygotowanego skoroszytu. Zastąp wszystkie stałe zgodnie z projektem.
  5. Sprawdź poprawność działania.
  6. Aktywnie ciesz się!

Pewnego razu po podsumowaniu wyników olimpiady, kiedy uczestnicy musieli wysłać listy z wynikami zaliczonych (lub niezaliczonych) przedmiotów, zauważyłem, że dziewczyna siedzi i wpisuje wyniki egzaminu, imię i nazwisko ucznia i inne informacje do szablonu listu własnymi rękami. Przed nią leżało kilka arkuszy wydrukowanych z Excela z nazwiskami i ocenami. Kopiuj-wklej, Ctrl + C - Ctrl + V, przenosząc pełną nazwę z mianownika na dopełniacz, i tak praca została już wykonana z połową pierwszego z trzech arkuszy danych. Jak myślisz, jak długo mogłaby siedzieć bez ruchu, kopiując dane, a następnie sprawdzając wynik? Myślę długo i byłoby sporo błędów. Ale wtedy jeszcze musiała podpisywać koperty pocztowe… Żal mi było jej czasu iw kilka minut pokazałam, jak ten proces można zautomatyzować prostymi środkami. Po krótkiej wycieczce jej praca została ukończona w ciągu 20 minut.

W tej lekcji pokażę Ci, jak szybko tworzyć dokumenty (listy, zaproszenia) przy minimalnym nakładzie czasu. W różnych wersjach językowych ten opisany proces nazywa się inaczej. Tak więc po rosyjsku jest to „Merge”, a po angielsku „Merge”.

Mam nadzieję, że "listy szczęścia" z funduszu emerytalnego, zawiadomienia podatkowe powstają w ten sam sposób :)

Narzędzia

Do tworzenia dokumentów potrzebujemy OpenOffice Writer. Stworzymy w nim szablon listu. Będziesz także potrzebował OpenOffice Calc. Stworzymy w nim bazę danych z nazwiskami i adresami osób, które chcemy np. zaprosić na imprezę. Zamiast programów z pakietu OpenOffice można bez problemu korzystać z MS Word i Excel. Baza danych może łatwo leżeć w MS Access. A więc zacznijmy.

Tworzenie bazy danych

Baza danych to nic innego jak tabela w programie MS Excel lub OpenOffice Calc, w której dane są ułożone w kolumny, a pierwszy wiersz służy do nazwania kolumn. Zacznijmy na przykład od kolumn „nazwa”, „miasto”, „kod pocztowy”, „adres”. Wprowadź dane i zapisz plik na dysku.



Inne źródła mogą służyć na przykład jako bazy danych Książka adresowa Outlook lub baza danych MS Access.

Utwórz szablon listu

Przy tworzeniu szablonu listu sytuacja jest nieco bardziej skomplikowana. Ponieważ dane z tabeli (naszej bazy danych) zostaną wstawione do szablonu tak jak są, to list musi być odpowiednio napisany. Jeśli Twoje imię i nazwisko znajduje się w mianowniku w Twojej bazie danych, jest mało prawdopodobne, abyś mógł użyć tego pola w odwołaniu „Drogi,<ФИО>!" a dla koperty w wierszu „Do:<ФИО>". W tym drugim przypadku pełna nazwa będzie wyglądać nieco niezdarnie.

Przy komponowaniu szablonu listu polecam zacząć od napisania listu do niektórych prawdziwa osoba. Możesz do siebie. Następnie zaznacz w nim dane, które weźmiesz z bazy i zastąp je odpowiednimi polami. Przed zamianą zaznaczonego tekstu na pole polecam zwrócić uwagę na jaką literę ma zaczynać się pole w bazie danych (małe czy duże). Oczywiście możesz od razu utworzyć szablon z polami, ale wtedy możesz nie zauważyć pewnych błędów, takich jak niespójności w przypadkach.



Już w powyższym szablonie widać, że potrzebujemy pełnego imienia i nazwiska w dopełniaczu oraz pola zawierającego tylko imię i drugie imię. Przy pierwszym polu możemy zamienić „Do” na „Odbiorca” i wtedy pełna nazwa w mianowniku będzie nam idealnie pasować. Z drugim polem wszystko jest nieco bardziej skomplikowane i będziemy musieli utworzyć kolejną kolumnę w bazie danych i wypełnić ją odpowiednimi danymi. W jednej z kolejnych lekcji opowiem jak zrobić to automatycznie, ale na razie założymy, że takie pole już mamy.

Aby wstawić pole i powiązać szablon z bazą danych należy wykonać następującą sekwencję czynności. Wybierz bazę danych w OpenOffice Writer



i kliknij „Definiuj”.



Następnie wstaw pole z podłączonej bazy danych we właściwe miejsce. Aby to zrobić, naciśnij Ctrl + F2 lub wybierz „Pola” i „Inne” z menu „Wstaw”. W oknie, które zostanie otwarte, wybierz zakładkę „Bazy danych”, w polu typu pola wybierz „Pola korespondencji seryjnej”, wybierz odpowiednie pole z bazy danych i kliknij „Wstaw”. W tym oknie można również wybrać samą bazę danych.



Po wstawieniu jednego pola, bez zamykania bieżącego okna, zaznacz tekst, który ma zostać zastąpiony kolejnym polem, zaznacz pole i ponownie kliknij „Wstaw”. I tak dla każdego z pól.

W przypadku MS Word sytuacja jest nieco podobna i być może wygodniejsza. Po utworzeniu tabeli w MS Excel uruchom MS Word i przejdź do zakładki „Mailouts”. Na tej karcie możesz zobaczyć trzy niezbędne kroki: „Rozpocznij scalanie”, „Utwórz dokument i wstaw pola” oraz „Zakończ”. Istnieje również etap pośredni „Wyświetl wynik”, ale jest on opcjonalny.

I tak praca zaczyna się od wyboru dokumentu. Mogą to być litery, naklejki, zwykły dokument Word. Możesz także uruchomić tutaj kreatora scalania, który przeprowadzi Cię przez wszystkie etapy procesu. Kolejnym krokiem jest wybór odbiorcy, czyli bazy danych. Tutaj możesz wybrać gotową bazę danych (na przykład utworzoną na poprzednim etapie tabelę MS Excel) lub utworzyć nową listę. Po wybraniu listy uaktywnią się przyciski „Wstaw pole scalania”, „Edytuj listę odbiorców” itp. Poprzez okno dialogowe „Edytuj listę odbiorców”, które otwiera się odpowiednim przyciskiem, możesz wybrać z całej listy tylko zapisy niezbędne do połączenia.







Podczas wstawiania pól wygodnie jest podświetlić wszystkie pola na szaro, klikając przycisk „Wybierz pola scalania”. W przeciwnym razie, jeśli takich pól jest wiele, mogą one zostać utracone w tekście.

I tak, szablon jest gotowy.

Generowanie listów

Ostatnim etapem jest generowanie liter. W OpenOffice w tym celu w menu „Narzędzia” wybierz „Kreator korespondencji seryjnej…” i przejdź przez wszystkie proponowane kroki, aby połączyć nasz szablon z bazą danych.





W oknie dialogowym widzimy, że spośród proponowanych 8 punktów, niektórych punktów nie musimy wykonywać. Więc mamy już utworzony dokument i nie musimy go edytować, mamy też już wstawiony blok adresu. Ale chodźmy po kolei.

Najpierw wybieramy, że tworzymy listy na podstawie bieżącego dokumentu i klikamy „Dalej” u dołu okna. Druga sprawa to czy będziemy mieli ten papierowy list czy e-mail. Aby list został zapisany do pliku, wybierz pierwszy. Kliknij Następny". W trzecim akapicie proponujemy utworzenie bloku adresu, ale ponieważ utworzyliśmy go ręcznie, usuwamy zaznaczenie wszystkich pól i przechodzimy do następnego kroku. Tutaj proponujemy wstawienie odwołania, ale już je mamy, więc kliknij „Dalej”. W szóstym akapicie możesz edytować dokument, spojrzeć na dokument z polami wstawionymi z bazy danych iw razie potrzeby wykluczyć niektóre pola.



W kroku 7 proponuje się edycję każdego z plików powstałych w wyniku podłączenia szablonu do bazy danych. I wreszcie, w ostatnim, kroku 8, możesz wybrać, co zrobić z otrzymanymi dokumentami. Możesz zapisać, wydrukować lub wysłać e-mailem. W takim przypadku możesz zapisać wszystkie dokumenty w jednym pliku lub każdy dokument osobno.

W MS Word proces scalania kończy się kliknięciem przycisku „Znajdź i połącz”.



Z rozwijanego menu jest oczywiste, że wszystkie listy można wydrukować i wysłać e-mailem, ale nie jest oczywiste, że wszystkie można zapisać do pliku. Aby zapisać, wybierz pierwszą pozycję - „Zmień poszczególne dokumenty”. Spowoduje to otwarcie nowego dokumentu, w którym będzie znajdować się każda nowa litera Nowa strona, a tutaj możesz już zapisać ten plik.

Wniosek

I tak, w tej lekcji nauczyłeś się, jak używać narzędzia scalania do tworzenia dokumentów na podstawie szablonu. Zapiszmy pokrótce kolejność działań:

  1. Konieczne jest utworzenie bazy danych w procesorze arkuszy kalkulacyjnych, z której będą pobierane dane do wypełnienia pól.
  2. Musisz utworzyć szablon listu.
  3. Wykonaj scalanie i zapisz wynik.

A, nazwiska w kolumnie B i zawody w kolumnie C.

2. Utwórz dokument Word (.doc lub .docx)


(A), (B) I (C).

(A), (B) I (C) (A)- nazwa, (B)- nazwisko, (C)- zawód.

Ustawienia programy.

3. Wybierz ścieżki dla plików i folderów


Wybierać

4. Ustaw arkusze i wiersze żądanych danych


Arkusze danych pliku Excel

Wiersze danych pliku Excel Arkusze danych pliku Excel

1 .

Jeśli chcesz, aby wszystkie arkusze i/lub wiersze Twojego pliku Excela z danymi brały udział w tworzeniu dokumentu, kliknij odpowiedni przycisk po prawej stronie z podpisem liczby(jego napis zmieni się na Wszystko).

5. Ustaw szablon nazw dla nowych plików Word


Ustaw szablon nazw dla nowych plików Word:

Nowy szablon nazw plików tekstowych jest szablonem nazw nowych dokumentów (plików-word) generowanych przez program. Tutaj szablon nazwy zawiera nazwy kolumn pliku Excel, otoczone nawiasami klamrowymi: (A) I (B). Podczas generowania nowego dokumentu program zastąpi wszystkie (A) I (B) odpowiednie wartości komórek z pliku Excela - to będzie nazwa nowego dokumentu (pliku Word).

Możesz ustawić własne znaki obramowania na karcie Ustawienia programy.

6. Kliknij „Generuj”


Naciśnij przycisk Generować a postęp pojawi się na ekranie. Dokumenty (pliki Word) zostaną utworzone dokładnie w takiej liczbie wierszy pliku Excel, które są zaangażowane w tworzenie.

7. Wszystko


Wszystkie dokumenty (pliki Word) zostały utworzone i znajdują się w folderze określonym w Folder do zapisywania nowych plików Word. Wszystko:)

Exwog- generator raportów szablonów z excela do worda

Darmowy generator plików Word według szablonu (plik Word) na podstawie danych pliku Excel

Działa na systemach Mac OS, Windows i Linux

Pozwala ustawić nazwy nowo generowanych plików tekstowych

Umożliwia ustawienie arkuszy i wierszy wymaganych danych

Umożliwia ustawienie znaków obramowania dla nazw kolumn programu Excel

Łatwy w użyciu

Przechowuj swoje dane w formacie Excel (.xls i .xlsx) i generuj pliki Word (.doc i .docx) za pomocą kilku kliknięć :)


Jak to działa?

Spójrz na swój plik Excela


W tym przykładzie plik programu Excel zawiera informacje o klientach. Każda linia odpowiada konkretnemu klientowi. Nazwiska są w kolumnie A, nazwiska w kolumnie B i zawody w kolumnie C.

Kliknij, aby zobaczyć

Utwórz dokument Word (.doc lub .docx)


Kliknij, aby zobaczyć

Utwórz „szablon” (plik-word) do generowania nowych dokumentów (plik-word). Tutaj tekst „szablonu” zawiera nazwy kolumn pliku Excel, otoczone nawiasami klamrowymi: (A), (B) I (C).

Program wygeneruje nowe dokumenty według "szablonu" zastępując wszystkie (A), (B) I (C) odpowiednie wartości komórek z pliku excel: (A)- nazwa, (B)- nazwisko, (C)- zawód.

Możesz także ustawić własne znaki obramowania na karcie Ustawienia programy.

Wybierz ścieżki dla plików i folderów


Wybierz ścieżki dla plików i folderów (przyciski oznaczone Wybierać). W programie określasz następujące ścieżki:

Plik Excel z danymi (*.xls, *.xlsx)- to jest ścieżka do Twojego pliku Excela z danymi (informacje o kliencie);

Plik szablonu programu Word (*.doc, *.docx) to ścieżka do twojego „szablonu” (pliku Word utworzonego w poprzednim kroku);

Folder do zapisywania nowych plików Word- jest to ścieżka do folderu, w którym program zapisze nowo wygenerowane dokumenty.

Kliknij, aby zobaczyć

Ustaw arkusze i wiersze żądanych danych


Kliknij, aby zobaczyć

Ustaw numery arkuszy i wierszy swojego pliku excel z danymi (informacjami o klientach), na podstawie których chcesz generować dokumenty:

Arkusze danych pliku Excel- numery arkuszy twojego pliku Excel, które będą zaangażowane w tworzenie nowych dokumentów;

Wiersze danych pliku Excel- numery wierszy arkuszy (arkuszy określonych w Arkusze danych pliku Excel) twojego pliku Excel, który będzie zaangażowany w tworzenie nowych dokumentów. Na podstawie danych każdej podanej linii zostanie utworzony osobny dokument (plik Word).

Numeracja arkuszy i wierszy w programie zaczyna się od 1 .