Tabel sangat membantu untuk mengatur informasi dan angka. Kami sering menyisipkan tabel dalam dokumen word (DOCX/DOC) untuk menampilkan informasi. Dalam aplikasi pengolah kata, Anda dapat dengan mudah membuat tabel menggunakan C++. Anda dapat melihat contoh berikut untuk belajar bekerja dengan Tabel di dokumen Word:

Mari kita lanjutkan untuk menjelajahi semua topik ini secara mendetail:

Sisipkan Tabel di Word Documents API

Pertama, harap perhatikan bahwa Anda akan menggunakan API Aspose.Words for C++ untuk menyisipkan tabel dalam dokumen word. Anda dapat mengonfigurasi API dengan mengunduhnya dari Rilis Baru atau melalui galeri NuGet. Setelah dikonfigurasi dengan benar, Anda cukup menggunakan metode, properti, dan kelas yang diekspos oleh API sehingga beberapa panggilan API sederhana dapat digunakan untuk membuat, mengedit, atau memanipulasi dokumen Microsoft Word, seperti file DOCX atau DOC.

Sisipkan Tabel di Dokumen Word menggunakan C++

Anda dapat menyisipkan tabel dalam dokumen word dengan beberapa langkah sederhana. Namun, penting untuk dicatat di sini bahwa Anda harus meneruskan objek dokumen ke konstruktor setiap node sehingga semua node anak menjadi milik objek yang sama. Anda harus mengikuti langkah-langkah yang tercantum di bawah ini:

  1. Inisialisasi objek dari kelas Document.
  2. Buat objek Tabel.
  3. Tambahkan Tabel ke Dokumen
  4. Buat Baris dan Kolom
  5. Terapkan Pasangan Otomatis pada Sel Tabel
  6. Simpan Dokumen Word keluaran

Cuplikan kode di bawah ini menunjukkan cara menyisipkan Tabel di dokumen Word (DOCX/DOC) menggunakan C++:

// Path ke direktori dokumen.
System::String outputDataDir = dataDir;
System::SharedPtr<Document> doc = System::MakeObject<Document>();

// Kita mulai dengan membuat objek tabel. Perhatikan bagaimana kita harus melewati objek dokumen
// Untuk konstruktor dari setiap node. Ini karena setiap node yang kita buat harus menjadi milik
// Untuk beberapa dokumen.
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);

// Tambahkan tabel ke dokumen.
doc->get_FirstSection()->get_Body()->AppendChild(table);

// Di sini kita dapat memanggil GuaranteeMinimum untuk membuat baris dan sel untuk kita. Metode ini digunakan
// Untuk memastikan bahwa simpul yang ditentukan valid, dalam hal ini tabel yang valid harus memiliki setidaknya satu
// Baris dan satu sel, oleh karena itu metode ini membuatnya untuk kita.
// Sebagai gantinya, kami akan menangani pembuatan baris dan tabel sendiri. Ini akan menjadi cara terbaik untuk melakukan ini
// Jika kita membuat tabel di dalam algorthim misalnya.
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);

// Kami sekarang dapat menerapkan pengaturan penyesuaian otomatis apa pun.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);

// Buat sel dan tambahkan ke baris
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);

// Tambahkan paragraf ke sel serta proses baru dengan beberapa teks.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));

// Tambahkan sel ke baris.
row->AppendChild(cell);

// Kami kemudian akan mengulangi proses untuk sel dan baris lain dalam tabel.
// Kami juga dapat mempercepat dengan mengkloning sel dan baris yang ada.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
System::String outputPath = outputDataDir + u"InsertTableDirectly.doc";

// Simpan dokumen ke disk.
doc->Save(outputPath);

Sisipkan Tabel dari HTML dalam Dokumen Word menggunakan C++

Ada kemungkinan file HTML berisi Tabel yang perlu Anda masukkan ke dalam dokumen kata Anda seperti DOCX, DOC, dll. Atau Anda mungkin perlu menyalin tabel dari situs web. Jadi alih-alih membuat dan mendesain tabel dari awal, Anda dapat dengan mudah mem-parsing markup HTML sebagai tabel ke dalam dokumen word. Misalnya, Anda dapat menambahkan tabel ke dalam dokumen Word menggunakan string HTML berikut:

<table><tr><td>Row 1, Cell 1</td><td>Row 1, Cell 2</td></tr><tr><td>Row 2, Cell 1</td><td>Row 2, Cell 2</td></tr></table>

