Seite 1 von 1

CSV zu EXCEL macht in Excel Probleme

Verfasst: Mittwoch 22. September 2021, 13:03
von Maternus
Hallo,

ich habe einen kleinen 2 Zeiler in Python geschrieben, der ein Dataframe erzeugt und diesen in eine XLSX "packen" soll.
Die Quelle ist eine CSV, was an dieser Stelle womöglich uninteressant ist.

Mein Problem ist nun, dass Excel Datei nach jedem Export fehlerhaft oder kaputt zu sein scheint.
Ich muss jedes mal die Daten wieder herstellen.
Hängt das mit Python oder Pandas zusammen?

Gruß

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Mittwoch 22. September 2021, 15:15
von sparrow
Solange du uns den 2-Zeiler vorenthälst, wird das niemand beantworten können.

So bleibt nur zu sagen: Es liegt wohl an deinem Code.

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 10:02
von Maternus
Hallo,

from pandas import ExcelWriter
import pandas as pd

df = pd.read_csv("C:/PFADGEÄNDERT/Report.csv",delimiter=";", encoding='ISO-8859-1',low_memory=False)
df.to_excel("C:/C:/PFADGEÄNDERT/Report.xlsx",index=False)

Hätte ich natürlich auch selber drauf kommen können, dass der Code wichtig sein könnte. :)

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 10:19
von __blackjack__
@Maternus: Was bedeutet denn „kaputt zu sein scheint“? Denn mal abgesehen davon, dass Du beim schreiben den Laufwerksbuchstaben doppelt im Pfad stehen hast, sieht das soweit richtig aus. Und die Struktur und die Kodierung von der CSV-Datei muss zum einlesen mit Pandas passen.

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 10:25
von Sirius3
Zuerst einmal kommt bei diesem Code eine ganz andere Fehlermeldung, nämlich dass 'C:/C:/PFADGEÄNDERT/Report.xlsx' kein gültiger Dateiname ist.

Was ist denn "fehlerhaft" oder "kaputt" an der Exceltabelle? Wird der Dataframe denn richtig gelesen?

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 10:49
von Maternus
Sorry ich habe den Pfad verändert um die Daten zu schützen bzw. mich :)
Der Fehler entsteht nach Durchlauf des Codes an der Stelle, wo Excel die Liste öffnen möchte.

"Wir haben ein Problem in einigen Inhalten in XY erkannt. Sollen wir so viel wie möglich wieder herstellen?"

Gruß

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 11:24
von __blackjack__
@Maternus: Da kann man jetzt nicht wirklich was zu sagen. Das kann an der CSV-Datei liegen, das kann an Pandas liegen, das kann an Excel liegen. Oder an einer beliebigen Kombination davon. Und natürlich jeweils an den Versionen der beteiligten Komponenten.

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 13:07
von Sirius3
Kannst Du die Daten soweit reduzieren, dass nur noch die Zellen im Dataframe sind, die den Fehler produzieren und diesen Dataframe dann hier posten?

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 13:55
von Maternus
Hallo,

habe die Verursacher gefunden. In den Zellen stehen Einträge wie =BGF.
Das findet Pandas offensichtlich nicht so gut. Jetzt muss ich also noch die "=" loswerden.

Danke schon Mal

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 13:56
von Buchfink
@Maternus
mir kommt die Meldung bekannt vor. Die kommt aus Excel.
Ich würde die mal googeln. Wenn ich mich recht entsinne, hatte das entweder mit dem Schreibschutz zu tun oder mit irgendwelchen Sonderzeichen im Excel.

Kann es sein, dass deine erste Zelle mit "ID" beginnt?

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Donnerstag 23. September 2021, 14:22
von Sirius3
Du hast Strings, die in Excel als Formel interpretiert werden. Das mußt Du beim Schreiben der Excel-Tabelle auschalten:

Code: Alles auswählen

with pd.ExcelWriter(filename, engine="xlsxwriter", options={"strings_to_formulas":False}) as writer:
    df.to_excel(writer, index=False)

Re: CSV zu EXCEL macht in Excel Probleme

Verfasst: Freitag 24. September 2021, 06:47
von Maternus
Danke Euch für die wirklich guten Antworten.
Die von Sirius passt glaube ich am besten. Damit würde ich dann ja jeglichen Sonderzeichen aus dem Weg gehen.

Danke