Question Excel à CSV avec encodage UTF8


J'ai un fichier Excel qui a quelques caractères espagnols (tildes, etc.) que j'ai besoin de convertir en un fichier CSV à utiliser comme un fichier d'importation. Cependant, quand je fais Save As CSV, cela efface les caractères spéciaux espagnols qui ne sont pas des caractères ASCII. Il semble également faire cela avec les guillemets gauche et droit et les tirets longs qui semblent provenir de l'utilisateur original créant le fichier Excel dans Mac.

Étant donné que CSV est juste un fichier texte, je suis sûr qu'il peut gérer un encodage UTF8, donc je suppose qu'il s'agit d'une limitation Excel, mais je cherche un moyen de passer d'Excel à CSV et garder les caractères non-ASCII intact.


515
2017-11-19 00:48


origine


Réponses:


Une solution de contournement simple consiste à utiliser Google Spreadsheet. Coller (valeurs uniquement si vous avez des formules complexes) ou importer la feuille puis télécharger CSV. J'ai juste essayé quelques caractères et ça marche plutôt bien.

REMARQUE: Google Sheets a des limites lors de l'importation. Voir ici.

REMARQUE: faites attention aux données sensibles avec Google Sheets.

MODIFIER: Une autre alternative - Fondamentalement, ils utilisent VB macro ou addins pour forcer la sauvegarde en UTF8. Je n'ai essayé aucune de ces solutions mais elles me semblent raisonnables.


358
2017-11-19 01:08



J'ai trouvé Bureau ouvertL'application tableur, Calc, est vraiment bonne pour gérer les données CSV.

Dans la boîte de dialogue "Enregistrer sous ...", cliquez sur "Options de format" pour obtenir différents encodages pour CSV. LibreOffice fonctionne de la même manière AFAIK.

calc save dialog


108
2017-11-19 00:59



  1. Enregistrez la feuille Excel en tant que "Texte Unicode (.txt)". La bonne nouvelle est que tous les caractères internationaux sont en UTF16 (notez, pas en UTF8). Cependant, le nouveau fichier "* .txt" est délimité par des tabulations, pas délimité par des virgules, et n'est donc pas un vrai fichier CSV.

  2. (Facultatif) À moins que vous ne puissiez utiliser un fichier délimité par TAB pour l'importation, utilisez votre éditeur de texte favori et remplacez les caractères TAB par des virgules ",".

  3. Importez votre fichier * .txt dans l'application cible. Assurez-vous qu'il peut accepter le format UTF16.

Si UTF-16 a été correctement implémenté avec la prise en charge des points de code non-BMP, vous pouvez convertir un fichier UTF-16 en UTF-8 sans perdre d'informations. Je vous laisse le soin de trouver votre méthode préférée.

J'utilise cette procédure pour importer des données d'Excel vers Moodle.


97
2018-03-19 12:51



Je sais que c'est une vieille question, mais je me suis heurté à cette question tout en luttant contre les mêmes problèmes que le PO.

N'ayant trouvé aucune des solutions proposées une option viable, j'ai entrepris de découvrir s'il y avait un moyen de le faire en utilisant simplement Excel.

Heureusement, j'ai trouvé que le problème de caractère perdu se produit seulement (dans mon cas) lors de l'enregistrement du format xlsx au format csv. J'ai essayé d'enregistrer le fichier xlsx à xls d'abord, puis à csv. Cela a réellement fonctionné.

S'il vous plaît essayer et voir si cela fonctionne pour vous. Bonne chance.


41
2017-10-30 00:36



Vous pouvez utiliser iconv commande sous Unix (également disponible sous Windows libiconv).

Après l'enregistrement au format CSV sous Excel dans la ligne de commande mis:

iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(N'oubliez pas de remplacer cp1250 avec votre encodage).

Fonctionne vite et bien pour les gros fichiers comme la base de données des codes postaux, qui ne peuvent pas être importés dans GoogleDocs (limite de 400 000 cellules).


32
2018-06-12 10:33



Le seul "moyen facile" de le faire est le suivant. D'abord, réalisez qu'il y a une différence entre ce qui est affiché et ce qui est caché dans le fichier Excel .csv.

(1) Ouvrez un fichier Excel où vous avez l'info (.xls, .xlsx)

(2) Dans Excel, choisissez "CSV (Comma Delimited) (* .csv) comme type de fichier et enregistrez-le en tant que type.

(3) Dans NOTEPAD (sous "Programmes", puis Accessoires dans le menu Démarrer), ouvrez le fichier .csv enregistré dans le Bloc-notes

(4) Ensuite, choisissez -> Enregistrer sous .. et au bas de la boîte "Enregistrer sous", il y a une boîte de sélection étiqueté comme "Encodage". Sélectionnez UTF-8 (N'utilisez PAS ANSI ou vous perdez tous les accents, etc.). Après avoir sélectionné UTF-8, enregistrez le fichier dans un nom de fichier légèrement différent de celui d'origine.

Ce fichier est en UTF-8 et conserve tous les caractères et accents et peut être importé, par exemple, dans MySQL et d'autres programmes de base de données.

Cette réponse est tirée de ce forum.


22
2018-01-27 21:05



Un autre que j'ai trouvé utile: "Nombres"permet d'encoder les paramètres lors de l'enregistrement au format CSV.


21
2018-04-04 08:30



Vous pouvez le faire sur une machine Windows moderne sans logiciel tiers. Cette méthode est fiable et traitera les données qui incluent des virgules entre guillemets, des caractères de tabulation, des caractères CJK, etc.

1. Enregistrer à partir d'Excel

Dans Excel, enregistrez les données dans file.txt en utilisant le type Unicode Text (*.txt).

2. Démarrer PowerShell

Courir powershell à partir du menu Démarrer.

3. Chargez le fichier dans PowerShell

$data = Import-Csv C:\path\to\file.txt -Delimiter "`t" -Encoding BigEndianUnicode

4. Sauvegardez les données au format CSV

$data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation

17
2017-07-13 15:18