Kami menghasilkan dokumen Microsoft Word dalam PHP. Menghasilkan dokumen formulir secara terprogram di Word Membuat templat dokumen Word

Pada artikel sebelumnya di seri "Mengotomatiskan Pengisian Dokumen", saya berbicara tentang cara membuat antarmuka pengguna aplikasi, mengatur validasi masukan, dan mendapatkan angka dalam kata-kata tanpa menggunakan kode VBA. Pada artikel terakhir ini, kita akan membahas tentang sihir - mentransfer semua nilai yang diperlukan dari buku kerja Excel ke dokumen Word. Mari saya tunjukkan hasil akhirnya:

Deskripsi mekanisme

Untuk memulainya, saya akan menjelaskan secara umum bagaimana data akan ditransfer ke dokumen Word. Pertama-tama, kita membutuhkan templat dokumen kata A berisi semua markup, tabel, dan bagian teks yang tidak akan berubah. Dalam templat ini, Anda perlu menentukan tempat di mana nilai-nilai dari buku kerja Excel akan diganti - cara paling mudah untuk melakukannya adalah dengan bantuan bookmark. Setelah itu, Anda perlu mengatur data Excel sedemikian rupa agar sesuai dengan template Word, dan yang terakhir, tulis prosedur transfernya sendiri di VBA.

Jadi, hal pertama yang pertama.

Buat Templat Dokumen Word

Semuanya sangat sederhana di sini - kami membuat dokumen biasa, mengetik dan memformat teks, secara umum, kami mencapainya untuk mendapatkan formulir yang diperlukan. Di tempat-tempat di mana perlu mengganti nilai dari Excel, Anda perlu membuat bookmark. Ini dilakukan dengan cara berikut:

Jadi, Anda perlu membuat semua bookmark, yaitu menandai semua tempat di mana data dari Excel akan dimasukkan. File yang dihasilkan harus disimpan sebagai "MS Word Template" menggunakan item menu "File" -> "Save As...".

persiapan data excel

Untuk kenyamanan, saya memutuskan untuk meletakkan semua data yang perlu ditransfer ke dokumen Word pada lembar kerja terpisah yang disebut Bookmark - bookmark. Lembar ini memiliki dua kolom: yang pertama berisi nama bookmark (persis seperti namanya di dokumen Word), dan yang kedua berisi nilai yang sesuai untuk ditransfer.

Beberapa dari nilai ini diperoleh langsung dari lembar entri data, dan beberapa dari tabel tambahan yang terletak di lembar Dukungan. Pada artikel kali ini saya tidak akan menganalisa rumus-rumus yang menghitung nilai yang diinginkan, jika ada yang kurang jelas ajukan pertanyaan di kolom komentar.

Pada tahap ini, penting untuk menentukan dengan benar semua nama bookmark - kebenaran transfer data bergantung pada hal ini.

Prosedur pemindahan

Tapi ini yang paling menarik. Ada dua opsi untuk mengeksekusi kode migrasi data:

  • Kode dijalankan di buku kerja Excel, data diteruskan ke Word satu nilai sekaligus dan segera ditempatkan di dokumen.
  • Kode dieksekusi dalam dokumen Word terpisah, semua data ditransfer dari Excel dalam satu batch.

Dalam hal kecepatan eksekusi, terutama saat dalam jumlah besar bookmark, opsi kedua terlihat jauh lebih menarik, tetapi membutuhkan tindakan yang lebih kompleks. Itu yang saya gunakan.

Inilah yang perlu dilakukan:

  • Buat templat dokumen Word dengan makro aktif. Template ini akan berisi kode VBA yang dapat dieksekusi.
  • Di templat yang dibuat, Anda perlu menempatkan program yang ditulis dalam VBA. Untuk melakukan ini, saat mengedit template, tekan kombinasi tombol Alt + F11 dan masukkan kode program di jendela editor Visual Basic yang terbuka.
  • Di buku kerja Excel, tulis kode yang memanggil prosedur isian dari templat Word yang baru dibuat.

Saya tidak akan memberikan teks prosedur dalam artikel - ini dapat dengan mudah dilihat di file FillDocument.dotm yang terletak di folder Template di arsip contoh.

