Lompat ke konten utama
←

Otomasi Excel dengan Python

Pelajaran 17 dari 18

pandas dan Excel

Memoles keluaran pandas dengan openpyxl

Setelah pelajaran ini kamu bisa membuka berkas hasil to_excel dengan openpyxl, memberi format Rupiah, judul tebal, freeze panes, dan lebar kolom yang dihitung dari isinya.

±13 menitDiperiksa 2 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Berkas hasil to_excel berisi nilai yang benar tetapi tampilannya polos: angka tanpa pemisah ribuan, lebar kolom bawaan 13 sehingga nama produk panjang terpotong, dan di pandas versi kelas ini judul kolom tidak ditebalkan. Polanya dua langkah: tulis dengan pandas, lalu buka berkas itu dengan load_workbook, atur gayanya dengan alat modul 2, dan simpan.

df.to_excel("gaji.xlsx", sheet_name="Gaji", index=False)
wb = load_workbook("gaji.xlsx")
ws = wb["Gaji"]
for (sel,) in ws.iter_rows(min_row=2, min_col=3, max_col=3):
    sel.number_format = '"Rp"#,##0'
ws.freeze_panes = "A2"
wb.save("gaji.xlsx")

Lebar kolom yang pas dihitung dari isinya: untuk setiap kolom, ambil panjang teks terpanjang — judul maupun data — lalu tambahkan sedikit ruang. ws.iter_cols() memberi sel per kolom, dan get_column_letter mengubah nomor kolom menjadi huruf untuk column_dimensions. Angka dihitung panjangnya setelah diubah dengan str().

to_excel juga punya argumen freeze_panes berupa pasangan (baris, kolom): (1, 0) membekukan baris pertama. Untuk format angka dan lebar kolom tetap dibutuhkan openpyxl.

Kesalahan yang sering terjadi

Memformat kolom menurut huruf tetap, misalnya selalu kolom C, lalu bulan depan urutan kolom DataFrame berubah dan format Rupiah jatuh di kolom jumlah unit. Cari kolomnya dari teks judul di baris 1. Lupa wb.save di akhir membuat semua gaya hilang tanpa pesan apa pun.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Laporan ditulis dengan df.to_excel("rekap.xlsx", index=False, freeze_panes=(1, 0)). Bagian mana yang dibekukan?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 2 lagi