membuat tabel di dokumen word menggunakan Java

Microsoft Word adalah aplikasi pengolah kata populer yang digunakan untuk membuat berbagai jenis dokumen. Dokumen-dokumen ini mungkin berisi beberapa jenis elemen termasuk teks, gambar, tabel, dan bagan. Ketika mengotomatiskan pembuatan dan manipulasi dokumen di Java, Anda mungkin memerlukan solusi mudah untuk membuat tabel dalam dokumen Word. Jadi pada postingan blog kali ini, kita akan mempelajari cara membuat tabel di dokumen Word di aplikasi Java.

Perpustakaan Java untuk Membuat Tabel di Dokumen Word

Aspose.Words for Java adalah API yang memungkinkan pengembang Java bekerja dengan dokumen Microsoft Word secara terprogram. Ini menyediakan berbagai fitur untuk membuat, memodifikasi, dan memanipulasi dokumen Word, menjadikannya alat yang berharga untuk mengotomatiskan tugas pembuatan dan pemrosesan dokumen. Kami akan menggunakan perpustakaan ini untuk memasukkan tabel ke dalam dokumen Word.

Anda dapat mengunduh perpustakaan atau menginstalnya menggunakan konfigurasi Maven berikut.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>23.10</version>
    <classifier>jdk17</classifier>
</dependency>

Buat Tabel di Dokumen Word di Java

Ada dua cara membuat tabel di dokumen Word menggunakan Aspose.Words for Java:

  • Menggunakan DocumentBuilder
  • Menggunakan DOM (Model Objek Dokumen)

Anda dapat memilih metode yang paling sesuai dengan kebutuhan Anda. Jadi mari kita jelajahi masing-masing metode ini secara mendetail.

Buat Tabel menggunakan DocumentBuilder

Kelas DocumentBuilder memberi Anda cara cepat dan mudah untuk membuat dokumen dinamis dari awal atau memproses dokumen yang sudah ada. Ia menawarkan berbagai fungsi untuk menyisipkan berbagai elemen konten seperti teks, kotak centang, objek OLE, paragraf, daftar, tabel, gambar, dan banyak lagi.

Berikut ini adalah langkah-langkah menggunakan kelas DocumentBuilder untuk membuat tabel pada dokumen Word di Java.

  • Buat objek kelas Document untuk memuat atau membuat dokumen Word.
  • Buat objek kelas DocumentBuilder.
  • Mulai tabel menggunakan metode DocumentBuilder.startTable().
  • Sisipkan sel menggunakan metode DocumentBuilder.insertCell().
  • (Opsional) Terapkan pemformatan ke sel, seperti font dan perataan.
  • Masukkan teks ke dalam sel menggunakan metode DocumentBuilder.write().
  • Ulangi penyisipan sel dan teks ke dalam sel sesuai kebutuhan.
  • Akhiri baris setelah Anda selesai memasukkan sel menggunakan metode DocumentBuilder.endRow().
  • Akhiri tabel setelah Anda menyisipkan semua baris menggunakan metode DocumentBuilder.endTable().
  • Simpan dokumen Word menggunakan metode Document.save().

Cuplikan kode berikut menunjukkan cara membuat tabel di dokumen Word menggunakan Java.

// Membuat atau memuat dokumen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Buat tabel baru dan masukkan sel.
Table table = builder.startTable();
builder.insertCell();

// Pemformatan lebar tabel harus diterapkan setelah setidaknya satu baris ada dalam tabel.
table.setLeftIndent(20.0);

// Tetapkan tinggi dan tentukan aturan ketinggian untuk baris header.
builder.getRowFormat().setHeight(40.0);
builder.getRowFormat().setHeightRule(HeightRule.AT_LEAST);

builder.getCellFormat().getShading().setBackgroundPatternColor(new Color((198), (217), (241)));
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.getFont().setSize(16.0);
builder.getFont().setName("Arial");
builder.getFont().setBold(true);

builder.getCellFormat().setWidth(100.0);
builder.write("Header Row,\n Cell 1");

// Kita tidak perlu menentukan lebar sel ini karena merupakan warisan dari sel sebelumnya.
builder.insertCell();
builder.write("Header Row,\n Cell 2");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Header Row,\n Cell 3");
builder.endRow();

builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);
builder.getCellFormat().setWidth(100.0);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);

// Atur ulang ketinggian dan tentukan aturan ketinggian yang berbeda untuk badan tabel.
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
        
// Setel ulang pemformatan font.
builder.getFont().setSize(12.0);
builder.getFont().setBold(false);

builder.write("Row 1, Cell 1 Content");
builder.insertCell();
builder.write("Row 1, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 1, Cell 3 Content");
builder.endRow();

builder.insertCell();
builder.getCellFormat().setWidth(100.0);
builder.write("Row 2, Cell 1 Content");

builder.insertCell();
builder.write("Row 2, Cell 2 Content");

builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 2, Cell 3 Content.");
builder.endRow();

// Akhir tabel.
builder.endTable();

// Simpan dokumen.
doc.save("table.docx");

Berikut ini adalah screenshot tabel yang telah kita buat menggunakan contoh kode di atas.

Tabel dalam Dokumen Word

Buat Tabel menggunakan DOM

