Comment éviter les guillemets doubles lors de l'enregistrement d'un fichier Excel en Unicode?

9

J'ai un fichier Excel au contenu Unicode dont certaines cellules contiennent du texte entre guillemets doubles, par exemple "text".

Lorsque j'enregistre le fichier Excel dans un fichier texte au format Unicode, le texte qui contient le guillemet double est enregistré sous la forme de trois guillemets doubles, par exemple """text""".

Il y a des endroits où j'ai même du texte qui contient une virgule (,). Par exemple, text,qui est converti en "text,"fichier Unicode. Il ajoute des guillemets doubles au texte, qui, je suppose, contient des caractères spéciaux.

Comment puis-je éviter ça?

karthik
la source

Réponses:

7

Il s'agit d'un comportement standard (et similaire à la façon dont les fichiers CSV sont enregistrés). Voir la RFC 4180 - Format commun et type MIME pour les fichiers de valeurs séparées par des virgules (CSV) :

Si des guillemets doubles sont utilisés pour entourer des champs, un guillemet double apparaissant à l'intérieur d'un champ doit être échappé en le précédant d'un autre guillemet double.

Comment cela s'applique-t-il à votre cas?

  • Cela signifie que "Text" doit être enregistré sous """Text""", les guillemets externes délimitant le champ et les deux autres guillemets sont utilisés pour échapper aux guillemets réels que vous avez utilisés pour votre champ de texte. Sinon, "Text"serait simplement analysé Textet vous perdriez vos devis lors de la réouverture du fichier.

  • Excel choisit également de citer Text,, car la virgule est utilisée comme délimiteur dans les fichiers séparés par des virgules, et ne pas la placer entre guillemets signifierait que l' text,analyse est effectuée en deux champs lorsque vous rouvrez le fichier.

Si vous ne les voulez pas dans votre sortie, pensez à ouvrir les fichiers résultants dans un éditeur de texte et à supprimer toutes les citations avec une simple recherche et remplacement.

slhck
la source
2
Vous voulez dire qu'il n'y a pas d'autre moyen de résoudre le problème que de les remplacer dans l'éditeur de texte.
karthik
Pas vraiment, car Excel doit le faire pour des raisons de compatibilité. Peut-être qu'il serait possible de proposer une macro qui effectue une exportation personnalisée, mais je ne suis pas un expert en la matière.
slhck
Ok merci peut-être que j'essaierai de le remplacer du côté du codage.
karthik
@slhck: Je rencontre un problème lors de l'enregistrement d'Unicode au
format
3

J'ai eu ce problème également. Ensuite, j'ai remarqué que je négligeais l' option Enregistrer sous type: " Texte formaté (espace délimité) ". Vous aussi devez préciser le. l' extension txt , ou il sera par défaut avec une extension .prn. Par exemple, filename.txt au lieu de simplement filename. Essayez-le . Ça marche .

Jeff Byington
la source
Sera délimité par des espaces plutôt que par des tabulations, et les colonnes semblent être limitées en largeur à environ 8 caractères par défaut.
JosiahYoder-deactive sauf ..
Cela ne fonctionne pas si les cellules contiennent quelque chose comme "A short sentence". La réponse de Pete ci-dessous est la seule qui a fonctionné pour moi.
Micah Lindström
2

L'enregistrement dans Unicode semblait ajouter des guillemets même s'il n'y avait pas de guillemets dans ma chaîne. Voici comment je l'ai contourné:

  1. Trouvez une chaîne qui n'est pas dans votre fichier (j'ai utilisé xxx).
  2. Avant d'exporter, recherchez et remplacez tous les guillemets doubles "parxxx
  3. Exportez votre fichier vers txt ou csv.
  4. Ouvrez les fichiers txt et recherchez et remplacez toutes les citations sans rien
  5. Rechercher et remplacer tout xxxpar des devis
Pete
la source
Remarque, n'utilisez replacementpas 'replacement'. Remplacer les guillemets doubles par quelque chose incluant un guillemet simple provoque des problèmes s'il se trouve au début d'une cellule. Fondamentalement, Excel voit une citation unique au début d'une cellule, ce qui signifie l'interpréter comme du texte, elle est donc supprimée lorsque vous exportez vers txt / csv. J'ai découvert ça à la dure lol.
Micah Lindström
0

Enregistrez simplement votre fichier en tant qu'espace délimité.prn dans Excel, puis renommez-le en .txt. Je l'ai utilisé pour une crise de 18 000 lignes. ;)

Salar Lotfee
la source