Hallo Experten,
ich möchte mit hilfe von xlrd das Dezimal-Trennzeichen von Excel ermitteln. Hab's selbst probiert aber nicht geschaft. Hat vielleicht jemand von euch einen Tipp?
Danke.
Peter
xlrd + excel dezimal-trennzeichen ermitteln
Hallo und willkommen in Forum,
willst du wissen welches Zeichen als Dezimal-Trennzeichen für die Darstellung in MS-Excel Programm eingestellt ist? Oder geht es dir darum rauszufinden, welches Trennzeichen in einer Excel-Datei (*.xls) verwendet wird?
Vielleicht kannst du noch etwas genauer schildern, was du vorhast.
Grüße
Gerrit
willst du wissen welches Zeichen als Dezimal-Trennzeichen für die Darstellung in MS-Excel Programm eingestellt ist? Oder geht es dir darum rauszufinden, welches Trennzeichen in einer Excel-Datei (*.xls) verwendet wird?
Vielleicht kannst du noch etwas genauer schildern, was du vorhast.
Grüße
Gerrit
hallo und danke für die antwort.
ist das eigentlich nicht egal ob in MS-Excel Programm oder in einer Excel-Datei? Wenn ich in Excel das Dezimal-Trennzeichen einstelle, werden automatisch alle Excel-Dateien auf dieses Zeichen umformatiert, so ist es bei mir.
Zu meiner Arbeit.
Ich lese Daten aus der xls-Datei mit Hilfe von xlrd. Das klappt wunderbar, nur dem Python ist das egal was für Trennzeichen in Excel eingestellt ist, er liest die Zahlen immer mit Punkt als Trennzeichen. Dann verarbeite ich die Daten und schreibe in eine txt-Datei raus. Und ich möchte, dass das Trennzeichen in dieser txt-Datei das gleiche ist, wie in Excel.
ist das eigentlich nicht egal ob in MS-Excel Programm oder in einer Excel-Datei? Wenn ich in Excel das Dezimal-Trennzeichen einstelle, werden automatisch alle Excel-Dateien auf dieses Zeichen umformatiert, so ist es bei mir.
Zu meiner Arbeit.
Ich lese Daten aus der xls-Datei mit Hilfe von xlrd. Das klappt wunderbar, nur dem Python ist das egal was für Trennzeichen in Excel eingestellt ist, er liest die Zahlen immer mit Punkt als Trennzeichen. Dann verarbeite ich die Daten und schreibe in eine txt-Datei raus. Und ich möchte, dass das Trennzeichen in dieser txt-Datei das gleiche ist, wie in Excel.
Die Umformatierung der Trennzeichen findet aber nur in der Darstellung im Excel GUI statt. Intern werden die Daten wohl immer gleich gespeichert. Eventuell steht irgendwo in der xls-File unter welchen lokalen Einstellungen die Datei gespeichert wurde. Das Auszulesen dieser Daten wird von xlrd allerdings leider noch nicht unterstützt. In der Dokumentation von xlrd steht dazu:
Grüße
Gerrit
Ich würde dir empfehlen als Trennzeichen immer den Punkt (.) zu verwenden. Damit vermeidet man auch Konflikte, wenn z.B. das Komma (,) als Trennzeichen für Datensätze verwendet werden soll.Modern Excel file versions don't keep most of the built-in "number formats" in the file; Excel loads formats according to the user's locale. Currently xlrd's emulation of this is limited to a hard-wired table that applies to the US English locale. This may mean that currency symbols, [...] decimals separator, etc are inappropriate. Note that this does not affect users who are copying XLS files, only those who are visually rendering cells.
Grüße
Gerrit
ok, danke für die Infos.
Problem ist, dass wenn ein Anwender sein Excel-Datei öffnet und mein Makro anwendet, muss das Makro wissen was für Trenzeichen hat er in seinem Excel und die Zahlen mit richtigem Trennzeichen speichern.
Aber wenn es noch nicht von xlrd unterstützt wird, dann kann ich nichts machen
danke nochmals
Problem ist, dass wenn ein Anwender sein Excel-Datei öffnet und mein Makro anwendet, muss das Makro wissen was für Trenzeichen hat er in seinem Excel und die Zahlen mit richtigem Trennzeichen speichern.
Aber wenn es noch nicht von xlrd unterstützt wird, dann kann ich nichts machen
danke nochmals
@boriq: Wieso musst Du wissen was der Anwender für ein Trennzeichen eingestellt hat? Die Zahlen werden in der Datei immer im selben Format gespeichert, das ist unabhängig davon als welches Zeichen der Dezimaltrenner am Ende angezeigt wird.
@BlackJack: Die Text-Datei die ich am Ende erstelle, wird automatisch geöffnet und der Anwender kopiert die Werte in Excel zurück. (Ja ich weiss, geht auch anders, aber wir haben eine uralte Python version und das kann ich nicht ändern) D.h. wenn Anwender in Excel Komma als Dezimal-Trennzeichen hat und in der Text-Datei werden Werte mit Punkt als DT gespeichert und er kopiert diese Werte zurück in Excel, werden die Werte nicht als Zahl erkannt aber als Text. Wenn der Anwender Punkt als DT in Excel hat, ist es kein Problem.
Deswegen brauche ich wissen, was für ein Trennzeichen der Anwender in Excel har um ihm die Txt-Datei mit richtigem DT vorzubereiten.
Deswegen brauche ich wissen, was für ein Trennzeichen der Anwender in Excel har um ihm die Txt-Datei mit richtigem DT vorzubereiten.
Dann musst Du den Anwender halt fragen. Wenn das nicht in der Exceldatei steht, dann kannst Du das auf dem Weg auch nicht herausfinden.