Model Objek Dokumen (DOM) adalah representasi dokumen Word dalam memori yang memungkinkan Anda membaca, memanipulasi, dan memodifikasi konten dan pemformatan dokumen Word secara terprogram. Langkah-langkah berikut menunjukkan cara membuat tabel di dokumen Word menggunakan DOM.

  • Buat objek kelas Document untuk memuat atau membuat dokumen Word.
  • Buat objek kelas Tabel dan masukkan tabel ke dalam dokumen menggunakan metode Document.getFirstSection().getBody().appendChild(Table).
  • Buat objek kelas Row dan masukkan ke dalam tabel menggunakan metode Table.appendChild(Row).
  • Buat objek kelas Sel, atur opsi pemformatan, dan tambahkan teks ke sel.
  • Masukkan sel ke dalam baris menggunakan metode Row.appendChild(Cell).
  • Ulangi proses ini untuk baris sebanyak yang Anda inginkan.
  • Simpan dokumen Word menggunakan metode Document.save().

Cuplikan kode berikut menunjukkan cara membuat tabel di dokumen Word di Java.

// Membuat atau memuat dokumen.
Document doc = new Document();
        
// Kita mulai dengan membuat objek tabel. Perhatikan bahwa kita harus meneruskan objek dokumen
// ke konstruktor setiap node. Hal ini karena setiap node yang kita buat harus dimiliki
// ke beberapa dokumen.
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);

// Di sini kita dapat memanggil PastikanMinimum untuk membuat baris dan sel untuk kita. Metode ini digunakan
// untuk memastikan bahwa node yang ditentukan valid. Dalam hal ini, tabel yang valid harus memiliki setidaknya satu Baris dan satu sel.

// Sebagai gantinya, kita akan menangani sendiri pembuatan baris dan tabelnya.
// Ini akan menjadi cara terbaik untuk melakukan ini jika kita membuat tabel di dalam suatu algoritma.
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);

// Kami sekarang dapat menerapkan pengaturan penyesuaian otomatis apa pun.
table.autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS);

Cell cell = new Cell(doc);
cell.getCellFormat().getShading().setBackgroundPatternColor(Color.BLUE);
cell.getCellFormat().setWidth(80.0);
cell.appendChild(new Paragraph(doc));
cell.getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 1 Text"));

row.appendChild(cell);

// Kami kemudian akan mengulangi proses untuk sel dan baris lain dalam tabel.
// Kita juga dapat mempercepatnya dengan mengkloning sel dan baris yang ada.
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Simpan dokumen.
doc.save("table.docx");

Sisipkan Tabel Bersarang di Dokumen Word

Mungkin juga ada kasus ketika Anda perlu membuat tabel bertumpuk, yang terletak di dalam sel tabel induk. Anda bisa melakukannya tanpa melalui proses yang rumit. Pertama, buat tabel induk lalu panggil metode DocumentBuilder.moveTo(Cell.getFirstParagraph()) untuk memindahkan kontrol ke dalam sel tabel induk yang diinginkan. Setelah selesai, buat tabel baru dengan cara yang sama.

Cuplikan kode berikut menunjukkan cara membuat tabel bersarang di dokumen Word menggunakan Java.

// Membuat atau memuat dokumen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Sisipkan sel.
Cell cell = builder.insertCell();
builder.writeln("Outer Table Cell 1");

builder.insertCell();
builder.writeln("Outer Table Cell 2");

// Panggilan ini penting untuk membuat tabel bersarang di dalam tabel pertama. 
// Tanpa panggilan ini, sel yang disisipkan di bawah akan ditambahkan ke tabel luar.
builder.endTable();

// Pindah ke sel pertama tabel luar.
builder.moveTo(cell.getFirstParagraph());

// Bangun tabel bagian dalam.
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();

// Simpan dokumen.
doc.save("table.docx");

Berikut ini adalah screenshot dari nested table yang telah kita buat di atas.

Nested Table in a Word Document

Buat Tabel Word dari HTML di Java

Anda juga dapat membuat tabel di dokumen Word menggunakan string HTML dan berikut langkah-langkah yang harus diikuti.

  • Buat objek kelas Document untuk memuat atau membuat dokumen Word.
  • Buat objek kelas DocumentBuilder.
  • Masukkan string HTML tabel ke dalam dokumen menggunakan metode DocumentBuilder.insertHtml(String).
  • Terakhir, simpan dokumen menggunakan metode Document.save().

Di bawah ini adalah cuplikan kode untuk menghasilkan tabel Word dari string HTML.

// Membuat atau memuat dokumen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Perhatikan bahwa AutoFitSettings tidak berlaku untuk tabel yang disisipkan dari HTML.
builder.insertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

// Simpan dokumen.
doc.save("table.docx");

Dapatkan Lisensi Gratis

Anda bisa mendapatkan lisensi sementara untuk menggunakan Aspose.Words for Java tanpa batasan evaluasi.

Kesimpulan

Dalam postingan blog ini, kita telah menjelajahi cara membuat tabel di dokumen Word menggunakan Java. Anda telah melihat cara membuat tabel menggunakan pembuat dokumen atau DOM, membuat tabel bertumpuk, dan membuat tabel dari string HTML. Dengan menginstal perpustakaan dan mengikuti panduan, Anda dapat dengan mudah mengintegrasikan fitur pembuatan tabel ke dalam aplikasi Java Anda.

Aspose.Words for Java menyediakan banyak fitur dan opsi pemformatan lainnya, memungkinkan Anda membuat dokumen yang kaya dan kompleks dengan mudah. Untuk mempelajari lebih lanjut tentang Aspose.Words for Java, jelajahi dokumentasi dan contoh yang ekstensif. Jika ada pertanyaan, jangan ragu untuk memberi tahu kami melalui forum kami.

Lihat juga