Bagaimana Anda bisa menggunakan semua ini untuk memecahkan masalah khusus Anda?

Saya mengerti bahwa dengan kata-kata semuanya terlihat sangat sederhana, tetapi apa yang terjadi dalam praktiknya? Saya sarankan Anda hanya menggunakan opsi yang sudah jadi. Unduh arsip dengan contoh, di buku kerja Excel, tekan kombinasi tombol Alt + F11 untuk membuka editor Visual Basic dan membaca semua komentar saya tentang program tersebut. Untuk mengubah program agar sesuai dengan kebutuhan Anda, Anda hanya perlu mengubah nilai beberapa konstanta, yang ditempatkan di awal program. Anda dapat dengan bebas menyalin seluruh teks program ke dalam proyek Anda.

Struktur arsip

Arsip yang terlampir pada artikel ini berisi beberapa file.

File utama adalah buku kerja Excel yang disebut "Hasilkan Konfirmasi". Ada 4 lembar kerja dalam buku kerja ini, yang hanya ditampilkan dua: "Input" - lembar entri data dan "Database" - arsip dari semua dokumen yang dimasukkan.

Folder Templat berisi templat dokumen Word. Salah satunya adalah template yang berisi program pengisian bookmark, dan yang kedua adalah formulir untuk diisi. Anda dapat menggunakan template dengan program tanpa perubahan, tetapi formulir yang harus diisi tentunya harus diubah sesuai dengan kebutuhan Anda.

Bagaimana cara mengerjakan ulang contoh "untuk dirimu sendiri"?

  1. Siapkan templat dokumen Word untuk diselesaikan. Buat semua bookmark yang diperlukan di dalamnya dan simpan sebagai "template MS Word".
  2. Salin file FillDocument.dotm dari arsip yang dilampirkan pada artikel ini ke folder dengan template yang sudah disiapkan. File ini bertanggung jawab untuk mengisi bookmark template, dan tidak ada yang perlu diubah di dalamnya.
  3. Siapkan buku kerja Excel untuk entri data. Terserah Anda untuk memutuskan apakah itu akan memiliki antarmuka pengguna "lanjutan" dan melakukan berbagai perhitungan rumit. Yang utama adalah berisi lembar kerja dengan tabel korespondensi antara nama bookmark di templat Word dan nilai yang akan diganti.
  4. Masukkan kode program VBA dari file sampel ke dalam buku kerja yang telah disiapkan. Ganti semua konstanta sesuai dengan proyek Anda.
  5. Tes untuk pengoperasian yang benar.
  6. Nikmati secara aktif!

Suatu ketika, setelah merangkum hasil olimpiade, ketika para peserta perlu mengirimkan surat dengan hasil mata pelajaran yang lulus (atau tidak lulus), saya perhatikan bahwa gadis itu sedang duduk dan memasukkan hasil ujian, nama siswa tersebut dan informasi lainnya ke dalam template surat dengan tangannya. Di depannya tergeletak beberapa lembar yang dicetak dari Excel dengan nama dan nilai. Salin-Tempel, Ctrl + C - Ctrl + V, mentransfer nama lengkap dari nominatif ke kasus genitif, dan pekerjaan telah dilakukan dengan setengah dari yang pertama dari tiga lembar data. Berapa lama menurut Anda dia bisa duduk diam menyalin data, dan kemudian memeriksa hasilnya? Saya pikir untuk waktu yang lama, dan akan ada beberapa kesalahan. Tetapi kemudian dia masih harus menandatangani amplop pos ... Saya merasa kasihan atas waktunya dan dalam beberapa menit saya menunjukkan bagaimana proses ini dapat diotomatisasi dengan cara sederhana. Setelah tamasya singkat, pekerjaannya selesai dalam 20 menit.

Dalam pelajaran ini, saya akan menunjukkan cara cepat membuat dokumen (surat, undangan) dengan waktu yang minimal. Dalam versi bahasa yang berbeda, proses yang dijelaskan ini disebut berbeda. Jadi dalam bahasa Rusia itu adalah "Merge", dan dalam bahasa Inggris - "Merge".

Saya berharap "surat kebahagiaan" dari dana pensiun, pemberitahuan pajak dibuat dengan cara yang sama :)

Instrumen

