Excel ne place que des guillemets autour de certains champs. Comment forcer Excel à enregistrer un fichier CSV avec des guillemets autour de chaque colonne?
Excel ne place que des guillemets autour de certains champs. Comment forcer Excel à enregistrer un fichier CSV avec des guillemets autour de chaque colonne?
Réponses:
Si vous ouvrez le fichier XLS dans LibreOffice ou OpenOffice, puis enregistrez sous ... et choisissez Texte CSV, vous pourrez générer un fichier CSV incluant également des guillemets en tant que délimiteurs. Ex.: "Smith", "Pete", "Canada", "Jones", "Mary", "England"
Il suffit de cocher la case "Citer toutes les cellules de texte":
Afin de citer également des champs numériques, mettez en surbrillance votre plage de cellules et modifiez le formatage de la cellule en "texte" avant de l'enregistrer.
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:
"Procédure pour exporter un fichier texte avec des délimiteurs de virgule et de citation dans Excel" et / ou "Q291296"
tl; dr: utilise leur macro
J'ai trouvé cette solution facile:
"''"@"''"
(voir détails ci-dessous)La chaîne que vous collez est "''"@"''"
une citation double, une citation simple, une citation simple, une citation double, un symbole @, une citation double, une citation simple, une citation simple, une citation double.
Édité pour Excel 2010 à partir des informations trouvées ici .
\"@\"
Powershell semble se 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.
import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8
. N'oubliez pas d'utiliser des guillemets simples autour des noms de fichiers avec des espaces ou d'autres caractères spéciaux.
Pour moi, c'était le plus simple: j'ai importé la feuille de calcul dans Access 2010, puis exporté 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.
J'ai trouvé un autre travail qui n'implique pas la macro VBA, mais qui nécessite Notepad ++ ou un éditeur de texte similaire.
Exportez votre fichier sous forme de texte séparé par des tabulations, puis ouvrez le fichier exporté dans Notepad ++. Remplacez toutes les occurrences du caractère "tabulation" par le texte "," (c.-à-d. Littéralement guillemet, virgule, guillemet), puis utilisez une autre macro pour préfixer et suffixer chaque ligne de texte d'un guillemet double.
Un peu hacky mais je l'ai trouvé plus rapide que de faire fonctionner une macro VBA.
Mettez en surbrillance les cellules auxquelles vous souhaitez ajouter les guillemets. Allez dans Format -> Cellules -> Copie / Copie personnalisée 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/
"''"@"''"
(voir détails ci-dessous)' '
(guillemets simples répétés) par "
(guillemet double);
Si vous utilisez Notepad ++ pour ajouter des guillemets au début de chaque ligne, ouvrez simplement le fichier csv exporté, placez le curseur sur la 1ère ligne, la 1ère colonne, puis cliquez sur le menu Edition / Editeur de colonnes ... , dans le champ " Texte à 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.
Pour les utilisateurs Windows
Notez que ce n'est pas la même citation de clavier qui a une variété avant / arrière.
Donc, si vous utilisez CSV pour LOAD dans la table Mysql, coupez et collez dans le paramètre ENCLOSED, sinon vous vous demanderez pourquoi vous recevez un message.#1083 - Field separator argument is not what is expected
J'ai utilisé l'approche ci-dessous pour prendre trois colonnes dans Excel et créer la chaîne dans la quatrième colonne.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
Mon problème avec l' "''"@"''"
approche est la deuxième colonne de mes données était un nombre l' "''"@"''"
approche n'a pas fait avec les chiffres. Parfois, la deuxième colonne est vide mais je devais m'assurer qu'elle était bien représentée dans le fichier texte final.
Si vous avez un accès MS (j'ai la version 2007), importez le fichier puis exportez-le sous forme de fichier texte. Puis changez le .txt en .csv. Notez que tous les champs de nombres ne sont pas entourés de guillemets. Par conséquent, si vous avez besoin de guillemets également autour des nombres, modifiez le champ d’un champ de nombre en un champ de texte dans Access.
L'exportation de chaînes séparées par des virgules et entre guillemets peut être effectuée avec Excel 2016 et le Bloc-notes uniquement, à l'aide d'une copie des données, d'une formule, d'une exportation, d'une modification des propriétés du fichier, d'un remplacement dans le Bloc-notes, de la sauvegarde du fichier exporté et de son nettoyage. Chacun est une étape simple. En détail:
Copiez les colonnes à exporter dans une nouvelle feuille intermédiaire pour conserver l'original et en tant que sauvegarde, la nouvelle feuille devant être supprimée ultérieurement pour laisser la feuille de calcul telle qu'elle était.
Mettez des caractères qui ne se produisent pas, dites '#' ou ';-)' à chaque extrémité d'une chaîne de la colonne, dites A avec la formule =concat("#",trim(A1),"#")
, en plaçant la formule sur toutes les lignes d'une autre colonne.
Copiez les nouvelles colonnes sur A ..., en utilisant la méthode '123' afin de ne pas porter la formule.
Exportez la feuille sous forme de fichier CSV, afin de mettre les virgules entre les champs, y compris les nombres.
Modifiez les propriétés file.csv afin qu’il puisse être ouvert avec le Bloc-notes.
Utilisez le Bloc-notes pour remplacer le (s) caractère (s) arbitraire (s) par "" '.
Bien qu'il semblerait judicieux d'utiliser "en tant que caractère arbitraire, il doit être placé dans une cellule différente, par exemple" $ A $ 50 ", puis ce qui apparaît à l'exportation est" "" "", apparemment un autre déclencheur peu pratique.
Dans le bloc-notes, le fichier doit être enregistré, devenant un fichier * .txt à importer et le fichier intermédiaire * .csv supprimé.
Avec le nettoyage de la mission de feuille de calcul supplémentaire effectuée.
Peut-être qu'un jour les outils d’exportation d’Access seront intégrés à Excel. Une approche plus générique parmi les programmes qui utilisent le couper-coller consiste à faire en sorte que les options de collage incluent un choix de moyens pour interpréter la structure de sortie et fournir des délimiteurs.
La réponse de Michael du 21 août 2014 est vraiment utile. Cependant, je devais effectuer une ou deux étapes supplémentaires:
Ceci est ma recette Je déteste avoir à faire cela, mais je n'avais pas de meilleur moyen. Dans mon cas, je ne reçois pas de citations dans aucun domaine. J'avais également besoin d'utiliser le codage UTF-8 et; au lieu des onglets, c'est donc ce que j'ai fini de faire.
REMARQUE: en raison de la possibilité de mettre des guillemets doubles entourés de guillemets simples, etc., j’ai volontairement utilisé la "mise en forme au clavier" pour indiquer à la fois les frappes au clavier, les caractères littéraux et les chaînes.
J'ai rencontré ce problème plusieurs fois. Voici la solution la plus simple que j'ai trouvée.
Access vous permettra de spécifier le délimiteur d'exportation sous forme de virgule et de qualifier les champs de texte avec des guillemets. Dans l'assistant d'exportation, vous pouvez spécifier le délimiteur ou le caractère autour des chaînes souhaitées.
Vous devrez peut-être créer une requête Access pour organiser les champs dans un ordre particulier ou masquer le champ d'identification automatique ajouté par Access.
Aussi ... une fois exporté vers un fichier CSV, ne l'ouvrez PAS à nouveau dans Excel. Si vous voulez regarder les résultats, ouvrez-le dans le bloc-notes. Excel a tendance à jouer avec les données d’un csv ... Je pense que c’était des champs remplis de zéros si je me souviens bien.
Voici comment utiliser l'application OpenOffice pour créer une feuille de calcul Excel et créer un fichier texte (csv) avec des guillemets autour de chaque champ de texte.
Ouvrez le fichier Excel avec OpenOffice, puis procédez comme suit:
Fichier> Enregistrer sous
Donnez un nouveau nom au fichier que vous allez créer
Pour Filetype, choisissez "Test CSV (.csv)"
Activer la case à cocher "Modifier les paramètres de filtre"
cliquez sur "Enregistrer"
choisissez "Conserver le format actuel"
Le délimiteur de champ doit être une virgule:
Le délimiteur de texte doit comporter un guillemet: "
cochez la case "Citer toutes les cellules de texte"
cliquez sur OK"
Cela a fonctionné pour moi!