Cara Bekerja dengan Tabel di .NET

Cara Bekerja dengan Tabel di .NET

Panduan ini menunjukkan cara membangun, memformat, dan membaca tabel secara programatis dalam Aspose.Words FOSS untuk .NET, menggunakan Table, Row, dan Cell kelas dalam Aspose.Words.Tables namespace bersama dengan DocumentBuilder. Ini mencakup pembuatan tabel dari awal, memformat sel dan baris saat Anda membangun, mengontrol tata letak seluruh tabel dan AutoFit, menetapkan lebar yang diinginkan, menggabungkan sel, dan membaca tabel yang sudah ada dalam dokumen yang dimuat.

Panduan Langkah demi Langkah

Langkah 1: Instal Paket

Aspose.Words FOSS untuk .NET belum menerbitkan paket NuGet – bangun pustaka dari sumbernya saja. Kloning https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, lalu bangun Aspose.Words.sln dengan konfigurasi Release menggunakan SDK .NET dan referensikan assembly Aspose.Words yang dihasilkan ke dalam proyek Anda. Pustaka ini menargetkan .NET Standard 2.0, sehingga dapat dijalankan pada .NET Framework 4.6.2+ dan .NET 6/8/10.


Langkah 2: Impor Kelas yang Diperlukan

Tambahkan direktif using Aspose.Words; untuk kelas dokumen inti (Document, DocumentBuilder), dan direktif using Aspose.Words.Tables; untuk kelas khusus tabel yang dibahas dalam panduan ini – Table, Row, Cell, CellFormat, RowFormat, PreferredWidth, dan enum terkait.


Langkah 3: Bangun Tabel Baru dengan DocumentBuilder

Buat sebuah Document dan sebuah DocumentBuilder yang terikat padanya, lalu panggil DocumentBuilder.StartTable() untuk memulai tabel pada kursor. Untuk setiap sel dalam baris, panggil DocumentBuilder.InsertCell(), lalu tutup baris dengan DocumentBuilder.EndRow(). Ulangi sebanyak baris yang diperlukan tabel, dan tutup seluruh tabel dengan DocumentBuilder.EndTable(). Setiap StartTable() memerlukan EndTable() yang cocok, dan setiap baris memerlukan EndRow() yang cocok, atau status internal pembangun — dan pohon dokumen yang dihasilkan — akan menjadi rusak.


Langkah 4: Format Sel dan Baris Saat Anda Membuat

Setel DocumentBuilder.CellFormat dan DocumentBuilder.RowFormat sebelum memanggil InsertCell() atau EndRow() untuk menerapkan pemformatan pada sel dan baris yang akan dibuat pembangun — kedua properti ini berfungsi sebagai templat untuk konten baru, bukan perubahan retroaktif pada sel yang sudah dimasukkan. CellFormat mengekspos Borders, Shading, Width, WrapText, FitText, HorizontalMerge, VerticalMerge, VerticalAlignment, PreferredWidth, dan empat properti padding (LeftPadding, RightPadding, TopPadding, BottomPadding), yang semuanya dapat diatur sekaligus dengan SetPaddings(). RowFormat mengekspos Borders, Height, HeightRule, AllowBreakAcrossPages, dan HeadingFormat. Panggil CellFormat.ClearFormatting() atau RowFormat.ClearFormatting() untuk mengatur ulang salah satunya ke nilai default sebelum menetapkan nilai baru untuk baris atau sel berikutnya.


Langkah 5: Atur Tata Letak Seluruh Tabel dan AutoFit

Setelah tabel ada, atur properti tata letak langsung pada objek Table: Alignment (TableAlignment), Bidi, LeftIndent, PreferredWidth, Style, StyleIdentifier, StyleName, StyleOptions (TableStyleOptions), dan TextWrapping. Panggil Table.SetBorders() untuk menerapkan satu gaya batas, lebar, dan warna pada seluruh tabel, atau Table.SetBorder() untuk mengatur satu sisi; ClearBorders() dan ClearShading() mengatur ulangnya. Table.AutoFit(AutoFitBehavior) mengubah ukuran tabel dan sel-selnya sesuai perilaku yang dipilih — panggil lagi setelah setiap penyuntingan struktural, karena ia mencerminkan keadaan tabel hanya pada saat dijalankan, bukan secara terus-menerus.


Langkah 6: Atur Lebar Pilihan dan Sel

Buat nilai lebar dengan metode pabrik statis PreferredWidth.FromPercent() untuk tata letak yang menyesuaikan dengan lebar halaman yang tersedia, atau PreferredWidth.FromPoints() untuk lebar tetap; PreferredWidthType melaporkan jenis nilai (Auto, Percent, atau Points) yang dimiliki PreferredWidth tertentu. Tetapkan hasilnya ke Table.PreferredWidth untuk seluruh tabel atau CellFormat.PreferredWidth untuk satu sel.