Untuk membuat dokumen, kita membutuhkan OpenOffice Writer. Di dalamnya kita akan membuat template surat. Anda juga memerlukan OpenOffice Calc. Di dalamnya, kami akan membuat database dengan nama dan alamat orang-orang yang, misalnya, ingin kami undang ke pesta. Alih-alih program dari paket OpenOffice, MS Word dan Excel dapat dengan mudah digunakan. Basis data dapat dengan mudah terletak di MS Access. Jadi, mari kita mulai.

Pembuatan basis data

Basis data tidak lebih dari sebuah tabel di MS Excel atau OpenOffice Calc, di mana data disusun dalam kolom dan baris pertama digunakan untuk memberi nama kolom. Mari kita mulai, misalnya, kolom "nama", "kota", "kode pos", "alamat". Masukkan data dan simpan file ke disk.



Sumber lain dapat digunakan sebagai database, misalnya Buku alamat Outlook, atau basis data MS Access.

Buat template surat

Dengan pembuatan templat surat, situasinya menjadi sedikit lebih rumit. Karena data dari tabel (database kita) akan diganti menjadi template apa adanya, maka surat itu harus ditulis sesuai dengan itu. Jika nama lengkap Anda ada dalam kasus nominatif di database Anda, kemungkinan besar Anda tidak akan dapat menggunakan bidang ini dalam banding “Yang Terhormat,<ФИО>!" dan untuk amplop di baris "Kepada:<ФИО>". Dalam kasus terakhir, nama lengkapnya akan terlihat agak canggung.

Saat membuat template surat, saya sarankan mulai dengan menulis surat kepada beberapa orang orang asli. Anda bisa untuk diri sendiri. Kemudian sorot di dalamnya data yang akan Anda ambil dari database dan ganti dengan bidang yang sesuai. Sebelum mengganti teks yang dipilih dengan bidang, saya sarankan Anda memperhatikan huruf apa yang harus dimulai dengan bidang dalam database (huruf kecil atau huruf besar). Tentu saja, Anda dapat langsung membuat templat dengan bidang, tetapi Anda mungkin tidak melihat beberapa kesalahan, seperti ketidakkonsistenan dalam kasus.



Sudah di template di atas, jelas kita membutuhkan nama lengkap dalam kasus genitif dan field yang hanya berisi nama depan dan tengah. Dengan bidang pertama, kita dapat mengganti "Kepada" dengan "Penerima" dan kemudian nama lengkap dalam kasus nominatif akan sangat cocok untuk kita. Dengan kolom kedua, semuanya menjadi lebih rumit dan kita harus membuat kolom lain di database dan mengisinya dengan data yang sesuai. Dalam salah satu pelajaran berikut, saya akan memberi tahu Anda cara melakukannya secara otomatis, tetapi untuk saat ini kami akan berasumsi bahwa kami sudah memiliki bidang seperti itu.

Untuk menyisipkan bidang dan mengikat templat ke database, Anda harus melakukan urutan tindakan berikut. Pilih database di OpenOffice Writer



dan klik "Tentukan".



Kemudian masukkan bidang dari database yang terhubung di tempat yang tepat. Untuk melakukannya, tekan Ctrl + F2, atau pilih "Bidang" dan "Lainnya" dari menu "Sisipkan". Di jendela yang terbuka, pilih tab "Database", pilih "Bidang Gabungan Surat" di jenis bidang, pilih bidang yang sesuai dari basis data dan klik "Sisipkan". Basis data itu sendiri juga dapat dipilih di jendela ini.



Setelah satu bidang dimasukkan, tanpa menutup jendela aktif, pilih teks untuk diganti dengan bidang berikutnya, pilih bidang dan klik "Sisipkan" lagi. Dan untuk masing-masing bidang.

Untuk MS Word, situasinya agak mirip dan mungkin lebih nyaman. Setelah membuat tabel di MS Excel, luncurkan MS Word dan buka tab "Mailout". Pada tab ini, Anda dapat melihat tiga langkah yang diperlukan: "Mulai penggabungan", "Tulis dokumen dan sisipkan bidang", dan "Selesai". Ada juga langkah perantara "Lihat hasil", tetapi ini opsional.

