Tabel dalam Templat - Panduan Tabel Dinamis
Tabel merupakan komponen fundamental dalam dokumen profesional, yang menyediakan penyajian data terstruktur untuk memudahkan perbandingan, referensi, dan analisis. PDF4meMesin pembuatan dokumennya secara efisien membuat tabel dinamis yang diisi dengan data dari sumber Anda.
Struktur Tabel Multi-Kolom
Buat tabel dengan banyak kolom dengan mendefinisikan kolom gabungan di dalam sel tabel. Setiap baris diulang berdasarkan kumpulan data.
Sintaks Tabel Dasar
Buat struktur tabel di dalam Word Templat dengan pola berikut:
Column 1: <<foreach [product in products]>><<[product.productName]>>
Column 2: <<[product.manufactured]:"yyyy.MM.dd">>
Column 3: <<[product.price]>><</foreach>>
Struktur Templat:
- Buat tabel di Word dengan jumlah kolom yang diinginkan
- Tempatkan perulangan foreach di sel pertama.
- Tambahkan kolom gabungan di sel-sel berikutnya pada baris yang sama.
- Tutup perulangan foreach di sel terakhir.
Contoh: Tabel Inventaris Produk
Sumber Data (JSON):
{
"vendorName": "Instamart",
"products": [
{
"productName": "Laptops",
"price": 160000,
"manufactured": "25/07/2022"
},
{
"productName": "Keyboard",
"price": 10000,
"manufactured": "12/04/2022"
},
{
"productName": "Speakers",
"price": 25000,
"manufactured": "08/05/2022"
}
]
}
Output yang dihasilkan:
| Nama Produk | Diproduksi | Harga |
|---|---|---|
| Laptop | 25 Juli 2022 | 160.000 |
| Keyboard | 12 April 2022 | 10000 |
| Pembicara | 08.05.2022 | 25000 |
Perhitungan dan Total Tabel
Hitung nilai agregat seperti jumlah, rata-rata, dan hitungan dalam struktur tabel Anda menggunakan metode enumerasi.
Perhitungan Jumlah
Tambahkan baris total untuk menghitung jumlah kolom numerik:
Column 1: <<foreach [product in products]>><<[product.productName]>>
Column 2: <<[product.manufactured]:"yyyy.MM.dd">>
Column 3: <<[product.price]>><</foreach>>
Column 1: Total
Column 2:
Column 3: $<<[products.Sum(c => c.price)]>>
Output yang dihasilkan:
| Nama Produk | Diproduksi | Harga |
|---|---|---|
| Laptop | 25 Juli 2022 | 160.000 |
| Keyboard | 12 April 2022 | 10000 |
| Pembicara | 08.05.2022 | 25000 |
| Total | $195.000 |
Fungsi Agregat Lainnya
Rata-rata:
Average Price: $<<[products.Average(p => p.price)]:"F2">>
Menghitung:
Total Products: <<[products.Count()]>>
Maksimum:
Highest Price: $<<[products.Max(p => p.price)]>>
Minimum:
Lowest Price: $<<[products.Min(p => p.price)]>>
Tabel Kolom Tunggal
Buat tabel dengan satu kolom yang berisi beberapa baris informasi per baris. Gunakan -greedy beralih untuk memastikan setiap item koleksi menempati satu baris.
Sintaks Templat Kolom Tunggal
<<foreach [product in products]>>Product: <<[product.productName]>>, Manufactured On: <<[product.manufactured]:"yyyy.MM.dd">>, Product Price: $<<[product.price]>><</foreach -greedy>>
Poin Penting: Yang -greedy Perintah `switch` memperlakukan seluruh blok konten sebagai satu baris tunggal, mencegah pemisahan baris yang tidak diinginkan.
Output yang dihasilkan:
| Detail Produk |
|---|
| Produk: Laptop, Diproduksi Pada: 25 Juli 2022, Harga Produk: $160.000 |
| Produk: Keyboard, Diproduksi Pada: 12 April 2022, Harga Produk: $10.000 |
| Produk: Speaker, Diproduksi Pada: 08.05.2022, Harga Produk: $25000 |
Contoh Tabel Tingkat Lanjut
Contoh 1: Tabel Item Baris Faktur
Templat:
Item | Description | Qty | Unit Price | Total
<<foreach [item in lineItems]>><<[item.code]>> | <<[item.description]>> | <<[item.quantity]>> | $<<[item.unitPrice]:"F2">> | $<<[item.quantity * item.unitPrice]:"F2">><</foreach>>
| | | Subtotal: | $<<[lineItems.Sum(i => i.quantity * i.unitPrice)]:"F2">>
Contoh 2: Tabel Direktori Karyawan
Templat:
Name | Department | Email | Phone
<<foreach [emp in employees.OrderBy(e => e.lastName)]>><<[emp.firstName]>> <<[emp.lastName]>> | <<[emp.department]>> | <<[emp.email]>> | <<[emp.phone]>><</foreach>>
Total Employees: <<[employees.Count()]>>
Contoh 3: Tabel Laporan Penjualan
Templat:
Month | Revenue | Expenses | Profit
<<foreach [month in salesData]>><<[month.name]>> | $<<[month.revenue]:"F2">> | $<<[month.expenses]:"F2">> | $<<[month.revenue - month.expenses]:"F2">><</foreach>>
Annual Total | $<<[salesData.Sum(m => m.revenue)]:"F2">> | $<<[salesData.Sum(m => m.expenses)]:"F2">> | $<<[salesData.Sum(m => m.revenue - m.expenses)]:"F2">>
Baris Tabel Bersyarat
Menghasilkan baris tabel secara kondisional berdasarkan properti data atau logika bisnis.
Baris yang Difilter
Templat:
Product | Stock Status
<<foreach [product in products.Where(p => p.inStock == true)]>>
<<[product.name]>> | Available
<</foreach>>
Pemformatan Bersyarat
Templat:
Employee | Status
<<foreach [emp in employees]>>
<<[emp.name]>> | <<if [emp.active]>>Active<<else>>Inactive<</if>>
<</foreach>>
Praktik Terbaik Pemformatan Tabel
Pedoman Desain
- Baris header - Buat judul kolom yang jelas dan deskriptif
- Keselarasan yang konsisten - Ratakan data numerik ke kanan, data teks ke kiri
- Lebar yang sesuai - Atur lebar kolom berdasarkan konten yang diharapkan
- Pemformatan - Terapkan pemformatan (garis tepi, bayangan) pada Word templat
- Penempatan total - Tempatkan perhitungan agregat di baris ringkasan yang sesuai
Persiapan Data
- Data bersih - Pastikan data diformat dengan benar sebelum pemrosesan templat.
- Tangani nilai null - Berikan nilai default untuk kolom yang bernilai null
- Batasi baris - Pertimbangkan penggunaan paginasi untuk dataset yang sangat besar
- Urutkan data - Urutkan data terlebih dahulu atau gunakan OrderBy di templat.
Struktur Tabel Kompleks
Pengelompokan Bertingkat
Templat:
Category | Product | Price
<<foreach [cat in categories]>>
<<[cat.name]>> | |
<<foreach [prod in cat.products]>>
| <<[prod.name]>> | $<<[prod.price]>>
<</foreach>>
| Category Total | $<<[cat.products.Sum(p => p.price)]>>
<</foreach>>
Tabel dengan Bagian Bersyarat
Templat:
Item | Quantity | Price | Discount | Total
<<foreach [item in orderItems]>>
<<[item.name]>> | <<[item.qty]>> | $<<[item.price]>> | <<if [item.discount > 0]>><<[item.discount]>>%<<else>>-<</if>> | $<<[item.total]>>
<</foreach>>
Fitur Khusus Meja
Penggunaan Switch yang Serakah
Yang -greedy Tombol sakelar mengontrol bagaimana konten didistribusikan ke seluruh sel tabel:
Tanpa -rakus: Setiap properti dapat membuat baris baru Dengan -greedy: Seluruh blok konten tetap berada dalam satu baris.
Contoh:
<<foreach [item in items]>>
<<[item.prop1]>>, <<[item.prop2]>>, <<[item.prop3]>>
<</foreach -greedy>>
Penggabungan Vertikal
Untuk sel yang seharusnya mencakup beberapa baris, atur penggabungan sel di Word template sebelum menambahkan kolom gabungan.
Pembuatan Tabel Pemecahan Masalah
Masalah Umum dan Solusinya
Masalah: Baris tabel tidak berulang dengan benar
Larutan: Pastikan perulangan foreach mencakup semua sel dalam baris tersebut.
Masalah: Baris tambahan yang tidak diinginkan
Larutan: Menggunakan -greedy beralih untuk konten satu baris
Masalah: Perhitungan yang salah
Larutan: Verifikasi sintaks ekspresi dan tipe data.
Masalah: Format hilang setelah pembuatan
Larutan: Terapkan pemformatan ke sel templat, bukan hanya sintaks bidang gabungan.
Masalah: Tabel kosong jika data ada
Larutan: Periksa apakah nama properti harus sesuai persis dengan sumber data.
Contoh Lengkap: Faktur Penjualan
Templat:
Invoice Date: <<[invoiceDate]:"MMMM dd, yyyy">>
Customer: <<[customerName]:caps>>
Item No. | Description | Qty | Unit Price | Amount
<<foreach [item in lineItems]>>
<<[item.itemNo]>> | <<[item.description]>> | <<[item.quantity]>> | $<<[item.unitPrice]:"F2">> | $<<[item.quantity * item.unitPrice]:"F2">>
<</foreach>>
| | | Subtotal: | $<<[lineItems.Sum(i => i.quantity * i.unitPrice)]:"F2">>
| | | Tax (10%): | $<<[lineItems.Sum(i => i.quantity * i.unitPrice) * 0.10]:"F2">>
| | | **Total:** | **$<<[lineItems.Sum(i => i.quantity * i.unitPrice) * 1.10]:"F2">>**
:::tips Desain Meja Rancang struktur meja Anda di Word Pertama, dengan format, batas, dan gaya yang sesuai. Kemudian, tambahkan kolom gabungan dan perulangan foreach ke tabel yang telah dirancang untuk hasil terbaik.
:::