Materi
df.to_excel("hasil.xlsx", sheet_name="Data", index=False) menulis DataFrame ke berkas baru: judul kolom di baris 1, data di bawahnya. Tanpa index=False, pandas menambahkan kolom A berisi nomor indeks 0, 1, 2 dengan judul kosong, dan semua kolom datamu bergeser satu ke kanan — tabel yang membingungkan siapa pun yang membukanya di Excel.
Untuk beberapa sheet dalam satu berkas, buka satu pd.ExcelWriter lalu panggil to_excel untuk setiap DataFrame dengan sheet_name berbeda. Blok with menyimpan dan menutup berkas saat blok selesai.
import pandas as pd
masuk = pd.DataFrame({"barang": ["Kertas", "Tinta"], "jumlah": [40, 6]})
keluar = pd.DataFrame({"barang": ["Kertas"], "jumlah": [12]})
with pd.ExcelWriter("mutasi.xlsx", engine="openpyxl") as writer:
masuk.to_excel(writer, sheet_name="Masuk", index=False)
keluar.to_excel(writer, sheet_name="Keluar", index=False)Memanggil df.to_excel("laporan.xlsx", ...) dua kali dengan nama berkas yang sama tidak menghasilkan dua sheet: panggilan kedua menulis berkas baru dan sheet pertama hilang. Dokumentasi pandas menyebut alasannya — mode bawaan ExcelWriter adalah menulis, yang menimpa berkas bernama sama. Untuk menambah sheet ke berkas yang sudah ada, pakai mode="a"; bila sheet bernama sama sudah ada, pandas berhenti dengan ValueError: Sheet 'Data' already exists and if_sheet_exists is set to 'error', kecuali if_sheet_exists="replace" disebut.