Maka pekerjaan dimulai dengan pemilihan dokumen. Ini bisa berupa surat, stiker, dokumen Word biasa. Anda juga dapat menjalankan wizard penggabungan di sini, yang akan memandu Anda melalui semua langkah dalam proses. Langkah selanjutnya adalah memilih penerima, yaitu database. Di sini Anda dapat memilih database yang sudah jadi (misalnya, tabel MS Excel yang dibuat pada tahap sebelumnya), atau membuat daftar baru. Setelah daftar dipilih, tombol "Sisipkan kolom gabungan", "Edit daftar penerima", dll menjadi aktif Melalui dialog "Edit daftar penerima", yang terbuka dengan tombol yang sesuai, Anda hanya dapat memilih dari seluruh daftar catatan yang diperlukan untuk penggabungan.







Saat memasukkan bidang, saya merasa nyaman untuk menyorot semua bidang dengan warna abu-abu dengan mengklik tombol "Pilih Gabungkan Bidang". Jika tidak, jika ada banyak bidang seperti itu, bidang tersebut dapat hilang dalam teks.

Jadi, template sudah siap.

Pembuatan surat

Tahap terakhir adalah pembuatan huruf. Di OpenOffice, untuk ini, di menu "Tools", pilih "Mail Merge Wizard ..." dan lakukan semua langkah yang diusulkan untuk menggabungkan template kita dengan database.





Di kotak dialog, kita melihat bahwa dari 8 poin yang diusulkan, kita tidak perlu melakukan beberapa poin. Jadi kita sudah membuat dokumennya dan kita tidak perlu mengeditnya, kita juga sudah memasukkan blok alamatnya. Tapi mari kita lakukan secara berurutan.

Pertama, kami memilih untuk membuat surat berdasarkan dokumen saat ini dan klik "Berikutnya" di bagian bawah jendela. Poin kedua adalah apakah kita akan memiliki surat kertas atau email ini. Agar surat itu disimpan ke file, pilih yang pertama. Klik "Berikutnya". Di paragraf ketiga, kami ditawari untuk membuat blok alamat, tetapi karena kami membuatnya dengan tangan, hapus centang semua kotak dan lanjutkan ke langkah berikutnya. Di sini kami ditawari untuk memasukkan banding, tetapi kami juga sudah memilikinya, jadi klik "Berikutnya". Di paragraf keenam, Anda dapat mengedit dokumen, melihat dokumen dengan bidang yang disisipkan dari database dan, jika perlu, mengecualikan beberapa bidang.



Pada langkah 7, diusulkan untuk mengedit setiap file yang dibuat sebagai hasil dari koneksi template ke database. Dan terakhir, terakhir, langkah 8, Anda dapat memilih apa yang akan dilakukan dengan dokumen yang diterima. Anda dapat menyimpan, mencetak atau mengirim melalui email. Dalam hal ini, Anda dapat menyimpan semua dokumen dalam satu file, atau setiap dokumen secara terpisah.

Di MS Word, proses penggabungan diselesaikan dengan mengklik tombol "Temukan dan Gabungkan".



Dari menu drop-down, terlihat jelas bahwa semua surat dapat dicetak dan dikirim melalui email, tetapi tidak semuanya dapat disimpan ke file. Untuk menyimpan, pilih item pertama - "Ubah dokumen individual". Ini akan membuka dokumen baru, di mana setiap huruf baru akan ditemukan halaman baru, dan di sini Anda sudah dapat menyimpan file ini.

Kesimpulan

Jadi, dalam pelajaran ini, Anda belajar cara menggunakan alat penggabungan untuk membuat dokumen berdasarkan template. Mari kita tuliskan secara singkat urutan tindakannya:

  1. Penting untuk membuat database di prosesor spreadsheet, dari mana data akan diambil untuk mengisi kolom.
  2. Anda perlu membuat template surat.
  3. Lakukan penggabungan dan simpan hasilnya.

SEBUAH, nama belakang di kolom B dan profesi di kolom C.

2. Buat dokumen kata (.doc atau .docx)


(SEBUAH), (B) dan (C).

(SEBUAH), (B) dan (C) (SEBUAH)- nama, (B)- nama keluarga, (C)- profesi.

Pengaturan program.

