KWITANSI PEMBAYARAN
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
from openpyxl.utils.dataframe import dataframe_to_rows
# Data kwitansi
data = {
"No.": [1, 2],
"Nama Barang": ["Pengembangan Website", "Hosting & Domain"],
"Quantity": [1, 1],
"Jumlah (Rp)": [7500000, 1200000]
}
df = pd.DataFrame(data)
df.loc[len(df.index)] = ["", "Total", "", sum(df["Jumlah (Rp)"])]
# Buat workbook
wb = Workbook()
ws = wb.active
ws.title = "Kwitansi CV BARUNGODING"
# Judul dan header
ws.merge_cells("A1:D1")
ws["A1"] = "KWITANSI PEMBAYARAN - CV. BARUNGODING"
ws["A1"].font = Font(size=14, bold=True)
ws["A1"].alignment = Alignment(horizontal="center")
# Tambahkan data dari DataFrame
for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True), 3):
for c_idx, value in enumerate(row, 1):
cell = ws.cell(row=r_idx, column=c_idx, value=value)
if r_idx == 3: # Header
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill(start_color="4CAF50", end_color="4CAF50", fill_type="solid")
cell.alignment = Alignment(horizontal="center", vertical="center")
# Set lebar kolom
column_widths = [6, 30, 10, 15]
for i, width in enumerate(column_widths, 1):
ws.column_dimensions[chr(64 + i)].width = width
# Simpan file
excel_path = "/mnt/data/kwitansi_cv_barungoding.xlsx"
wb.save(excel_path)
excel_path
0 Komentar