generated from dopt-python/py311
improve export of test results to MS-Excel
This commit is contained in:
parent
c244285c4d
commit
4ca29ad049
@ -14,6 +14,7 @@ from pprint import pprint
|
||||
|
||||
import dopt_basics.datetime as dt
|
||||
import oracledb
|
||||
import pandas as pd
|
||||
import polars as pl
|
||||
import polars.selectors as cs
|
||||
import sqlalchemy as sql
|
||||
@ -1289,6 +1290,9 @@ def generate_test_result_data(
|
||||
|
||||
test_results = test_results.sort(by=["WF_ID", "BEDP_MAN"], descending=False)
|
||||
test_results = test_results.select(pl.int_range(1, pl.len() + 1).alias("Index"), pl.all())
|
||||
test_results = test_results.with_columns(
|
||||
pl.lit(None, dtype=pl.String).alias("Anmerkungen/Feedback")
|
||||
)
|
||||
|
||||
return test_results
|
||||
|
||||
@ -1296,25 +1300,61 @@ def generate_test_result_data(
|
||||
# %%
|
||||
test_results = generate_test_result_data(raw_data, pipe_res)
|
||||
test_results.head()
|
||||
|
||||
|
||||
# %%
|
||||
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||
p_save = Path.cwd() / f"Testdatensatz_WF-100-200_{date_str}.xlsx"
|
||||
test_results.to_pandas().set_index("Index").to_excel(
|
||||
p_save,
|
||||
freeze_panes=(1, 1),
|
||||
sheet_name=f"Ergebnisse_Testphase_{date_str}",
|
||||
)
|
||||
def write_test_results_excel(
|
||||
data: pl.DataFrame,
|
||||
base_filename: str,
|
||||
) -> None:
|
||||
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||
p_save = Path.cwd() / f"{base_filename}_{date_str}.xlsx"
|
||||
pd_df = data.to_pandas().set_index("Index")
|
||||
|
||||
with pd.ExcelWriter(p_save, engine="xlsxwriter") as writer:
|
||||
sheet_name = f"Ergebnisse_Testphase_{date_str}"
|
||||
pd_df.to_excel(
|
||||
writer,
|
||||
freeze_panes=(1, 1),
|
||||
sheet_name=sheet_name,
|
||||
)
|
||||
worksheet = writer.sheets[sheet_name]
|
||||
|
||||
rows, cols = pd_df.shape
|
||||
columns = ["Index"] + pd_df.columns.to_list()
|
||||
worksheet.add_table(
|
||||
0,
|
||||
0,
|
||||
rows,
|
||||
cols,
|
||||
{"columns": [{"header": c} for c in columns], "style": "Table Style Light 9"},
|
||||
)
|
||||
for i, col in enumerate(columns):
|
||||
if i == 0:
|
||||
worksheet.set_column(
|
||||
i, i, max(pd_df.index.astype(str).map(len).max(), len(col)) + 2
|
||||
)
|
||||
continue
|
||||
worksheet.set_column(
|
||||
i, i, max(pd_df[col].astype(str).map(len).max(), len(col)) + 2
|
||||
)
|
||||
|
||||
|
||||
# %%
|
||||
write_test_results_excel(test_results, "Testdatensatz_WF-100-200")
|
||||
|
||||
#####################################################################
|
||||
# %%
|
||||
# ** deviating titles where BEDP_MENGE_BEDARF_VM > MENGE_VORMERKER
|
||||
deviation_vm = test_results.with_columns(pl.col.MENGE_VORMERKER.fill_null(0)).filter(
|
||||
pl.col.BEDP_MENGE_BEDARF_VM > pl.col.MENGE_VORMERKER
|
||||
)
|
||||
deviation_vm = test_results.filter(pl.col.BEDP_TITELNR.is_in(dev["BEDP_TITELNR"].implode()))
|
||||
|
||||
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||
p_save = Path.cwd() / f"Abweichungen-VM_{date_str}.xlsx"
|
||||
deviation_vm.to_pandas().set_index("Index").to_excel(p_save, freeze_panes=(1, 1))
|
||||
deviation_vm = test_results.filter(
|
||||
pl.col.BEDP_TITELNR.is_in(deviation_vm["BEDP_TITELNR"].implode())
|
||||
)
|
||||
deviation_vm
|
||||
# %%
|
||||
write_test_results_excel(deviation_vm, "Abweichungen-VM")
|
||||
# ** WF-200 potentially triggered
|
||||
raw_data.filter(pl.col.MELDENUMMER.is_in((17, 18))).filter(
|
||||
pl.col.BEDP_TITELNR.is_duplicated()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user