Lompat ke konten utama
←

Otomasi Excel dengan Python

Pelajaran 7 dari 18

Menulis dan memformat

Format Rupiah dan tanggal

Setelah pelajaran ini kamu bisa memberi number_format Rupiah dan tanggal, serta mengubah teks hasil ekspor menjadi angka dan tanggal sungguhan.

±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

number_format mengatur tampilan sel, bukan nilainya. Sel berisi 1250000 dengan cell.number_format = '"Rp"#,##0' tampil sebagai Rp1,250,000 atau Rp1.250.000 di Excel, tetapi .value tetap 1250000 dan tetap bisa dijumlahkan. Teks di dalam tanda kutip ganda ditampilkan apa adanya, dan koma di antara tanda # adalah pemisah ribuan. Tanda yang muncul — titik atau koma — mengikuti pengaturan bahasa dan wilayah komputer yang membuka berkas, menurut panduan format angka Microsoft.

Tanggal ditulis sebagai objek datetime.date, bukan teks. openpyxl memberi format bawaan yyyy-mm-dd, yang bisa diganti misalnya dengan 'dd/mm/yyyy'. Saat dibaca kembali, sel tanggal menghasilkan objek datetime.datetime.

import datetime

ws["B2"] = 487500
ws["B2"].number_format = '"Rp"#,##0'
ws["C2"] = datetime.date(2026, 11, 3)
print(ws["C2"].number_format)          # yyyy-mm-dd
ws["C2"].number_format = "dd/mm/yyyy"

Teks hasil ekspor harus diubah dulu

Banyak sistem kasir dan perbankan mengekspor nominal sebagai teks "Rp 1.250.000" dan tanggal sebagai teks "10/10/2026". Sel seperti itu bertipe teks (data_type "s"): SUM di Excel melewatinya dan pengurutan tanggal kacau. Ubah nominal dengan membuang "Rp", titik, dan spasi lalu int(); ubah tanggal dengan datetime.datetime.strptime(teks, "%d/%m/%Y").

Pesan error yang akan kamu temui: ValueError: time data '2026-10-10' does not match format '%d/%m/%Y' berarti pola strptime tidak sama dengan bentuk teksnya. ValueError: invalid literal for int() with base 10: 'Rp 875.000' berarti masih ada huruf atau titik yang belum dibuang.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Sel B2 berisi angka 1250000 dan diberi number_format '"Rp"#,##0'. Apa yang dibaca ws["B2"].value?

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