Lewati ke konten utama

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:

  1. Buat tabel di Word dengan jumlah kolom yang diinginkan
  2. Tempatkan perulangan foreach di sel pertama.
  3. Tambahkan kolom gabungan di sel-sel berikutnya pada baris yang sama.
  4. 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 ProdukDiproduksiHarga
Laptop25 Juli 2022160.000
Keyboard12 April 202210000
Pembicara08.05.202225000

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 ProdukDiproduksiHarga
Laptop25 Juli 2022160.000
Keyboard12 April 202210000
Pembicara08.05.202225000
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

  1. Baris header - Buat judul kolom yang jelas dan deskriptif
  2. Keselarasan yang konsisten - Ratakan data numerik ke kanan, data teks ke kiri
  3. Lebar yang sesuai - Atur lebar kolom berdasarkan konten yang diharapkan
  4. Pemformatan - Terapkan pemformatan (garis tepi, bayangan) pada Word templat
  5. Penempatan total - Tempatkan perhitungan agregat di baris ringkasan yang sesuai

Persiapan Data

  1. Data bersih - Pastikan data diformat dengan benar sebelum pemrosesan templat.
  2. Tangani nilai null - Berikan nilai default untuk kolom yang bernilai null
  3. Batasi baris - Pertimbangkan penggunaan paginasi untuk dataset yang sangat besar
  4. 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.

:::