Integrasi Data Excel ke dalam Presentasi PowerPoint

Pendahuluan

Presentasi PowerPoint adalah cara yang kuat untuk menampilkan dan menyampaikan informasi. Mereka sering digunakan bersama dengan workbook Excel, di mana Excel berfungsi sebagai sumber data terstruktur yang sangat baik dan PowerPoint unggul dalam memvisualisasikan data tersebut untuk audiens.

Ada banyak skenario praktis di mana menggabungkan Excel dan PowerPoint menjadi penting: mail merge, mengisi tabel data, menghasilkan satu slide per catatan data (generasi slide batch), membuat materi pelatihan, dan mengkonsolidasikan beberapa laporan Excel menjadi satu presentasi, antara lain.

Sebelumnya, mengimplementasikan fitur semacam ini dengan API Aspose.Slides memerlukan ketergantungan pada solusi pihak ketiga seperti Aspose.Cells. Meskipun alat-alat tersebut kuat, mereka dapat menjadi terlalu kompleks dan mahal bagi pengguna yang hanya membutuhkan fungsionalitas integrasi data dasar.

Cara Kerjanya

Untuk mempermudah dan memperlancar kerja dengan data Excel, Aspose.Slides telah memperkenalkan kelas baru untuk membaca data dari workbook Excel dan mengimpor konten ke dalam presentasi. Fitur ini membuka peluang baru yang kuat bagi pengguna API yang ingin memanfaatkan Excel sebagai sumber data dalam alur kerja presentasi mereka.

Fungsionalitas baru ini dirancang untuk akses data umum dan tidak terintegrasi ke dalam Presentation Document Object Model (DOM). Itu berarti tidak memungkinkan pengeditan atau penyimpanan file Excel — tujuan utamanya hanya membuka workbook dan menavigasi isinya untuk mengambil data sel.

Inti dari fitur ini adalah kelas baru ExcelDataWorkbook. Kelas ini memungkinkan Anda memuat workbook Excel dari file lokal atau aliran. Setelah dimuat, ia menyediakan beberapa overload dari metode get_cell, yang dapat Anda gunakan untuk mengambil sel tertentu berdasarkan posisinya (misalnya indeks baris dan kolom atau rentang bernama).

Setiap panggilan ke get_cell mengembalikan instance dari kelas ExcelDataCell. Objek ini mewakili satu sel dalam workbook Excel dan memberi Anda akses ke nilainya dengan cara yang sederhana dan intuitif.

Impor Diagram Excel

Langkah selanjutnya untuk memperluas fungsionalitas adalah kelas ExcelWorkbookImporter. Kelas utilitas ini menyediakan fungsionalitas untuk mengimpor konten dari workbook Excel ke dalam presentasi. Ia berisi beberapa overload dari metode add_chart_from_workbook, yang membantu Anda mengambil diagram yang dipilih dari workbook Excel yang ditentukan dan menambahkannya ke akhir koleksi shape yang diberikan pada koordinat yang ditentukan.

Singkatnya, ini adalah API yang ringan dan langsung untuk membaca data Excel — tepat apa yang dibutuhkan banyak pengembang tanpa beban library pemrosesan spreadsheet penuh.

Mari Kita Kode

Contoh Skenario Mail Merge

Dalam contoh berikut, kami akan mengimplementasikan skenario Mail Merge sederhana dengan menghasilkan beberapa presentasi berdasarkan data yang disimpan dalam workbook Excel.

Untuk memulai, kami membutuhkan dua hal:

  1. Workbook Excel yang berisi data

Contoh data Excel

  1. Templat presentasi PowerPoint

Contoh templat PowerPoint

import aspose.slides as slides

# Muat workbook Excel dengan data karyawan.
workbook = slides.excel.ExcelDataWorkbook("TemplateData.xlsx")
worksheet_index = 0

# Muat templat presentasi.
with slides.Presentation("PresentationTemplate.pptx") as template_presentation:

    # Loop melalui baris Excel (mengecualikan header pada baris 0).
    for row_index in range(1, 5):

        # Buat presentasi baru untuk setiap catatan karyawan.
        with slides.Presentation() as employee_presentation:

            # Hapus slide kosong default.
            employee_presentation.slides.remove_at(0)

            # Gandakan slide templat ke dalam presentasi baru.
            slide = employee_presentation.slides.add_clone(template_presentation.slides[0])

            # Dapatkan paragraf dari shape target (asumsikan indeks shape 1 yang digunakan).
            paragraphs = slide.shapes[1].text_frame.paragraphs

            # Ganti placeholder dengan data dari Excel.
            employee_name = workbook.get_cell(worksheet_index, row_index, 0).value
            name_portion = paragraphs[0].portions[0]
            name_portion.text = name_portion.text.replace("{{EmployeeName}}", employee_name)

            department = workbook.get_cell(worksheet_index, row_index, 1).value
            department_portion = paragraphs[1].portions[0]
            department_portion.text = department_portion.text.replace("{{Department}}", department)

            years_of_service = str(workbook.get_cell(worksheet_index, row_index, 2).value)
            years_portion = paragraphs[2].portions[0]
            years_portion.text = years_portion.text.replace("{{YearsOfService}}", years_of_service)

            # Simpan presentasi yang dipersonalisasi ke file terpisah.
            employee_presentation.save(f"{employee_name} Report.pptx", slides.export.SaveFormat.PPTX)

