615 votes

Empêcher Excel de convertir automatiquement certaines valeurs de texte en dates

Est-ce que quelqu'un sait s'il existe un jeton que je peux ajouter à mon csv pour un certain champ afin qu'Excel n'essaie pas de le convertir en date ?

J'essaie d'écrire un fichier .csv à partir de mon application et l'une des valeurs ressemble suffisamment à une date pour qu'Excel la convertisse automatiquement de texte en date. J'ai essayé de mettre tous mes champs de texte (y compris celui qui ressemble à une date) entre guillemets, mais cela n'a aucun effet.

26voto

Colin Pear Points 1033

En créant la chaîne à écrire dans mon fichier CSV en C#, j'ai dû la formater de cette façon :

"=\"" + myVariable + "\""

17voto

Rob Stockley Points 21

Dans Excel 2010, ouvrez une nouvelle feuille. Sur le ruban Données, cliquez sur "Obtenir des données externes à partir du texte". Sélectionnez votre fichier CSV et cliquez sur "Ouvrir". Cliquez sur "Suivant". Décochez la case "Tabulation", cochez la case "Virgule", puis cliquez sur "Suivant". Cliquez n'importe où sur la première colonne. Tout en maintenant la touche "shift", faites glisser le curseur jusqu'à ce que vous puissiez cliquer dans la dernière colonne, puis relâchez la touche "shift". Cliquez sur le bouton radio "texte", puis cliquez sur "Terminer".

Toutes les colonnes seront importées sous forme de texte, comme elles l'étaient dans le fichier CSV.

11voto

Dan Points 51

Voici la méthode simple que nous utilisons ici au travail pour générer le fichier csv en premier lieu, elle modifie un peu les valeurs et ne convient donc pas à toutes les applications :

Faire précéder d'un espace toutes les valeurs dans le csv

Cet espace sera enlevé par Excel des nombres tels que " 1 ", " 2.3 " et " -2.9e4 " mais restera sur les dates telles que " 01/10/1993 " et les booléens tels que " TRUE ", les empêchant d'être convertis dans les types de données internes d'Excel.

Cela empêche également les guillemets doubles d'être supprimés à la lecture, donc une façon infaillible de faire en sorte que le texte dans un csv reste inchangé par Excel MÊME SI c'est du texte comme "3.1415" est de l'entourer de guillemets doubles ET de faire précéder la chaîne entière d'un espace, c'est-à-dire (en utilisant des guillemets simples pour montrer ce que vous taperiez) ' "3.1415"'. Ensuite, dans Excel, vous avez toujours la chaîne de caractères d'origine, sauf qu'elle est entourée de guillemets doubles et précédée d'un espace. Vous devez donc en tenir compte dans toutes les formules, etc.

8voto

DocMax Points 5744

(En supposant qu'Excel 2003...)

Lorsque vous utilisez l'assistant de conversion de texte en colonnes, vous pouvez, à l'étape 3, déterminer le type de données pour chacune des colonnes. Cliquez sur la colonne dans l'aperçu et changez la colonne fautive de "Général" à "Texte".

8voto

Chris Points 399

C'est la seule façon que je connaisse d'y parvenir sans toucher au fichier lui-même. Comme toujours avec Excel, j'ai appris cela en me frappant la tête sur le bureau pendant des heures.

Changez l'extension du fichier .csv en .txt, cela empêchera Excel de convertir automatiquement le fichier lorsqu'il est ouvert. Voici comment je procède : ouvrez Excel sur une feuille de calcul vierge, fermez la feuille vierge, puis Fichier => Ouvrir et choisissez votre fichier avec l'extension .txt. Cela oblige Excel à ouvrir l'"Assistant d'importation de texte" où il vous posera des questions sur la façon dont vous voulez qu'il interprète le fichier. Vous choisissez d'abord votre délimiteur (virgule, tabulation, etc...), puis (voici la partie importante) vous choisissez un ensemble de colonnes et sélectionnez le formatage. Si vous voulez savoir exactement ce que contient le fichier, choisissez "Texte" et Excel affichera uniquement ce qui se trouve entre les délimiteurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X