Ich habe eine Excel-Datei mit einigen spanischen Zeichen (Tildes usw.), die ich in eine CSV-Datei konvertieren muss, um sie als Importdatei zu verwenden. Wenn ich jedoch Als CSV speichern, werden die "speziellen" spanischen Zeichen, die keine ASCII-Zeichen sind, beschädigt. Dies scheint auch mit den linken und rechten Anführungszeichen und langen Strichen zu tun zu haben, die anscheinend vom ursprünglichen Benutzer stammen, der die Excel-Datei auf dem Mac erstellt hat.
Da es sich bei CSV nur um eine Textdatei handelt, kann sie sicher eine UTF8-Codierung verarbeiten. Ich vermute, dass dies eine Excel-Einschränkung ist, suche jedoch nach einer Möglichkeit, von Excel zu CSV zu gelangen und die Nicht-ASCII-Zeichen beizubehalten intakt.
Antworten:
Eine einfache Problemumgehung ist die Verwendung von Google Spreadsheet. Einfügen (Werte nur, wenn Sie komplexe Formeln haben) oder das Blatt importieren, dann CSV herunterladen. Ich habe nur ein paar Charaktere ausprobiert und es funktioniert ziemlich gut.
HINWEIS: Für Google Sheets gelten beim Import Einschränkungen. Siehe hier .
HINWEIS: Achten Sie bei Google Sheets auf vertrauliche Daten.
BEARBEITEN: Eine weitere Alternative - im Grunde verwenden sie VB-Makros oder Add-Ins, um das Speichern als UTF8 zu erzwingen. Ich habe keine dieser Lösungen ausprobiert, aber sie klingen vernünftig.
quelle
Ich habe OpenOffice gefunden , dass die Tabellenkalkulationsanwendung Calc von wirklich gut mit CSV-Daten umgehen kann.
Klicken Sie im Dialogfeld "Speichern unter ..." auf "Formatoptionen", um verschiedene Codierungen für CSV abzurufen. LibreOffice funktioniert genauso wie AFAIK.
quelle
Speichern Sie die Excel-Tabelle als "Unicode-Text (.txt)". Die gute Nachricht ist, dass alle internationalen Zeichen in UTF16 sind (Hinweis, nicht in UTF8). Die neue Datei "* .txt" ist jedoch durch TAB und nicht durch Kommas getrennt und daher keine echte CSV.
(optional) Wenn Sie keine durch TAB getrennte Datei für den Import verwenden können, verwenden Sie Ihren bevorzugten Texteditor und ersetzen Sie die TAB-Zeichen durch Kommas ",".
Importieren Sie Ihre * .txt-Datei in die Zielanwendung. Stellen Sie sicher, dass das UTF16-Format akzeptiert wird.
Wenn UTF-16 ordnungsgemäß mit Unterstützung für Nicht-BMP-Codepunkte implementiert wurde, können Sie eine UTF-16-Datei in UTF-8 konvertieren, ohne Informationen zu verlieren. Ich überlasse es Ihnen, Ihre Lieblingsmethode zu finden.
Ich verwende dieses Verfahren, um Daten aus Excel in Moodle zu importieren.
quelle
;
, und dann die txt-Datei in phpmyadmin mit dem Standard "Zeichensatz der Datei: utf-8", Format "CSV" importiert mit LOAD DATA ". Die gesamte Codierung wurde korrekt übertragen.Ich weiß, dass dies eine alte Frage ist, aber ich bin zufällig auf diese Frage gestoßen, als ich mit den gleichen Problemen wie das OP zu kämpfen hatte.
Nachdem ich keine der angebotenen Lösungen für eine praktikable Option befunden hatte, machte ich mich daran herauszufinden, ob es eine Möglichkeit gibt, dies nur mit Excel zu tun.
Glücklicherweise habe ich festgestellt, dass das Problem mit verlorenen Zeichen (in meinem Fall) nur beim Speichern vom XLSX-Format in das CSV-Format auftritt. Ich habe versucht, die xlsx-Datei zuerst in xls und dann in csv zu speichern. Es hat tatsächlich funktioniert.
Bitte probieren Sie es aus und sehen Sie, ob es für Sie funktioniert. Viel Glück.
quelle
Windows comma separated (CSV)
. Es funktioniert nicht, wenn ich die Standard- oder DOS-CSV-Optionen verwende - beide ersetzen die akzentuierten Zeichen durch zufällige Junk-Zeichen. Getestet für Zeichen inklusiveé
,è
,â
... Sie wissen nicht, ob es wirklich UTF8 ist aber die Zeichen sind nicht verstümmelt.Sie können den Befehl iconv unter Unix verwenden (auch unter Windows als libiconv verfügbar) ).
Nach dem Speichern als CSV unter Excel in die Befehlszeile setzen:
(Denken Sie daran, cp1250 durch Ihre Codierung zu ersetzen).
Funktioniert schnell und hervorragend für große Dateien wie die Postleitzahlendatenbank, die nicht in GoogleDocs importiert werden können (maximal 400.000 Zellen).
quelle
sed
odertr
von '\ t' nach ',' übersetzenSie können dies auf einem modernen Windows-Computer ohne Software von Drittanbietern tun. Diese Methode ist zuverlässig und verarbeitet Daten, die Kommas in Anführungszeichen, Tabulatorzeichen in Anführungszeichen, CJK-Zeichen usw. enthalten.
1. Speichern Sie aus Excel
Speichern Sie in Excel die Daten unter
file.txt
Verwendung des TypsUnicode Text (*.txt)
.2. Starten Sie PowerShell
Führen Sie
powershell
aus dem Startmenü.3. Laden Sie die Datei in PowerShell
4. Speichern Sie die Daten als CSV
quelle
CHARACTER SET utf8mb4
wie hier beschrieben verwenden: stackoverflow.com/a/10959780/470749Der einzige "einfache Weg", dies zu tun, ist wie folgt. Stellen Sie zunächst fest, dass es einen Unterschied zwischen dem, was angezeigt wird, und dem, was in der Excel-CSV-Datei verborgen bleibt, gibt.
Diese Datei befindet sich in UTF-8 und behält alle Zeichen und Akzente bei. Sie kann beispielsweise in MySQL und andere Datenbankprogramme importiert werden.
Diese Antwort stammt aus diesem Forum .
quelle
Eine andere, die ich nützlich gefunden habe: " Numbers " ermöglicht Codierungseinstellungen beim Speichern als CSV.
quelle
"nevets1219" hat Recht mit Google-Dokumenten. Wenn Sie die Datei jedoch einfach "importieren", wird sie häufig nicht in UTF-8 konvertiert.
Wenn Sie die CSV-Datei jedoch in eine vorhandene Google-Tabelle importieren, wird sie in UTF-8 konvertiert.
Hier ist ein Rezept:
Die resultierende Datei befindet sich in UTF-8
quelle
Verwenden von Notepad ++
Dadurch wird die von Excel gespeicherte beschädigte CSV-Datei behoben und in der richtigen Codierung erneut gespeichert.
Excel speichert in CP-1252 / Windows-1252. Öffnen Sie die CSV-Datei in Notepad ++. Wählen
Dann
Teilen Sie Notepad ++ zuerst die Codierung mit und konvertieren Sie dann . Einige dieser anderen Antworten werden konvertiert, ohne zuerst die richtige Codierung festzulegen, wodurch die Datei noch mehr entstellt wird. Sie würden drehen , was sein sollte
’
in達
. Wenn Ihr Charakter nicht in CP-1252 passt, ging er bereits verloren, als er als CSV gespeichert wurde. Verwenden Sie dafür eine andere Antwort.quelle
.csv
sind eine Textdatei. Diese Antwort öffnet die von Excel beschädigte CSV-Datei, korrigiert sie und speichert sie mit der richtigen Codierung erneut.Unter Excel 2016 und höher (einschließlich Office 365) gibt es eine CSV-Option für das UTF-8-Format.
Führen Sie in Office 365 Speichern unter aus. Wo früher möglicherweise CSV (durch Kommas getrennt) ausgewählt wurde, können Sie jetzt als einen der Dateitypen CSV UTF-8 (durch Kommas getrennt) (* .csv) speichern.
quelle
Für diejenigen, die nach einer vollständig programmatischen (oder zumindest serverseitigen) Lösung suchen, habe ich mit dem xls2csv-Tool von catdoc große Erfolge erzielt.
Installieren Sie catdoc:
Konvertierung durchführen:
Das ist blitzschnell.
Beachten Sie, dass es wichtig ist, dass Sie das
-d utf-8
Flag einschließen , da sonst die Ausgabe standardmäßig codiert wirdcp1252
codiert, und Sie laufen Gefahr, Informationen zu verlieren.Beachten Sie, dass dies
xls2csv
auch nur mit.xls
Dateien funktioniert, nicht mit.xlsx
Dateien.quelle
Was ist mit Powershell?
quelle
Einfachster Weg: Keine Notwendigkeit Öffnen Sie Office- und Google Docs
csv
Sie die gerade umbenannte Datei und ersetzen Sie alle Registerkarten durch Kommas. Wählen Sie dazu in Notepad unter Win 10 einfach ein Registerkartenfeld aus und klicken Sie aufCtrl+H
. Geben Sie im folgenden Fenster ein Komma,
in das Feld "Ersetzen durch" ein und klicken Sie auf "Alle ersetzen". Speichern Sie Ihre Datei. Das Ergebnis ist eine durch Kommas getrennte UTF-8-CSV-Datei.Öffne es sowieso nicht mit MS-Office !!! Jetzt haben Sie eine tabulatorgetrennte CSV-Datei. Oder durch Kommas getrennt, wenn Sie Schritt 5 angewendet haben.
quelle
.txt
Erweiterung zu verwenden.csv
, dh durch Kommas getrennte Dateien, ist nur verwirrend.So lustig es auch scheinen mag, der einfachste Weg, meine 180-MB-Tabelle in einer UTF8-CSV-Datei zu speichern, bestand darin, die Zellen in Excel auszuwählen, sie zu kopieren und den Inhalt der Zwischenablage in SublimeText einzufügen.
quelle
Ich konnte unter Mac Excel keine VBA-Lösung für dieses Problem finden. Es schien einfach keine Möglichkeit zu geben, UTF-8-Text auszugeben.
Also musste ich endlich VBA aufgeben, die Kugel beißen und AppleScript lernen. Es war nicht annähernd so schlimm, wie ich gedacht hatte.
Die Lösung wird hier beschrieben: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html
quelle
Unter der Annahme einer Windows-Umgebung können Sie die Datei wie gewohnt in Excel speichern und bearbeiten. Öffnen Sie dann die gespeicherte Excel-Datei in Gnome Gnumeric (kostenlos). Speichern Sie die Tabelle von Gnome Gnumeric als CSV, die - für mich jedenfalls - als UTF-8-CSV gespeichert wird.
quelle
Einfache Möglichkeit: Laden Sie open office ( hier ) herunter , laden Sie die Tabelle und öffnen Sie die Excel-Datei (
.xls
oder.xlsx
). Speichern Sie es dann einfach als Text-CSV-Datei und ein Fenster wird geöffnet, in dem Sie aufgefordert werden, das aktuelle Format beizubehalten oder als ODF-Format zu speichern. Wählen Sie "Aktuelles Format beibehalten" und wählen Sie im neuen Fenster die Option aus, die für Sie besser geeignet ist, je nachdem, in welcher Sprache Ihre Datei geschrieben wurde. Wählen Sie für die spanische Sprache Westeuropa (Windows-1252/ WinLatin 1
) und die Datei funktioniert einwandfrei. Wenn Sie Unicode (UTF-8
) auswählen , funktioniert es nicht mit den spanischen Zeichen.quelle
Speichern Sie die XLS-Datei (Excel-Datei) als Unicode-Text => Die Datei wird im Textformat (.txt) gespeichert.
Ändern Sie das Format von .txt in .csv (benennen Sie die Datei von XYX.txt in XYX.csv um
quelle
Ich bin auch auf das gleiche Problem gestoßen, aber es gibt eine einfache Lösung dafür.
Es funktioniert einwandfrei und es wird eine CSV-Datei generiert, die in jede Software importiert werden kann. Ich habe diese CSV-Datei in meine SQLITE-Datenbank importiert und sie funktioniert einwandfrei, wenn alle Unicode-Zeichen intakt sind.
quelle
Kam auf das gleiche Problem und googelte diesen Beitrag. Keines der oben genannten hat bei mir funktioniert. Zuletzt habe ich meine Unicode .xls in .xml konvertiert (wählen Sie Speichern unter ... XML Spreadsheet 2003) und es wurde das richtige Zeichen erzeugt. Dann schrieb ich Code, um die XML zu analysieren und den Inhalt für meine Verwendung zu extrahieren.
quelle
Ich habe ein kleines Python-Skript geschrieben, das Arbeitsblätter in UTF-8 exportieren kann.
Sie müssen nur die Excel-Datei als ersten Parameter angeben, gefolgt von den Blättern, die Sie exportieren möchten. Wenn Sie die Blätter nicht bereitstellen, exportiert das Skript alle Arbeitsblätter, die in der Excel-Datei vorhanden sind.
quelle
Excel speichert normalerweise eine CSV-Datei als ANSI-Codierung anstelle von utf8.
Eine Möglichkeit, die Datei zu korrigieren, ist die Verwendung von Notepad oder Notepad ++:
quelle
Eine zweite Option für "nevets1219" besteht darin, Ihre CSV-Datei in Notepad ++ zu öffnen und eine Konvertierung in ANSI durchzuführen.
Wählen Sie im oberen Menü: Codierung -> In Ansi konvertieren
quelle
Codierung -> In Ansi konvertieren wird in ANSI / UNICODE codiert. Utf8 ist eine Teilmenge von Unicode. Vielleicht wird in ANSI korrekt codiert, aber hier geht es um UTF8, @SequenceDigitale.
Es gibt schnellere Möglichkeiten, wie das Exportieren als CSV (durch Kommas getrennt) und das Öffnen dieser CSV mit Notepad ++ (kostenlos) und dann Codierung> In UTF8 konvertieren. Aber nur, wenn Sie dies einmal pro Datei tun müssen. Wenn Sie häufig ändern und exportieren müssen, ist die LibreOffice- oder GDocs-Lösung die beste.
quelle
Microsoft Excel bietet die Option, Tabellenkalkulationen mithilfe der Unicode-Codierung zu exportieren. Siehe folgenden Screenshot.
quelle
Öffnen Sie .csv gut mit Notepad ++. Wenn Sie feststellen, dass Ihre Codierung gut ist (Sie sehen alle Zeichen so, wie sie sein sollten), drücken Sie die Codierung und konvertieren Sie sie dann in ANSI - finden Sie heraus, wie Ihre aktuelle Codierung lautet
quelle
Eine andere Lösung besteht darin, die Datei per Winword zu öffnen und als txt zu speichern. Anschließend wird sie per Excel erneut geöffnet, und ISA funktioniert
quelle
Dialogfeld "Speichern"> Schaltfläche "Extras"> Weboptionen> Registerkarte "Codierung"
quelle
Ich habe das gleiche Problem und bin auf dieses Add-In gestoßen, und es funktioniert in Excel 2013 neben Excel 2007 und 2010, für die es erwähnt wird, einwandfrei.
quelle