Hasil

Contoh Tabel Excel

Pada contoh kedua, kami cukup menyalin data dari tabel Excel dan menampilkannya pada slide PowerPoint dalam format yang lebih menarik secara visual.

Dalam contoh ini, kami menggunakan kembali workbook Excel yang sama dari contoh pertama, yang berisi tabel karyawan sederhana.

# Muat workbook Excel yang berisi data karyawan.
workbook = slides.excel.ExcelDataWorkbook("TemplateData.xlsx")
worksheet_index = 0

# Buat presentasi PowerPoint baru.
with slides.Presentation() as presentation:

    # Tambahkan bentuk tabel ke slide pertama.
    table = presentation.slides[0].shapes.add_table(
        50, 200,
        [200, 200, 200],
        [30, 30, 30, 30, 30]
    )

    # Isi tabel PowerPoint dengan data dari workbook Excel.
    for row_index in range(0, 5):
        for column_index in range(0, 3):
            cell_value = str(workbook.get_cell(worksheet_index, row_index, column_index).value)
            table.columns[column_index][row_index].text_frame.text = cell_value

    # Simpan presentasi yang dihasilkan ke file.
    presentation.save("Table.pptx", slides.export.SaveFormat.PPTX)

Hasil

Contoh Impor Diagram Excel

Pada contoh ini, kami mengimpor diagram dari lembar kerja pertama workbook Excel yang digunakan pada contoh sebelumnya. Diagram tersebut akan terhubung ke workbook eksternal dalam presentasi yang dihasilkan.

Pertama, kami menambahkan diagram Pie ke workbook Excel berdasarkan tabel karyawan.

Contoh Diagram Excel

# Buat presentasi PowerPoint baru.
with slides.Presentation() as presentation:
    # Dapatkan koleksi shape dari slide pertama.
    shapes = presentation.slides[0].shapes

    # Impor diagram bernama "Chart 1" dari lembar pertama workbook dan tambahkan ke koleksi shape.
    slides.importing.ExcelWorkbookImporter.add_chart_from_workbook(
        shapes, 10, 10, "TemplateData.xlsx", "Sheet1", "Chart 1", False)

    # Simpan presentasi hasil ke file.
    presentation.save("Chart.pptx", slides.export.SaveFormat.PPTX)

Hasil

Contoh Impor Semua Diagram Excel

Bayangkan Anda memiliki workbook Excel yang penuh dengan diagram dan Anda perlu mengimpor semuanya ke dalam satu presentasi. Setiap diagram harus ditempatkan pada slide baru.

Kode berikut mengiterasi semua lembar kerja dalam file Excel sumber, mengekstrak diagram dari setiap lembar kerja, dan menambahkan masing‑masing diagram ke slide terpisah menggunakan tata letak slide kosong. Dalam presentasi yang dihasilkan, hanya data diagram yang akan disematkan, bukan seluruh workbook.

# Muat workbook Excel yang berisi data karyawan.
workbook = slides.excel.ExcelDataWorkbook("ExcelWithCharts.xlsx")

# Buat presentasi PowerPoint baru.
with slides.Presentation() as presentation:
    # Ambil tata letak slide kosong.
    blank_layout = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)

    # Dapatkan nama semua lembar kerja yang terdapat dalam workbook Excel.
    worksheet_names = workbook.get_worksheet_names()

    for name in worksheet_names:
        # Ambil kamus yang memetakan indeks diagram ke nama diagram untuk lembar kerja tersebut.
        worksheet_charts = workbook.get_charts_from_worksheet(name)
        
        for chart in worksheet_charts:
            # Tambahkan slide baru menggunakan tata letak kosong.
            slide = presentation.slides.add_empty_slide(blank_layout)

            # Impor diagram yang ditentukan dari workbook Excel ke dalam koleksi shape slide.
            slides.importing.ExcelWorkbookImporter.add_chart_from_workbook(
                slide.shapes, 10, 10, workbook, name, chart.key, False)

    # Simpan presentasi yang dihasilkan ke file.
    presentation.save("Charts.pptx", slides.export.SaveFormat.PPTX)

Ringkasan

Mekanisme ini, tersedia langsung di Aspose.Slides, menggabungkan kerja dengan data Excel dan presentasi dalam satu tempat. Ini memungkinkan Anda membuat slide dengan diagram visual dan data yang disajikan sebagai tabel Excel — tanpa library tambahan atau integrasi yang rumit.