Initial commit: NRW Dienstplan Generator (Variante 2)
This commit is contained in:
commit
99480bb7ff
10 changed files with 960 additions and 0 deletions
81
src/read_excel.py
Normal file
81
src/read_excel.py
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
"""
|
||||
Excel-Datei einlesen und Inhalt anzeigen
|
||||
"""
|
||||
|
||||
from openpyxl import load_workbook
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def read_excel_to_dict(filepath):
|
||||
"""Liest eine Excel-Datei und gibt die Daten als Dictionary zurück."""
|
||||
|
||||
wb = load_workbook(filepath, data_only=True)
|
||||
result = {}
|
||||
|
||||
for sheet_name in wb.sheetnames:
|
||||
ws = wb[sheet_name]
|
||||
|
||||
# Daten aus dem Sheet lesen
|
||||
data = []
|
||||
for row in ws.iter_rows(values_only=True):
|
||||
# Nur Zeilen mit Inhalt
|
||||
if any(cell is not None for cell in row):
|
||||
data.append(list(row))
|
||||
|
||||
result[sheet_name] = data
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def print_excel_content(filepath):
|
||||
"""Gibt den Inhalt einer Excel-Datei formatiert aus."""
|
||||
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Excel-Datei: {filepath}")
|
||||
print(f"{'='*60}\n")
|
||||
|
||||
data = read_excel_to_dict(filepath)
|
||||
|
||||
for sheet_name, rows in data.items():
|
||||
print(f"\n📊 Sheet: {sheet_name}")
|
||||
print(f"{'-'*60}")
|
||||
|
||||
if not rows:
|
||||
print(" (leer)")
|
||||
continue
|
||||
|
||||
# Tabelle ausgeben
|
||||
for i, row in enumerate(rows, 1):
|
||||
row_str = " | ".join(str(cell) if cell is not None else "" for cell in row)
|
||||
print(f" {i:3d}: {row_str}")
|
||||
|
||||
print(f"\n{'='*60}\n")
|
||||
|
||||
# Als JSON ausgeben
|
||||
print("📄 JSON-Format:")
|
||||
print(json.dumps(data, indent=2, ensure_ascii=False))
|
||||
|
||||
return data
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
# Datei als Argument übergeben
|
||||
filepath = sys.argv[1]
|
||||
else:
|
||||
# Nach neuester Datei im output-Ordner suchen
|
||||
output_dir = Path("output")
|
||||
excel_files = list(output_dir.glob("*.xlsx"))
|
||||
|
||||
if not excel_files:
|
||||
print("❌ Keine Excel-Dateien im output-Ordner gefunden!")
|
||||
print("Verwendung: python src/read_excel.py <pfad-zur-datei>")
|
||||
sys.exit(1)
|
||||
|
||||
# Neueste Datei verwenden
|
||||
filepath = max(excel_files, key=lambda p: p.stat().st_mtime)
|
||||
|
||||
print_excel_content(filepath)
|
||||
Reference in a new issue