Kami menjaga konten tetap sederhana sehingga dukungan untuk tag tabel dapat didemonstrasikan dengan kasus penggunaan dasar namun penting. Selain itu, penting untuk diperhatikan di sini bahwa AutoFit tidak dapat diterapkan pada tabel yang dibuat dari HTML.

Mari kita ikuti langkah-langkah di bawah ini untuk memasukkan tabel HTML ke dalam dokumen Word:

  1. Inisialisasi instance dari kelas Document.
  2. Lewati markup HTML dengan metode InsertHtml.
  3. Simpan keluaran file kata DOCX

Kode di bawah mengikuti langkah-langkah ini dan menunjukkan cara membuat tabel di dokumen Word dengan HTML menggunakan C++:

// Path ke direktori dokumen.
System::String outputDataDir = dataDir;
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Sisipkan tabel dari HTML. Perhatikan bahwa AutoFitSettings tidak berlaku untuk tabel
// Disisipkan dari HTML.
builder->InsertHtml(u"<table><tr><td>Row 1, Cell 1</td><td>Row 1, Cell 2</td></tr><tr><td>Row 2, Cell 1</td><td>Row 2, Cell 2</td></tr></table>");

System::String outputPath = outputDataDir + u"InsertTableFromHtml.doc";
// Simpan dokumen ke disk.
doc->Save(outputPath);

Anda dapat melihat metode ini sedikit lebih sederhana daripada pendekatan yang telah kami jelajahi di atas. Alasannya, Anda tidak perlu menambahkan setiap node satu per satu untuk baris, kolom, atau sel karena tag Tabel dalam string HTML berisi semua informasi. Berikut adalah tangkapan layar dari tabel HTML sederhana yang ditambahkan ke dalam dokumen Word:

Sisipkan Tabel di Word

Sisipkan Tabel Menggunakan Pembuat Dokumen di C++

Hal terbaik tentang Aspose.Words for C++ API adalah ia menawarkan berbagai fitur yang menjadi keunggulan kompetitif untuk API dan membuatnya menonjol di antara opsi lainnya. Demikian pula, fitur menyisipkan tabel menggunakan pembuat dokumen adalah pendekatan lain untuk menambahkan tabel dalam dokumen kata (DOC/DOCX). Jadi mari kita jelajahi detailnya dari tiga perspektif berbeda:

1) Sisipkan Simple Table di DOCX dengan Document Builder menggunakan C++

Untuk menambahkan tabel sederhana di dokumen word dengan Document builder, Anda perlu mengikuti langkah-langkah di bawah ini:

  1. Buat Document Objek
  2. Panggil metode StartTable() dan sisipkan sel
  3. Tambahkan Baris dan Sel
  4. Simpan file DOCX keluaran

Selain itu, cuplikan kode di bawah ini menunjukkan cara menyisipkan tabel sederhana dalam file DOCX dengan C++:

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Kami memanggil metode ini untuk mulai membangun tabel.
builder->StartTable();
builder->InsertCell();
builder->Write(u"Row 1, Cell 1 Content.");

// Bangun sel kedua
builder->InsertCell();
builder->Write(u"Row 1, Cell 2 Content.");

// Panggil metode berikut untuk mengakhiri baris dan memulai baris baru.
builder->EndRow();

// Bangun sel pertama dari baris kedua.
builder->InsertCell();
builder->Write(u"Row 2, Cell 1 Content");

// Bangun sel kedua.
builder->InsertCell();
builder->Write(u"Row 2, Cell 2 Content.");
builder->EndRow();

// Tanda bahwa kita telah selesai membuat meja.
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.SimpleTable.doc";

// Simpan dokumen ke disk.
doc->Save(outputPath);

2) Sisipkan Tabel Berformat di DOCX dengan Pembuat Dokumen menggunakan C++

Anda dapat memasukkan tabel yang diformat ke dalam dokumen kata dengan langkah-langkah di bawah ini:

  1. Inisialisasi instance dari kelas Document.
  2. Buat Baris Tajuk
  3. Tetapkan indentasi dan fitur untuk pemformatan
  4. Setel ulang pemformatan Font
  5. Simpan file Word DOCX keluaran

Cuplikan kode di bawah ini membuat tabel yang diformat dalam file DOCX menggunakan C++:

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
System::SharedPtr<Table> table = builder->StartTable();

// Buat baris tajuk.
builder->InsertCell();

