Ekspor data Excel untuk mengisi formulir PDF

Rincian Implementasi

Dalam skenario berikut, kita akan menggunakan formulir PDF, yang berisi tiga field formulir bernama ID, Name, dan Gender.

todo:image_alt_text

Dalam Formulir yang ditentukan di atas memiliki satu halaman, dengan tiga field bernama “ID”, “Name”, dan “Gender” secara berurutan. Kita akan mengekstrak data dari lembar excel berikut ke dalam objek DataTable.

todo:image_alt_text

Kita perlu membuat objek dari kelas AutoFiller dan mengikat formulir Pdf yang ada di gambar di atas dan menggunakan metode ImportDataTable untuk mengisi field formulir menggunakan data yang ada di objek DataTable.Setelah metode dipanggil, file formulir Pdf baru dihasilkan, yang berisi lima halaman dengan formulir yang diisi berdasarkan data dari lembar Excel. Formulir Pdf masukan adalah halaman tunggal dan hasilnya adalah lima halaman, karena jumlah baris data di lembar excel adalah 5. Kelas DataTable menawarkan kemampuan untuk menggunakan baris pertama dari lembar sebagai ColumnName.

todo:image_alt_text todo:image_alt_text
todo:image_alt_text todo:image_alt_text
Workbook workbook = new Workbook();
// Membuat aliran file yang berisi file Excel untuk dibuka
FileStream fstream = new FileStream("d:\\pdftest\\newBook1.xls", FileMode.Open);
// Membuka file Excel melalui aliran file
workbook.Open(fstream);
// Mengakses lembar kerja pertama dalam file Excel
Worksheet worksheet = workbook.Worksheets[0];
// Mengekspor isi dari 7 baris dan 2 kolom mulai dari sel pertama ke DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);
// Menutup aliran file untuk membebaskan semua sumber daya
fstream.Close();
// Membuat objek dari kelas AutoFiller
AutoFiller autoFiller = new AutoFiller();
// File pdf masukan yang berisi bidang formulir
autoFiller.InputFileName = "d:\\pdftest\\DataTableExample.pdf";
// File pdf hasil, yang akan berisi bidang formulir yang diisi dengan informasi dari DataTable
autoFiller.OutputFileName = "D:\\pdftest\\DataTableExample_Filled.pdf";
// Memanggil metode untuk mengimpor data dari objek DataTable ke bidang formulir Pdf.
autoFiller.ImportDataTable(dataTable);
// Memanggil metode simpan untuk menghasilkan file pdf
autoFiller.Save();

Untuk mengisi dari XLSX silakan gunakan potongan kode berikut:

internal static void FillFromXLSX()
        {
            // Buat objek dari kelas AutoFiller
            AutoFiller autoFiller = new AutoFiller();
            // File pdf input yang berisi bidang formulir
            autoFiller.BindPdf(@"C:\Samples\Facades\Autofiller\Sample-Form-01.pdf");

            DataTable dataTable = GenerateDataTable();

            // Panggil metode untuk mengimpor data dari objek DataTable ke bidang formulir Pdf.
            autoFiller.ImportDataTable(dataTable);


            // Pdf hasil, yang akan berisi bidang formulir yang diisi dengan informasi dari DataTable
            autoFiller.Save(@"C:\Samples\Facades\Autofiller\Sample-Form-01_mod.pdf");

        }

Aspose.PDF untuk .NET memungkinkan Anda untuk menghasilkan Tabel Data dalam dokumen PDF:

private static DataTable GenerateDataTable()
        {
            string[] names = new[] { "Olivia", "Oliver", "Amelia", "George", "Isla", "Harry", "Ava", "Noah" };
            // Buat DataTable baru.
            System.Data.DataTable table = new DataTable("Students");
            // Deklarasikan variabel untuk objek DataColumn dan DataRow.
            DataColumn column;
            DataRow row;

            // Buat DataColumn baru, setel DataType,
            // ColumnName dan tambahkan ke DataTable.
            column = new DataColumn
            {
                DataType = System.Type.GetType("System.Int32"),
                ColumnName = "id",
                ReadOnly = true,
                Unique = true
            };
            // Tambahkan Kolom ke DataColumnCollection.
            table.Columns.Add(column);

            // Buat kolom kedua.
            column = new DataColumn
            {
                DataType = System.Type.GetType("System.String"),
                ColumnName = "First Name",
                AutoIncrement = false,
                Caption = "First Name",
                ReadOnly = false,
                Unique = false
            };
            // Tambahkan kolom ke tabel.
            table.Columns.Add(column);

            // Jadikan kolom ID sebagai kolom kunci utama.
            DataColumn[] PrimaryKeyColumns = new DataColumn[1];
            PrimaryKeyColumns[0] = table.Columns["id"];
            table.PrimaryKey = PrimaryKeyColumns;

            // Buat tiga objek DataRow baru dan tambahkan
            // mereka ke DataTable
            var rand = new Random();
            for (int i = 1; i <= 4; i++)
            {
                row = table.NewRow();
                row["id"] = i;
                row["First Name"] = names[rand.Next(names.Length)];
                table.Rows.Add(row);
            }
            return table;
        }

Kesimpulan