modified: .gitignore

modified:   background_data.json
	modified:   excel_to_json.py
This commit is contained in:
SimolZimol
2025-06-18 21:27:03 +02:00
parent 3c82c85cac
commit c1da1d0593
3 changed files with 21 additions and 10 deletions

2
.gitignore vendored
View File

@@ -161,5 +161,3 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
background_data.json

View File

@@ -1,8 +1,9 @@
[
"Kupfer: Herr Meyer sucht immer noch nach einem rauchdurchlässigen Darm in Kaliber (Jahr: 2024, Monat: 06, Tag: 13)",
"Kupfer: Herr Meyer sucht immer noch nach einem rauchdurchlässigen Darm in Kaliber 58. Ich rufe nächste Woche an. (Jahr: 2024, Monat: 06, Tag: 13)",
"Schneider: Herr Frank hat unsere Aromi getestet, Kaliber ist etwas zu klein! (Jahr: 2024, Monat: 06, Tag: 13)",
"BraTido: Böttcher-Gohr wird Faser 50 weiter abnehmen, wenn wir Ihr mit dem Preis (Jahr: 2024, Monat: 06, Tag: 13)",
"BraTido: Böttcher-Gohr wird Faser 50 weiter abnehmen, wenn wir Ihr mit dem Preis etwas entgegenkommen (Jahr: 2024, Monat: 06, Tag: 13)",
"Meemken: Schäldarm Kal 18 schicken, muss auf Füllrohr 11 passen! Mit Streifen (Jahr: 2024, Monat: 06, Tag: 13)",
"Adler: Adler hat Probleme mit den Faser Abschnitten Kaliber 107. Wir sollten auf 2.6 umstellen. (Jahr: 2024, Monat: 09, Tag: 4)",
"Houdek : Unser Angebot wurde angenommen. Wir brauchen bis KW 32 250 km Schäldarm Kal 16. Fußlänge bekomme ich noch. (Jahr: 2024, Monat: 09, Tag: 4)",
"Hein Hasbergen: Ich habe dem Kunden Bescheid gesagt, dass die Schäldärme da sind. Sie schicken eine Bestellung (Jahr: 2024, Monat: 09, Tag: 4)",
"Tillmanns: Wir bekommen keine Bestellungen für die NicoStar 5 Kaliber 62 mehr. Frau Urs ist im Urlaub, ich kann im Moment nicht mit ihr sprechen (Jahr: 2024, Monat: 09, Tag: 4)"

View File

@@ -2,12 +2,14 @@ import pandas as pd
import json
import os
import re
from collections import defaultdict
root_dir = "exel_datein"
# Passe das Pattern an: Jahr/Monat/Tag
date_pattern = re.compile(r'(\d{4})[\\/](\d{2})[\\/](\d{1,2})')
all_notes = []
# Dict für Sammeln: (Kunde, Jahr, Monat, Tag) -> [Infos]
grouped_notes = defaultdict(list)
for dirpath, _, filenames in os.walk(root_dir):
for filename in filenames:
@@ -20,16 +22,26 @@ for dirpath, _, filenames in os.walk(root_dir):
else:
jahr = monat = tag = "unbekannt"
try:
df = pd.read_excel(excel_path, sheet_name=0, usecols=[0, 1], names=["Kunde", "Info"])
df = df.dropna(subset=["Kunde", "Info"])
# Lese beide Spalten, ohne Header
df = pd.read_excel(excel_path, sheet_name=0, usecols=[0, 1], header=None, names=["Kunde", "Info"])
# Fülle fehlende Kundennamen nach unten auf
df["Kunde"] = df["Kunde"].ffill()
# Entferne Zeilen, bei denen Info leer ist
df = df.dropna(subset=["Info"])
for _, row in df.iterrows():
# Format: Kunde: Info (Jahr: xxxx, Monat: xx, Tag: xx)
note = f"{row['Kunde']}: {row['Info']} (Jahr: {jahr}, Monat: {monat}, Tag: {tag})"
all_notes.append(note)
key = (row['Kunde'], jahr, monat, tag)
grouped_notes[key].append(str(row['Info']))
print(f"Verarbeitet: {excel_path}")
except Exception as e:
print(f"Fehler bei {excel_path}: {e}")
# Jetzt zusammenfassen: Ein Eintrag pro Kunde/Jahr/Monat/Tag
all_notes = []
for (kunde, jahr, monat, tag), infos in grouped_notes.items():
info_text = "".join(infos)
note = f"{kunde}: {info_text} (Jahr: {jahr}, Monat: {monat}, Tag: {tag})"
all_notes.append(note)
# Alles als JSON speichern
with open("background_data.json", "w", encoding="utf-8") as f:
json.dump(all_notes, f, ensure_ascii=False, indent=2)