This commit is contained in:
2025-10-22 16:45:33 +02:00
parent 6d2b4e9858
commit d8d3de7949
6 changed files with 255 additions and 81 deletions

View File

@@ -2,46 +2,46 @@
# -*- coding: utf-8 -*-
"""
Diagnostický test: načti Fio CSV a ověř parsování datumu.
Nenačítá se do MySQL pouze vypíše výsledek.
Quick, verified dump of all Fio transactions from MySQL → Excel.
Column names are exactly as in DB.
"""
import csv
from datetime import datetime
import pandas as pd
import pymysql
from pymysql.cursors import DictCursor
from pathlib import Path
from datetime import datetime
# ✅ Tvoje cesta k souboru
CSV_PATH = Path(r"u:\Dropbox\!!!Days\Downloads Z230\Vyhledane pohyby (1).csv")
# ======== CONFIG ========
MYSQL_CONFIG = {
"host": "192.168.1.76",
"port": 3307,
"user": "root",
"password": "Vlado9674+",
"database": "fio",
"charset": "utf8mb4",
}
def parse_czech_date(s: str):
"""Očistí řetězec a zkusí dd.mm.yyyy."""
if not s:
return None
s = s.strip().replace("\u00A0", "").replace("\ufeff", "")
try:
return datetime.strptime(s, "%d.%m.%Y").date()
except Exception:
return None
EXPORT_PATH = Path(r"u:\Dropbox\!!!Days\Downloads Z230") / f"Fio_ALL_{datetime.now():%Y-%m-%d_%H-%M-%S}.xlsx"
# ======== MAIN ========
def dump_all_transactions():
with pymysql.connect(**MYSQL_CONFIG) as conn:
sql = """
SELECT
*
FROM transactions
ORDER BY datum DESC;
"""
df = pd.read_sql(sql, conn)
def main():
with open(CSV_PATH, "r", encoding="utf-8-sig", newline="") as f:
reader = csv.DictReader(f, delimiter=";", quotechar='"')
rows = list(reader)
print(f"✅ Načteno {len(df)} transakcí z MySQL.")
print(f"Načteno {len(rows)} řádků.\n")
print("Ukázka prvních 10 řádků s hodnotou Datum:\n")
for i, row in enumerate(rows[:10], start=1):
raw = row.get("Datum")
parsed = parse_czech_date(raw)
print(f"{i:02d}. raw={repr(raw)} -> parsed={parsed}")
input("\n🔸 Stiskni Enter pro pokračování nebo ukončení... ")
# Save to Excel
df.to_excel(EXPORT_PATH, index=False)
print(f"📊 Excel export hotov:\n{EXPORT_PATH}")
if __name__ == "__main__":
if not CSV_PATH.exists():
raise SystemExit(f"❌ Soubor {CSV_PATH} nenalezen.")
main()
dump_all_transactions()