Files
INF6B/openpyxl/bac_rumkugeln.py
T
2026-05-13 17:09:39 +02:00

49 lines
1.3 KiB
Python

from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference, Series
wb = Workbook()
ws = wb.active
ws.title = "Simulation"
gewicht_werte = [50, 65, 80]
r_frauen = 0.68
promille_stufen = [0.5, 1.0, 1.5, 2.0]
alkohol_pro_ball_g = 0.2
balls_per_pack = 18
preis_pro_pack = 6.5
ws.append(["Promille"] + [f"Kugeln ({g}kg Frau)" for g in gewicht_werte] + ["Kosten (€)"])
for p in promille_stufen:
row = [p]
for g in gewicht_werte:
alk = p * g * r_frauen
kugeln = round(alk / alkohol_pro_ball_g)
row.append(kugeln)
kosten = round((row[2] / balls_per_pack) * preis_pro_pack, 2)
row.append(kosten)
ws.append(row)
chart = LineChart()
chart.title = "Rumkugel-Bedarf vs. Promille"
chart.style = 13
chart.y_axis.title = "Anzahl Rumkugeln"
chart.x_axis.title = "Promille"
data = Reference(ws, min_col=2, max_col=4, min_row=1, max_row=len(promille_stufen)+1)
cats = Reference(ws, min_col=1, min_row=2, max_row=len(promille_stufen)+1)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
s2 = LineChart()
data_kosten = Reference(ws, min_col=5, max_col=5, min_row=1, max_row=len(promille_stufen)+1)
s2.add_data(data_kosten, titles_from_data=True)
s2.y_axis.axId = 200
s2.y_axis.title = "Kosten (€)"
s2.y_axis.crosses = "max"
chart += s2
ws.add_chart(chart, "G2")
wb.save("rum_kugel_fix.xlsx")