3. Pilih jalur untuk file dan folder


Pilih

4. Atur lembar dan baris data yang diinginkan


Lembar data file Excel

Baris data file Excel Lembar data file Excel

1 .

Jika Anda ingin semua lembar dan/atau baris file excel Anda dengan data berpartisipasi dalam pembentukan dokumen, klik tombol yang sesuai di sebelah kanan dengan judul angka(tulisannya akan berubah menjadi Semua).

5. Tetapkan templat nama untuk file kata baru


Setel templat nama untuk file kata baru:

Templat nama file kata baru adalah templat untuk nama dokumen baru (file kata) yang dihasilkan oleh program. Di sini, templat nama berisi nama kolom file excel, dibingkai dengan kurung kurawal: (SEBUAH) dan (B). Saat membuat dokumen baru, program akan mengganti semuanya (SEBUAH) dan (B) nilai sel yang sesuai dari file excel - ini akan menjadi nama dokumen baru (file kata).

Anda dapat mengatur karakter batas Anda sendiri di tab Pengaturan program.

6. Klik "Hasilkan"


Klik tombolnya Menghasilkan dan progres akan muncul di layar. Dokumen (file kata) akan dibuat persis seperti banyak baris file excel yang terlibat dalam pembentukan.

7. Semuanya


Semua dokumen (file kata) telah dibuat dan terletak di folder yang ditentukan di Folder untuk menyimpan file kata baru. Semuanya:)

Exwog- pembuat laporan template dari excel ke word

Pembuat file Word gratis dengan templat (file Word) berdasarkan data file Excel

Bekerja di Mac OS, Windows dan Linux

Memungkinkan Anda mengatur nama file kata baru yang dihasilkan

Memungkinkan Anda mengatur lembar dan baris data yang diperlukan

Memungkinkan Anda mengatur karakter batas untuk nama kolom Excel

Mudah digunakan

Simpan data Anda dalam format Excel (.xls dan .xlsx) dan hasilkan file Word (.doc dan .docx) dalam beberapa klik :)


Bagaimana itu bekerja?

Lihatlah file excel Anda


Dalam contoh ini, file excel berisi informasi tentang klien. Setiap baris sesuai dengan klien tertentu. Nama ada di kolom SEBUAH, nama belakang di kolom B dan profesi di kolom C.

Klik untuk melihat

Buat dokumen kata (.doc atau .docx)


Klik untuk melihat

Buat "template" (file kata) untuk membuat dokumen baru (file kata). Di sini teks "templat" berisi nama kolom file excel, dibingkai dengan kurung kurawal: (SEBUAH), (B) dan (C).

Program akan menghasilkan dokumen baru sesuai dengan "template" menggantikan semua (SEBUAH), (B) dan (C) nilai sel yang sesuai dari file excel: (SEBUAH)- nama, (B)- nama keluarga, (C)- profesi.

Anda juga dapat mengatur karakter batas Anda sendiri di tab Pengaturan program.

Pilih jalur untuk file dan folder


Pilih jalur untuk file dan folder (tombol berlabel Pilih). Dalam program, Anda menentukan jalur berikut:

File Excel dengan data (*.xls, *.xlsx)- ini adalah jalur ke file excel Anda dengan data (informasi pelanggan);

File template Word (*.doc, *.docx) adalah jalur ke "templat" Anda (file kata yang dibuat pada langkah sebelumnya);

Folder untuk menyimpan file kata baru- ini adalah jalur ke folder tempat program akan menyimpan dokumen yang baru dibuat.

Klik untuk melihat

Atur lembar dan baris data yang diinginkan


Klik untuk melihat

Tetapkan jumlah lembar dan baris file excel Anda dengan data (informasi tentang klien) yang ingin Anda buat dokumennya:

Lembar data file Excel- jumlah lembar file excel Anda yang akan terlibat dalam pembentukan dokumen baru;

Baris data file Excel- nomor baris lembar (lembar ditentukan dalam Lembar data file Excel) file excel Anda yang akan terlibat dalam pembentukan dokumen baru. Berdasarkan data dari setiap baris yang ditentukan, dokumen terpisah (file kata) akan dibuat.

Penomoran lembaran dan garis dalam program dimulai dengan 1 .