J'ai un fichier Excel qui contient des caractères espagnols (tildes, etc.) que je dois convertir en fichier CSV pour utiliser comme fichier d'importation. Cependant, lorsque j'enregistre au format CSV, cela réduit les caractères espagnols "spéciaux" qui ne sont pas des caractères ASCII. Il semble également le faire avec les guillemets gauche et droit et les longs tirets qui semblent provenir de l'utilisateur d'origine créant le fichier Excel sur Mac.
Étant donné que CSV n'est qu'un fichier texte, je suis sûr qu'il peut gérer un encodage UTF8, donc je suppose que c'est une limitation Excel, mais je cherche un moyen de passer d'Excel à CSV et de conserver les caractères non ASCII intact.
Réponses:
Une solution de contournement simple consiste à utiliser la feuille de calcul Google. Collez (valeurs uniquement si vous avez des formules complexes) ou importez la feuille puis téléchargez CSV. Je viens d'essayer quelques personnages et ça marche plutôt bien.
REMARQUE: Google Sheets a des limitations lors de l'importation. Voyez ici .
REMARQUE: faites attention aux données sensibles avec Google Sheets.
EDIT: Une autre alternative - en gros, ils utilisent des macro VB ou des compléments pour forcer la sauvegarde en UTF8. Je n'ai essayé aucune de ces solutions mais elles semblent raisonnables.
la source
J'ai trouvé que l' application de tableur d' OpenOffice , 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 que AFAIK.
la source
Enregistrez la feuille Excel en tant que "Texte Unicode (.txt)". La bonne nouvelle est que tous les caractères internationaux sont en UTF16 (attention, pas en UTF8). Cependant, le nouveau fichier "* .txt" est délimité par TAB, pas par virgule, et n'est donc pas un vrai CSV.
(facultatif) Sauf si vous pouvez utiliser un fichier délimité par TAB pour l'importation, utilisez votre éditeur de texte préféré et remplacez les caractères TAB par des virgules ",".
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 pour le faire.
J'utilise cette procédure pour importer des données d'Excel vers Moodle.
la source
;
, puis importé le fichier txt dans phpmyadmin avec par défaut "Jeu de caractères du fichier: utf-8", Format "CSV en utilisant LOAD DATA ". Tout l'encodage a été transféré correctement.Je sais que c'est une vieille question, mais je suis tombé sur cette question tout en luttant avec les mêmes problèmes que le PO.
N'ayant trouvé aucune des solutions proposées une option viable, je me suis mis à 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 ne se produit (dans mon cas) que lors de l'enregistrement du format xlsx au format csv. J'ai essayé d'enregistrer le fichier xlsx en xls d'abord, puis en csv. Cela a vraiment fonctionné.
Veuillez essayer et voir si cela fonctionne pour vous. Bonne chance.
la source
Windows comma separated (CSV)
. Cela ne fonctionne pas si j'utilise les options par défaut ou DOS CSV - ces deux remplacent les caractères accentués par des caractères indésirables aléatoires. Testé pour les personnages , y comprisé
,è
,â
... Je ne sais pas si c'est vrai UTF8 mais les personnages ne sont pas mutilée.Vous pouvez utiliser la commande iconv sous Unix (également disponible sous Windows en tant que libiconv ).
Après avoir enregistré au format CSV sous Excel dans la ligne de commande, mettez:
(n'oubliez pas de remplacer cp1250 par votre encodage).
Fonctionne rapidement et idéalement pour les gros fichiers comme la base de données des codes postaux, qui ne peuvent pas être importés dans GoogleDocs (400 000 cellules maximum).
la source
sed
outr
pour traduire de '\ t' en ','Vous pouvez le faire sur une machine Windows moderne sans logiciel tiers. Cette méthode est fiable et elle traitera les données qui incluent les virgules entre guillemets, les caractères de tabulation entre guillemets, les caractères CJK, etc.
1. Enregistrer à partir d'Excel
Dans Excel, enregistrez les données en
file.txt
utilisant le typeUnicode Text (*.txt)
.2. Démarrez PowerShell
Exécutez à
powershell
partir du menu Démarrer.3. Chargez le fichier dans PowerShell
4. Enregistrez les données au format CSV
la source
CHARACTER SET utf8mb4
comme décrit ici: stackoverflow.com/a/10959780/470749La seule "manière simple" de procéder est la suivante. Tout d'abord, réalisez qu'il existe une différence entre ce qui est affiché et ce qui est caché dans le fichier Excel .csv.
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 .
la source
Un autre que j'ai trouvé utile: " Numbers " permet des paramètres d'encodage lors de l'enregistrement au format CSV.
la source
"nevets1219" a raison sur Google docs, mais si vous "importez" simplement le fichier, il n'est souvent pas converti en UTF-8.
Mais si vous importez le CSV dans une feuille de calcul Google existante, il est converti en UTF-8.
Voici une recette:
Le fichier résultant sera en UTF-8
la source
Utilisation de Notepad ++
Cela corrigera le fichier CSV corrompu enregistré par Excel et le ré-enregistrera dans l'encodage approprié.
Excel enregistre dans CP-1252 / Windows-1252. Ouvrez le fichier CSV dans Notepad ++. Sélectionner
alors
Dites d'abord à Notepad ++ l'encodage, puis convertissez. Certaines de ces autres réponses sont en cours de conversion sans définir d'abord le codage approprié, ce qui altère encore plus le fichier. Ils tournent ce qui devrait être
’
en達
. Si votre personnage ne rentre pas dans le CP-1252, il était déjà perdu lors de son enregistrement au format CSV. Utilisez une autre réponse pour cela.la source
.csv
texte. Cette réponse ouvrira le fichier CSV corrompu par Excel, le corrigera, puis le ré-enregistrera avec l'encodage approprié.Sous Excel 2016 et versions ultérieures (y compris Office 365), il existe une option CSV dédiée au format UTF-8.
Dans Office 365, faites Enregistrer sous; là où auparavant on aurait pu choisir CSV (délimité par des virgules), maintenant l'un des types de fichiers que vous pouvez enregistrer est CSV UTF-8 (délimité par des virgules) (* .csv)
la source
Pour ceux qui recherchent une solution entièrement programmatique (ou au moins côté serveur), j'ai eu beaucoup de succès en utilisant l'outil xls2csv de catdoc.
Installez catdoc:
Faites la conversion:
C'est extrêmement rapide.
Notez qu'il est important d'inclure l'
-d utf-8
indicateur, sinon il encodera la sortie dans l'cp1252
encodage par défaut et vous risquez de perdre des informations.Notez que
xls2csv
ne fonctionne également qu'avec des.xls
fichiers, il ne fonctionne pas avec des.xlsx
fichiers.la source
Qu'en est-il de l'utilisation de Powershell?
la source
Manière la plus simple: pas besoin d'Open Office et de Google Documents
csv
fichier que vous venez de renommer et remplacez tous les onglets par des virgules. Pour ce faire, dans le Bloc-notes sur Win 10, sélectionnez simplement un champ d'onglet puis cliquez surCtrl+H
. Dans la fenêtre qui s'ouvre, tapez une virgule,
dans le champ "Remplacer par" puis cliquez sur "Remplacer tout". Enregistrez votre fichier. Le résultat sera un fichier csv UTF-8 délimité par des virgules.Ne l'ouvrez pas avec MS-Office de toute façon !!! Vous disposez maintenant d'un fichier CSV délimité par des tabulations. Ou, une virgule si vous avez appliqué l'étape numéro 5.
la source
.txt
extension.csv
, c'est-à-dire des fichiers séparés par des virgules, est tout simplement déroutant.Aussi drôle que cela puisse paraître, le moyen le plus simple que j'ai trouvé pour enregistrer ma feuille de calcul de 180 Mo dans un fichier CSV UTF8 était de sélectionner les cellules dans Excel, de les copier et de coller le contenu du presse-papiers dans SublimeText.
la source
Je n'ai pas pu trouver de solution VBA pour ce problème sur Mac Excel. Il ne semblait tout simplement pas possible de produire du texte UTF-8.
J'ai donc finalement dû abandonner VBA, mordre la balle et apprendre AppleScript. Ce n'était pas aussi mauvais que je l'avais pensé.
La solution est décrite ici: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html
la source
En supposant un environnement Windows, enregistrez et travaillez avec le fichier comme d'habitude dans Excel, puis ouvrez le fichier Excel enregistré dans Gnome Gnumeric (gratuit). Enregistrez la feuille de calcul de Gnome Gnumeric au format CSV qui - pour moi en tout cas - l'enregistre au format UTF-8 CSV.
la source
Un moyen facile de le faire: téléchargez Open Office ( ici ), chargez la feuille de calcul et ouvrez le fichier Excel (
.xls
ou.xlsx
). Ensuite, enregistrez-le simplement en tant que fichier texte CSV et une fenêtre s'ouvre vous demandant de conserver le format actuel ou de l'enregistrer au format .ODF. sélectionnez «conserver le format actuel» et dans la nouvelle fenêtre, sélectionnez l'option qui vous convient le mieux, en fonction de la langue dans laquelle votre fichier a été écrit. Pour la langue espagnole, sélectionnez Europe occidentale (Windows-1252/ WinLatin 1
) et le fichier fonctionne très bien. Si vous sélectionnez Unicode (UTF-8
), cela ne fonctionnera pas avec les caractères espagnols.la source
Enregistrer le fichier xls (fichier Excel) au format Unicode => le fichier sera enregistré au format texte (.txt)
Changez le format de .txt en .csv (renommez le fichier de XYX.txt en XYX.csv
la source
J'ai également rencontré le même problème, mais il existe une solution simple à ce problème.
Il fonctionne parfaitement et un fichier csv est généré qui peut être importé dans n'importe quel logiciel. J'ai importé ce fichier csv dans ma base de données SQLITE et il fonctionne parfaitement avec tous les caractères unicode intacts.
la source
Je suis tombé sur le même problème et j'ai recherché ce message sur Google. Rien de ce qui précède n'a fonctionné pour moi. Enfin, j'ai converti mon .xls Unicode en .xml (choisissez Enregistrer sous ... Feuille de calcul XML 2003) et il a produit le bon caractère. Ensuite, j'ai écrit du code pour analyser le xml et extrait le contenu pour mon usage.
la source
J'ai écrit un petit script Python qui peut exporter des feuilles de calcul en UTF-8.
Il vous suffit de fournir le fichier Excel comme premier paramètre suivi des feuilles que vous souhaitez exporter. Si vous ne fournissez pas les feuilles, le script exportera toutes les feuilles de calcul présentes dans le fichier Excel.
la source
Excel enregistre généralement un fichier csv en tant que codage ANSI au lieu de utf8.
Une option pour corriger le fichier consiste à utiliser le Bloc-notes ou le Bloc-notes ++:
la source
Une deuxième option pour "nevets1219" consiste à ouvrir votre fichier CSV dans Notepad ++ et à effectuer une conversion en ANSI.
Choisissez dans le menu supérieur: Encodage -> Convertir en Ansi
la source
Encodage -> Convertir en Ansi le codera en ANSI / UNICODE. Utf8 est un sous-ensemble d'Unicode. Peut-être que dans ANSI sera encodé correctement, mais ici nous parlons de UTF8, @SequenceDigitale.
Il existe des moyens plus rapides, comme l'exportation au format csv (délimité par des virgules), puis l'ouverture de ce csv avec Notepad ++ (gratuit), puis l'encodage> Convertir en UTF8. Mais seulement si vous devez le faire une fois par fichier. Si vous devez modifier et exporter correctement, la meilleure solution est LibreOffice ou GDocs.
la source
Microsoft Excel a une option pour exporter une feuille de calcul en utilisant le codage Unicode. Voir capture d'écran suivante.
la source
ouvrir .csv très bien avec notepad ++. si vous voyez que votre encodage est bon (vous voyez tous les caractères tels qu'ils devraient être), appuyez sur l'encodage, puis convertissez-le en ANSI - découvrez quel est votre encodage actuel
la source
une autre solution consiste à ouvrir le fichier par winword et à l'enregistrer sous txt puis à le rouvrir par excel et cela fonctionnera ISA
la source
Boîte de dialogue Enregistrer> bouton Outils> Options Web> onglet Encodage
la source
J'ai le même problème et je tombe sur cet add-in, et cela fonctionne parfaitement bien dans Excel 2013 à côté d'Excel 2007 et 2010 pour lequel il est mentionné.
la source