Wie kann ich eine UTF-8-Datei mit benutzerdefiniertem Feldtrennzeichen in Excel richtig interpretieren?

847
Balmipour

Ich verwalte ein altes PHP-Tool, das CSV-Dateien mit benutzerdefinierten Trennzeichen ausgibt.

Das war in Ordnung, da die Dateien nur von Programmen gelesen wurden. Nun, da jemand versucht, sie mit Excel zu öffnen, müsste der ziemlich unhandliche " benutzerdefinierte Textdateiimport " über die Datenregisterkarte verwendet werden. Für JEDE Datei.

Mein erstes Problem war, dass Excel die Kodierung nicht erkennt (verloren gegangene Zeichen usw.).
Ich fügte eine Stückliste hinzu, damit Excel sein UTF-8 erkennt, was funktionierte

Das zweite Problem ist, dass die Dateien ein bestimmtes Trennzeichen verwenden (derzeit "¶"). Ich erinnerte mich an einen Trick dafür: Das Hinzufügen von "sep =" in der ersten Zeile einer CSV-Datei informiert Excel darüber, dass Sie das Zeichen ',' als benutzerdefiniertes Trennzeichen verwenden.

Nun die lustigen Teile:

  • Das Hinzufügen einer Stückliste und eines benutzerdefinierten Trennzeichens scheint für Excel zu viel zu sein. Anscheinend muss ich zwischen dem Öffnen einer UTF-8-Datei und dem Öffnen mit einem benutzerdefinierten Trennzeichen wählen, nicht beide Optionen gleichzeitig (£ $% §¤ @!).
    Wenn also UTF-8 erkannt wird, werden die Felder nicht getrennt richtig aufgeteilt werden, ist die Kodierung verschraubt
  • Excel scheint nicht viel andere "benutzerdefinierte" Trennzeichen als "," und ";" zu behandeln. Der beste Arbeitscharakter, den ich gefunden habe, war Back-Quote (`).
    Ich dachte zuerst daran, dass dies der Fall sein könnte, weil die anderen Zeichen, die ich verwendete, UTF-8 waren (nicht erkannt), aber es funktionierte nicht einmal mit einem einfachen "♠", das Zeichen # 6 der Basistabelle ist.

Anscheinend wäre meine beste Option bisher, in den Code einzutauchen und zu versuchen, Optionen zum Angeben eines "Qualifier" -Parameters zum Einschließen meiner Felder hinzuzufügen, wodurch ich möglicherweise das Standardzeichen (";") als Trennzeichen verwenden könnte, aber ich fühle Ich gehe gerne auf Eier gehen und den Code ändern, der seit Jahren in Produktion ist.
und ich bin nicht einmal sicher, dass ich mit dem Qualifikanten selbst keine Probleme bekomme.

Hat jemand eine zuverlässigere Lösung?

0

0 Antworten auf die Frage