Thread Excel Datei einlesen und schreiben mit Umlauten
(8 answers)
Opened by Jürgen at 2013-10-21 17:52
Hallo Perlgemeinde,
leider muss ich euch wieder einmal um Hilfe bitten. Und bevor es wieder "Haue" gibt: ja ich habe den Thread "Umlaute" auch gelesen und habe auch die Seite durchgelesen, die genannt wurde als Lektüre. Trotzdem komm ich nicht weiter oder habe eine "Hinrblockade"... :( Zum Thema: Ich lese eine Excel-Datei mit "Spreadsheet::XLSX" ein mein perlscript ein. Speichere die Werte in einem Array (wie ich es eben brauche) Danach schreibe ich die Werte in eine neue Excel-Tabelle. Mein Problem: ich lese "für" ein - und es wird "für" in der neuen Excel-Dateii ausgegeben :( Spreadsheet:XLSX basiert ja mM nach auf Spreadsheet::ParseExcel. Hier heisst es unter "Spreadsheet::ParseExcel::Cell": "The encoding() method returns the character encoding of the cell. my $encoding = $cell->encoding(); This method is only of interest to developers. In general Spreadsheet::ParseExcel will return all character strings in UTF-8 regardless of the encoding used by Excel. The encoding() method returns one of the following values: 0: Unknown format. This shouldn't happen. In the default case the format should be 1. 1: 8bit ASCII or single byte UTF-16. This indicates that the characters are encoded in a single byte. In Excel 95 and earlier This usually meant ASCII or an international variant. In Excel 97 it refers to a compressed UTF-16 character string where all of the high order bytes are 0 and are omitted to save space. 2: UTF-16BE. 3: Native encoding. In Excel 95 and earlier this encoding was used to represent multi-byte character encodings such as SJIS. " bei mir wird für den Zellwert die Ziffer "1" zurückgegeben, also für Excel 2013 (xlsx) UTF-16 Mein perlscript erstelle ich mit "geany" und die Datei wird in "UTF-8" abgespeichert Perl arbeitet intern mit UTF-8 Das Excel in das ich schreibe, interpretiert das, was es bekommt wohl auch als UTF-8 Soweit bin ich gekommen - aber den nächsten Gedankenschritt schaff ich nicht - was muss ich jetzt mit meinem Script machen, damit ich endlich Umlaute "durchreichen" kann :( Könnt ihr mir da bitte weiterhelfen? Grüße Jürgen Last edited: 2013-10-21 17:56:59 +0200 (CEST) |