Adalah hal menyebalkan ketika kita diminta membuat dokumen kenaikan pangkat/jenjang dalam organisasi. Karena jamannya online, kita diminta mengedit dokumen docx dan menyerahkan ke pimpinan. Online yang setengah-setengah :). Kalau online beneran ya pakai databaselah, bukan nyerahin file docx 🙂
Bayangkan jika satu orang harus melampirkan 2 dokumen saja, 30 orang sudah 60 dokumen, Membuka 60 file word satu-satu maaaaak. Ampuuun….
Apalagi kalau harus ada yang diupdate di semua dokumen karena ada format dokumen yang salah, ada yang harus diedit. Buka – edit – simpan 60 dokumen. Ampuuun Caaaak.
Kadang tidak sampai disitu, data harus direkap dalam bentuk tabel spreadsheet. Buka satu-satu copas … hadooh…
Sampai disitu ada instruksi nama file harus urut abjat nama orang. Ngiiing ….
Lebih enak bahwa semua data itu kita masukkan database atau Google Sheet yang diisi melalui Google Form. Lalu kita membuat template word. Dan terakhir kita sambungkan data dengan template word menggunakan skrip.
Ya, kamu bisa membuat template pada file .docx
dengan variabel dinamis menggunakan berbagai metode. Ini berguna untuk menghasilkan dokumen otomatis berdasarkan data tertentu, seperti surat, laporan, atau faktur. Berikut adalah pendekatan yang dapat digunakan:
1. Menggunakan Placeholder pada .docx
Anda bisa menambahkan teks placeholder di file .docx
yang akan digantikan dengan data dinamis. Contoh:
- Tambahkan teks seperti
{{nama}}
,{{tanggal}}
, atau{{alamat}}
ke dokumen.
2. Menggunakan Python dengan Library python-docx
Python menyediakan library bernama python-docx
untuk memanipulasi file .docx
, termasuk mengganti placeholder dengan data dinamis.
Contoh:
from docx import Document
# Buka file template
doc = Document('template.docx')
# Ganti placeholder
for paragraph in doc.paragraphs:
if '{{nama}}' in paragraph.text:
paragraph.text = paragraph.text.replace('{{nama}}', 'Teguh')
if '{{tanggal}}' in paragraph.text:
paragraph.text = paragraph.text.replace('{{tanggal}}', '07 Januari 2025')
# Simpan file baru
doc.save('output.docx')
3. Menggunakan Mail Merge
Jika Anda menggunakan Microsoft Word, fitur Mail Merge memungkinkan pengisian data dinamis dari sumber seperti Excel atau database.
Langkah-Langkah:
- Siapkan template
.docx
dengan placeholder menggunakan<<FieldName>>
. - Hubungkan dokumen ke file Excel atau sumber data lainnya.
- Gunakan fitur Mail Merge di Word untuk menghasilkan dokumen.
4. Menggunakan Library untuk Framework Lain
Jika Anda bekerja dengan teknologi lain:
- PHP: Gunakan library seperti PHPWord.
- JavaScript: Gunakan library seperti docxtemplater.
4.1. Contoh dengan PHP Word
Berikut adalah contoh penggunaan PHPWord untuk membuat file .docx
dengan variabel dinamis menggunakan template:
Instalasi PHPWord
- Install PHPWord menggunakan Composer:
composer require phpoffice/phpword
- Siapkan template
.docx
:- Buat file
template.docx
dengan placeholder, misalnya:Halo, {{nama}}! Selamat datang di {{tempat}} pada {{tanggal}}.
- Buat file
Contoh Kode PHPWord
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpWord\TemplateProcessor;
// Load template
$templateProcessor = new TemplateProcessor('template.docx');
// Ganti placeholder dengan data dinamis
$templateProcessor->setValue('nama', 'Teguh');
$templateProcessor->setValue('tempat', 'Kantor Pusat');
$templateProcessor->setValue('tanggal', date('d F Y'));
// Simpan file output
$outputFile = 'output.docx';
$templateProcessor->saveAs($outputFile);
echo "File berhasil dibuat: <a href='$outputFile'>Download</a>";
?>
Contoh File template.docx
Isi template bisa seperti ini:
Halo, {{nama}}!
Selamat datang di {{tempat}} pada {{tanggal}}.
Hasil output.docx
setelah menjalankan script:
Halo, Teguh!
Selamat datang di Kantor Pusat pada 07 Januari 2025.
4.2. Contoh dengan docxtemplater
:
const Docxtemplater = require('docxtemplater');
const PizZip = require('pizzip');
const fs = require('fs');
const content = fs.readFileSync('template.docx', 'binary');
const zip = new PizZip(content);
const doc = new Docxtemplater(zip);
// Set data
doc.setData({
nama: 'Teguh',
tanggal: '07 Januari 2025',
alamat: 'Jl. Merdeka No. 10'
});
// Generate file
doc.render();
const buf = doc.getZip().generate({ type: 'nodebuffer' });
fs.writeFileSync('output.docx', buf);
5. Manfaatkan Variabel Dinamis Langsung dalam Aplikasi
Jika Anda menggunakan aplikasi tertentu untuk membuat dokumen otomatis, seperti:
- LimeSurvey untuk survei.
- Google Docs API untuk dokumen online.
- Atau tools otomatisasi seperti Zapier atau Integromat.
Ok, terimakasih (cakedAI)