Langkah 7: Gabungkan Sel

Tandai sel sebagai digabung dengan mengatur CellFormat.HorizontalMerge atau CellFormat.VerticalMerge (keduanya bertipe CellMerge) pada sel yang harus berpartisipasi dalam penggabungan. Jika sel hanya dibuat tampak digabung dengan mencocokkan lebar mereka alih-alih ditandai secara eksplisit, panggil Table.ConvertToHorizontallyMergedCells() untuk mengubah susunan visual itu menjadi sel dengan status CellMerge yang nyata. CellVerticalAlignment mengontrol bagaimana konten diratakan secara vertikal di dalam sel, terlepas dari penggabungan apa pun.


Langkah 8: Baca Tabel dari Dokumen yang Ada

Untuk bekerja dengan tabel yang sudah ada dalam dokumen yang dimuat, baca Body.Tables (atau properti Tables pada Story lain) — sebuah TableCollection — alih-alih membuat yang baru. Table.Rows mengembalikan RowCollection dan Row.Cells mengembalikan CellCollection; ketiga tipe koleksi tersebut mendukung Add(), Insert(), Remove(), RemoveAt(), Contains(), dan IndexOf() untuk penyuntingan programatik. Setelah menghapus baris atau sel, panggil Table.EnsureMinimum(), Row.EnsureMinimum(), atau Cell.EnsureMinimum() sehingga node mempertahankan struktur valid minimum yang diharapkan Word — baris kosong, sel kosong, atau paragraf kosong, masing-masing.

Masalah Umum dan Solusinya

Dokumen yang disimpan tampak rusak, atau terjadi kesalahan saat menyimpan Sebuah baris atau tabel itu sendiri tidak pernah ditutup. Selalu pasangkan DocumentBuilder.StartTable() dengan sebuah akhir EndTable(), dan tutup setiap baris dengan EndRow() sebelum beralih ke yang berikutnya atau mengakhiri tabel.

Sel sel baru tidak mengambil format yang saya atur CellFormat and RowFormat telah diubah pada DocumentBuilder setelah sel yang terpengaruh sudah dimasukkan. Atur DocumentBuilder.CellFormat / RowFormat sebelum InsertCell() or EndRow() panggilan yang membuat konten yang Anda inginkan diformat.

Tabel tidak mengubah ukuran seperti yang saya harapkan setelah saya mengedit isinya. Table.AutoFit(AutoFitBehavior) mencerminkan struktur tabel hanya pada saat dipanggil. Panggil lagi setelah ada edit struktural – menambah atau menghapus baris, sel, atau konten – jika tata letak perlu disesuaikan kembali.

Sel yang tampak digabung berperilaku sebagai sel terpisah ketika dibaca kembali. Sel-sel hanya dicocokkan berdasarkan lebar, tidak ditandai dengan CellMerge. Panggil Table.ConvertToHorizontallyMergedCells(), atau setel CellFormat.HorizontalMerge / VerticalMerge secara eksplisit pada sel yang harus digabung.

Menghapus baris atau sel meninggalkan tabel dalam keadaan tidak valid Word mengharapkan setiap Table, Row, dan Cell untuk menjaga struktur valid minimum. Setelah menghapus konten secara programatis, panggil EnsureMinimum() pada node yang baru saja dimodifikasi.

Pertanyaan yang Sering Diajukan

Bagaimana cara membuat tabel dari awal alih-alih mengedit yang sudah ada?

Gunakan DocumentBuilder: panggil StartTable(), kemudian InsertCell() untuk setiap sel dalam baris, EndRow() untuk menutup baris, ulangi untuk baris tambahan, dan EndTable() untuk menutup tabel.

Bagaimana cara mendapatkan tabel yang sudah ada dalam dokumen yang dimuat?

Baca properti Tables (sebuah TableCollection) pada Body dari bagian yang Anda minati, atau pada Story lain seperti header atau footer.

Bagaimana cara mengatur tabel menjadi persentase lebar halaman alih-alih lebar tetap?

Tetapkan Table.PreferredWidth = PreferredWidth.FromPercent(value) daripada PreferredWidth.FromPoints(value).

Apa perbedaan antara mengatur border dengan SetBorders dan SetBorder?

Table.SetBorders() menerapkan satu gaya garis, lebar, dan warna ke setiap border dalam tabel sekaligus; Table.SetBorder() mengatur satu sisi, memungkinkan sisi yang berbeda memiliki pemformatan yang berbeda.

Bagaimana cara mereset pemformatan pada sel atau baris sebelum menggunakannya kembali?

Panggil CellFormat.ClearFormatting() pada CellFormat sel, atau RowFormat.ClearFormatting() pada RowFormat baris.

Lihat Juga

 Bahasa Indonesia