// Tetapkan lekukan kiri untuk tabel. Pemformatan lebar tabel harus diterapkan setelahnya
// Setidaknya ada satu baris dalam tabel.
table->set_LeftIndent(20.0);

// Tetapkan tinggi dan tentukan aturan tinggi untuk baris tajuk.
builder->get_RowFormat()->set_Height(40.0);
builder->get_RowFormat()->set_HeightRule(HeightRule::AtLeast);

// Beberapa fitur khusus untuk baris tajuk.
builder->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::FromArgb(198, 217, 241));
builder->get_ParagraphFormat()->set_Alignment(ParagraphAlignment::Center);
builder->get_Font()->set_Size(16);
builder->get_Font()->set_Name(u"Arial");
builder->get_Font()->set_Bold(true);
builder->get_CellFormat()->set_Width(100.0);
builder->Write(u"Header Row,\n Cell 1");

// Kita tidak perlu menentukan lebar sel ini karena diwariskan dari sel sebelumnya.
builder->InsertCell();
builder->Write(u"Header Row,\n Cell 2");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Header Row,\n Cell 3");
builder->EndRow();

// Tetapkan fitur untuk baris dan sel lainnya.
builder->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_White());
builder->get_CellFormat()->set_Width(100.0);
builder->get_CellFormat()->set_VerticalAlignment(CellVerticalAlignment::Center);

// Setel ulang ketinggian dan tentukan aturan ketinggian yang berbeda untuk badan tabel
builder->get_RowFormat()->set_Height(30.0);
builder->get_RowFormat()->set_HeightRule(HeightRule::Auto);
builder->InsertCell();

// Setel ulang pemformatan font.
builder->get_Font()->set_Size(12);
builder->get_Font()->set_Bold(false);

// Bangun sel lainnya.
builder->Write(u"Row 1, Cell 1 Content");
builder->InsertCell();
builder->Write(u"Row 1, Cell 2 Content");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Row 1, Cell 3 Content");
builder->EndRow();
builder->InsertCell();
builder->get_CellFormat()->set_Width(100.0);
builder->Write(u"Row 2, Cell 1 Content");
builder->InsertCell();
builder->Write(u"Row 2, Cell 2 Content");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Row 2, Cell 3 Content.");
builder->EndRow();
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.FormattedTable.doc";

// Simpan dokumen ke disk.
doc->Save(outputPath);

3) Sisipkan Nested Table di DOCX dengan Document Builder menggunakan C++

Terkadang kita membutuhkan tabel lain di dalam tabel yang sudah ada. Misalnya, sel di beberapa baris atau kolom tabel dapat berisi sub-tabel untuk sub-kategori atau beberapa bidang lainnya. Dalam skenario seperti itu, tabel Bersarang sangat membantu yang dapat ditambahkan dengan mengikuti langkah-langkah di bawah ini:

  1. Bangun Tabel luar dan kemudian panggil metode EndTable.
  2. Bangun Tabel bagian dalam di dalam sel tabel luar
  3. Simpan dokumen kata keluaran

Cuplikan kode berikut menunjukkan cara menyisipkan tabel bersarang di dokumen Word menggunakan C++:

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Buat tabel luar.
System::SharedPtr<Cell> cell = builder->InsertCell();
builder->Writeln(u"Outer Table Cell 1");
builder->InsertCell();
builder->Writeln(u"Outer Table Cell 2");

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

// Pindah ke sel pertama dari tabel luar.
builder->MoveTo(cell->get_FirstParagraph());

// Bangun meja bagian dalam.
builder->InsertCell();
builder->Writeln(u"Inner Table Cell 1");
builder->InsertCell();
builder->Writeln(u"Inner Table Cell 2");
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.NestedTable.doc";

// Simpan dokumen ke disk.
doc->Save(outputPath);

Kesimpulan

Singkatnya, kami telah belajar cara memasukkan tabel yang berbeda dalam dokumen Word menggunakan pendekatan yang berbeda. Anda dapat memasukkan tabel sederhana atau dengan string HTML serta tabel yang diformat dan bersarang ke dalam dokumen kata (DOC/DOCX). Namun, jika ada kebingungan atau pertanyaan, Anda dapat menghubungi kami di Forum Dukungan Gratis. Selain itu, Anda juga dapat merujuk ke Referensi API dan Dokumentasi Produk untuk referensi jenis Anda.

Lihat juga