Masukkan DataTable ke dalam Dokumen Word di C#

Sebagai pengembang .NET, Anda harus sering berurusan dengan objek DataTable. Terutama, saat Anda perlu mengimpor atau mengekspor data dari database atau file XML/JSON. Saat membuat dokumen secara terprogram, Anda mungkin perlu memasukkan data dari objek DataTable langsung ke tabel di dokumen Word. Untuk kasus seperti itu, izinkan saya memberi Anda solusi sempurna dan termudah untuk memasukkan data dari DataTable ke dalam dokumen Word di C#.

C# Library untuk Memasukkan DataTable di Word DOC - Download Gratis

Untuk mengimpor data dari objek DataTable ke dalam dokumen Word, kita akan menggunakan Aspose.Words for .NET. Ini adalah pustaka kaya fitur yang memungkinkan Anda membuat dan memproses dokumen MS Word. Anda dapat mengunduh DLL atau menginstalnya dari NuGet.

Unduh DLL

Instal melalui NuGet

PM> Install-Package Aspose.Words

C# Sisipkan Tabel Data ke dalam Dokumen Word - Langkah

Berikut ini adalah langkah-langkah yang akan kita ikuti untuk mengambil data dari DataTable dan memasukkannya ke dalam dokumen Word.

  • Memuat data dari database atau file data ke objek DataTable.
  • Buat dokumen Word baru dan tambahkan tabel baru ke dalamnya.
  • Ulangi baris di DataTable dan sisipkan setiap baris di tabel Word.

Dan itu saja.

Sekarang mari kita lihat bagaimana mengubah langkah-langkah ini menjadi kode C# dan mengimpor DataTable ke dalam dokumen Word.

Masukkan Data dari DataTable ke Word DOC di C#

Pertama, kita akan menulis metode yang menerima DocumentBuilder untuk membuat dokumen, DataTable memiliki data, dan parameter tambahan untuk mengaktifkan/menonaktifkan pengimporan judul kolom. Selain itu, ia mengembalikan objek Tabel.

Berikut adalah alur kerja dari metode ini.

  • Buat tabel baru dan dapatkan referensinya ke objek Tabel.
  • Sisipkan kolom ke dalam tabel sesuai dengan kolom di DataTable.
  • Tetapkan bobot font jika baris pertama untuk judul.
  • Ulangi setiap DataRow dalam koleksi DataTable.Rows.
  • Sisipkan sel baru untuk setiap nilai dan atur tipe data yang sesuai.
  • Kembalikan objek Tabel.

Berikut ini adalah penerapan metode untuk mengimpor data dari DataTable ke tabel dalam dokumen Word di C#.

///<summary>
/// Mengimpor konten dari DataTable yang ditentukan ke objek Tabel Aspose.Words baru. 
/// Tabel disisipkan pada posisi pembuat dokumen saat ini dan menggunakan pemformatan pembuat saat ini jika ada yang ditentukan.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
    Table table = builder.StartTable();

    // Periksa apakah nama kolom dari sumber data akan disertakan dalam baris header.
    if (importColumnHeadings)
    {
        // Simpan nilai asli properti ini sebelum mengubahnya.
        bool boldValue = builder.Font.Bold;
        ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;

        // Format baris judul dengan properti yang sesuai.
        builder.Font.Bold = true;
        builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

        // Buat baris baru dan masukkan nama setiap kolom ke baris pertama tabel.
        foreach (DataColumn column in dataTable.Columns)
        {
            builder.InsertCell();
            builder.Writeln(column.ColumnName);
        }

        builder.EndRow();

        // Kembalikan pemformatan asli.
        builder.Font.Bold = boldValue;
        builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
    }

    foreach (DataRow dataRow in dataTable.Rows)
    {
        foreach (object item in dataRow.ItemArray)
        {
            // Masukkan sel baru untuk setiap objek.
            builder.InsertCell();

            switch (item.GetType().Name)
            {
                case "DateTime":
                    // Tentukan format khusus untuk tanggal dan waktu.
                    DateTime dateTime = (DateTime)item;
                    builder.Write(dateTime.ToString("MMMM d, yyyy"));
                    break;
                default:
                    // Secara default item lain akan dimasukkan sebagai teks.
                    builder.Write(item.ToString());
                    break;
            }

        }

        // Setelah kami memasukkan semua data dari catatan saat ini, kami dapat mengakhiri baris tabel.
        builder.EndRow();
    }

    // Kami telah selesai memasukkan semua data dari DataTable, kami dapat mengakhiri tabel.
    builder.EndTable();

    return table;
}

Sekarang, saatnya memanggil metode ini dan memasukkan DataTable ke dalam dokumen Word.

Impor DataTable ke dalam Dokumen Word di C#

Berikut ini adalah langkah-langkah untuk mengimpor data dari DataTable ke dalam dokumen Word di C#.

  • Buat dokumen Word baru (atau muat yang sudah ada) menggunakan kelas Document.
  • Membaca data dari database/file ke objek DataTable.
  • Panggil metode yang telah kami tulis di bagian sebelumnya dan dapatkan Tabel yang dikembalikan.
  • Atur pemformatan tabel.
  • Simpan file Word menggunakan metode Document.Save().

Contoh kode berikut menunjukkan cara menyisipkan DataTable ke dalam dokumen Word di C#.

// Buat dokumen baru.
Document doc = new Document();

// Kita dapat memposisikan di mana kita ingin tabel disisipkan dan juga menentukan pemformatan tambahan apa pun
// diterapkan ke meja juga.
DocumentBuilder builder = new DocumentBuilder(doc);

// Kami ingin memutar lanskap halaman seperti yang kami harapkan dari tabel lebar.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;

DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");

// Ambil data dari sumber data kami yang disimpan sebagai DataTable.
DataTable dataTable = ds.Tables[0];

// Buat tabel di dokumen dari data yang terdapat di DataTable.
Table table = ImportTableFromDataTable(builder, dataTable, true);

// Kita dapat menerapkan gaya tabel sebagai cara yang sangat cepat untuk menerapkan pemformatan ke seluruh tabel.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;

// Untuk tabel kami, kami ingin menghapus tajuk untuk kolom gambar.
table.FirstRow.LastCell.RemoveAllChildren();

// Simpan dokumen keluaran.
doc.Save("Table.docx");

C# DataTable to Word Importer Library - Dapatkan Lisensi Gratis

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

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara memasukkan data dari DataTable ke dalam dokumen Word di C#. Anda dapat dengan mudah mengintegrasikan contoh kode ke dalam aplikasi Anda dan mengimpor data langsung dari database/XML/JSON ke dalam dokumen Word menggunakan DataTable.

.NET Word Library - Baca Lebih Lanjut

Anda dapat mengunjungi dokumentasi Aspose.Words for .NET untuk mempelajari lebih lanjut tentang perpustakaan. Jika Anda memiliki pertanyaan, jangan ragu untuk memberi tahu kami melalui forum kami.

Lihat juga