Question Comment forcer Excel à citer toutes les colonnes d'un fichier CSV?


Excel ne place que des guillemets autour de certains champs, comment forcer Excel à enregistrer un fichier CSV avec des guillemets autour de chaque colonne?


78
2018-04-13 19:17


origine




Réponses:


Si vous ouvrez le fichier XLS dans LibreOffice ou OpenOffice, puis Enregistrer sous .... et choisissez Texte CSV, il générera un fichier CSV contenant également des guillemets. Par exemple.:   "Smith", "Pete", "Canada"   "Jones", "Mary", "England"

Il suffit de cocher la case "Quote all text cells": Export to CSV with LibreOffice

Afin de citer également des champs numériques, mettez en surbrillance votre plage de cellules et modifiez la mise en forme des cellules en "texte" avant de les enregistrer.


43
2017-09-04 18:18



Bien que ce ne soit pas une réponse à la question spécifique, il s'agit d'une solution de contournement plus simple que d'essayer de faire en sorte que mes clients utilisent une macro! - Duncanmoo
J'en ai assez d'utiliser cette méthode tous les jours, c'est pourquoi je suis ici - vladkras
Je pense que c'est la solution la plus simple et la plus pratique car OpenOffice est un logiciel portable. Vous n'avez rien à installer ni à écrire de code. - Scott Chu
meilleure réponse! - rajya vardhan
Pas une réponse du tout. La question concerne explicitement MS Excel - vladkras


Cette page a aussi la solution qui vient directement de la bouche du cheval:

http://support.microsoft.com/kb/291296/en-us

Si le lien se dégrade, le sujet à rechercher est le suivant:

"Procédure pour exporter un fichier texte avec à la fois des délimiteurs de virgules et de guillemets dans Excel" et / ou "Q291296"

tl; dr: utiliser leur macro


42
2018-03-07 10:09



Il est intéressant de noter que cette macro utilise Integer pour les valeurs de ligne et de colonne. Vous obtiendrez une erreur en essayant d'exporter plus de 32768 lignes. Changer les types de données en Long, par exemple, résoudra ce problème. - Dan
Bon spot (+1). Il semble qu'ils n'aient pas mis à jour le code depuis sa première écriture pour les versions d'Excel avec seulement 32768 lignes max. - sahmeepee
J'ai pris la liberté de créer un aperçu avec cette macro, et quelques corrections: gist.github.com/fabriceleal/7803969 - fableal
@fableal Super extrait! Cela mérite d'être dans une réponse. - xiankai
Office 2010 continue à déborder sur un grand nombre de lignes sélectionnées, comme @sahmeepee l'a mentionné. - access_granted


J'ai trouvé cette solution simple:

  1. Mettez en surbrillance les cellules que vous souhaitez ajouter les guillemets.
  2. Faites un clic droit et allez à: Format de cellule → Onglet: Numéro → Catégorie: Personnalisé
  3. Collez le suivant dans le Type champ: "''"@"''" (voir détails ci-dessous)
  4. Cliquez sur "ok"

La chaîne que vous collez est "''"@"''" qui est guillemet double, guillemet simple, guillemet simple, guillemet double, symbole @, guillemet double, guillemet simple, guillemet simple, guillemet double.

Edité pour Excel 2010 à partir des informations trouvées ici.


14
2017-08-21 16:54



Hmmm .. qui m'a donné "ITEM" (deux guillemets simples) plutôt que "(un double guillemet). Je viens juste de faire une recherche et de remplacer pour le réparer. - Clay Nichols
Le format aurait dû être \ "@ \" - manat
Cette réponse était en fait une réponse parfaite si vous utilisez LibreOffice - il manque totalement une option "texte" dans le menu Format> Format de format, en dépit de leur documentation exigeant que l'option soit présente. Si vous cliquez avec le bouton droit de la souris sur "Formater les cellules" dans LibreOffice, vous obtenez une liste complète des options d'interprétation des cellules - plutôt que les 6 options quelque peu inutiles présentées dans la liste déroulante. - 1owk3y


Powershell semble vider correctement. donc quelque chose comme

rechercher powershell.exe sur la machine Windows si vous ne connaissez pas powershell.

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

J'espère que ça aide quelqu'un.


5
2018-01-24 23:10





C'était le plus simple pour moi: j'ai importé la feuille de calcul dans Access 2010 et je l'ai exportée sous forme de fichier texte délimité. M'a donné les guillemets autour de mes champs. Cela prend moins d'une minute pour 42k lignes maintenant que j'ai les marches baissées.


3
2018-05-23 13:56



Le seul inconvénient serait que le champ lui-même contienne un guillemet double. - access_granted


J'ai trouvé un autre travail autour de ce qui n'implique pas la macro VBA, mais qui nécessite Notepad ++ ou un éditeur de texte basé sur des macros similaire.

Exportez votre fichier en tant que texte séparé par tabulation, puis ouvrez le fichier exporté dans Notepad ++. Remplacez toutes les occurrences du caractère 'tab' par le texte "," (littéralement double guillemet, virgule, double guillemet), puis utilisez une autre macro pour préfixer et suffixer chaque ligne de texte avec un guillemet double.

Un peu piraté mais je l'ai trouvé plus rapide que de faire fonctionner une macro VBA.


2
2017-07-09 15:12



Si vous vouliez faire cela dans Notepad ++, vous feriez mieux d'utiliser la recherche et le remplacement d'expressions régulières et vous pourriez alors effectuer les trois opérations de remplacement (début de ligne, tabulation et fin de ligne) à un seul endroit. - sahmeepee


  1. Mettez en surbrillance les cellules que vous souhaitez ajouter les guillemets.
  2. Faites un clic droit et allez à: Cellules For¬mat → Onglet: Numéro → Catégorie: Personnalisé
  3. Collez le suivi dans le champ Type: "''" @ "''" (voir détails ci-dessous)
  4. Cliquez sur "ok"
  5. Ouvrez le fichier .csv avec le Bloc-notes (ou équivalent)
  6. Remplacer tout "(guillemets simples répétés) par" (guillemet double)
  7. Remplace tout ;
  8. Enregistrer le fichier .csv révisé

2
2017-10-21 06:33





Si vous utilisez Notepad ++ pour ajouter des guillemets au début de chaque ligne, ouvrez simplement le fichier csv exporté, placez votre curseur sur la 1ère ligne, 1ère colonne, puis cliquez sur le menu Editeur / Editeur de colonne ..., sur le terrainTexte à insérer', entrer ", alors le début de chaque ligne aura une citation, alors vous pouvez utiliser une expression régulière pour rechercher / remplacer tous les onglets.


1
2017-07-23 02:51





Mettez en surbrillance les cellules que vous souhaitez ajouter les guillemets. Allez dans Format -> Cellules -> Personnalisé Copiez / collez les éléments suivants dans le champ Type: \ "@ \" Cliquez sur "ok" Soyez heureux de ne pas l'avoir fait à la main.

De: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/


1
2017-09-30 15:54



Cela fonctionne bien pour alpha - vous aurez besoin de \ "# \" pour les colonnes avec des valeurs numériques. - DropHit
Entre les \ "@ \" et \ "# \" cela fonctionne. Mais je dois toujours éditer les en-têtes dans Notepad ++ pour les colonnes numériques, puis remplacer tout "" "avec". Quelle douleur. - Gary