Lompat ke konten utama
←

Otomasi Excel dengan Python

Pelajaran 2 dari 18

Membaca workbook

Membaca banyak baris dengan iter_rows

Setelah pelajaran ini kamu bisa membaca seluruh baris data sebuah sheet dengan iter_rows dan values_only, termasuk menangani sel kosong.

±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

Membaca sel satu per satu tidak praktis untuk tabel ratusan baris. ws.iter_rows() menghasilkan satu baris setiap putaran perulangan. Dengan values_only=True setiap baris berupa tuple berisi nilai sel; tanpa argumen itu, isinya objek Cell yang nilainya masih harus diambil dengan .value. Argumen min_row=2 melewati baris judul kolom, dan max_col membatasi berapa kolom yang dibaca. ws.max_row adalah nomor baris terakhir yang berisi data.

Tuple bisa langsung dibongkar ke beberapa nama variabel di baris for, sehingga kode terbaca seperti nama kolomnya sendiri.

ws = load_workbook("absensi.xlsx")["Oktober"]
for nama, hadir, cuti in ws.iter_rows(min_row=2, values_only=True):
    print(nama, hadir + cuti)
# Ayu 22
# Bima 21

Sel yang tidak diisi terbaca None. Baris yang seluruhnya kosong di tengah tabel tetap ikut muncul sebagai tuple berisi None, karena iter_rows berjalan dari min_row sampai max_row tanpa melompati apa pun. Pemeriksaan if jumlah is None: continue melewati baris seperti itu sebelum dihitung.

Pesan error yang akan kamu temui

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType' berarti ada sel kosong yang ikut dijumlahkan. TypeError: unsupported operand type(s) for *: 'Cell' and 'int' berarti values_only=True terlupa, sehingga yang dikalikan objek sel. ValueError: too many values to unpack (expected 3) berarti sheet punya lebih banyak kolom daripada nama variabel di baris for; tambahkan max_col=3.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Kode for baris in ws.iter_rows(min_row=2): print(baris[1] * 2) berhenti dengan TypeError: unsupported operand type(s) for *: 'Cell' and 'int'. Perbaikan yang tepat?

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