web-dev-qa-db-fra.com

L'enregistrement au format CSV dans Excel perd le format de date régional

J'ai un .xls je dois convertir en .csv

Le fichier contient des colonnes de date. Le format de la date est "* 14/03/2001", ce qui signifie selon Excel que la date répond aux paramètres régionaux de date et d’heure spécifiés pour le système d’exploitation.

Ouverture dans Excel, vous voyez:

20/01/2013
01/05/2013

Enregistrer sous ... CSV

Ouvrir dans le bloc-notes:

01/20/2013
05/01/2013

J'ai temporairement fixé le format de date sur "14/03/2001" (no *), mais certains autres formats personnalisés sans *, tels que "j/mm/aaaa h: mm" sont mutilés lors de la sauvegarde au format CSV.

4
upshake

Tout en gardant cela à l'esprit http://xkcd.com/1179/

En fin de compte, j'ai décidé d'utiliser le format YYYYMMDD dans tous les fichiers CSV, qui ne sont pas convertis à la date dans Excel, mais peuvent être lus correctement par toutes nos applications.

8
upshake

Vous pouvez enregistrer le format de date souhaité d'Excel au format .csv en suivant cette procédure. Espérons qu'un gourou d'Excel puisse préciser davantage et réduire le nombre d'étapes:

  1. Créez une nouvelle colonne DATE_TMP et définissez-la égale à la formule = TEXT (oldcolumn, "date-format-arg").

Par exemple, dans votre exemple, si vos dates étaient dans la colonne A, la valeur de la ligne 1 pour cette nouvelle colonne serait:

= TEXT (A1, "jj/mm/aaaa")

  1. Insérez une colonne vide DATE_NEW à côté de votre colonne de date existante.

  2. Collez le contenu de DATE_TMP dans DATE_NEW en utilisant l’option "coller en tant que valeur".

  3. Supprimez DATE_TMP et votre colonne de date existante, renommez DATE_NEW en votre ancienne colonne de date.

  4. Enregistrer sous csv.

8
deadcode

Modifiez les paramètres de date et d’heure de votre ordinateur au format "date courte" dans les paramètres de calendrier. Cela changera le format pour tout aaaa-mm-jj ou comme vous voulez qu'il soit affiché; mais rappelez-vous que cela ressemblera à cela, même pour les fichiers enregistrés sur votre ordinateur.

Au moins ça marche.

5
LaRae

Vous devez faire beaucoup plus de travail que 1. cliquer sur exporter 2. Ouvrir le fichier.

Je pense que lorsque la documentation CSV d'Excel parle du système d'exploitation et des paramètres régionaux en cours d'interprétation, cela signifie qu'Excel le fera lorsqu'il ouvrira le fichier (qui se trouve dans leur format "spécial" CSV). Voir cet article, "Le formatage et les fonctionnalités d'Excel ne sont pas transférés vers d'autres formats de fichier"

En outre, Excel enregistre actuellement un nombre et le convertit en chaîne de date uniquement pour l'affichage. Lorsqu'il exporte au format CSV, il le convertit en une chaîne de date différente. Si vous souhaitez que cette chaîne de date ne soit pas par défaut, vous devez convertir vos cellules Excel en chaînes avant d'exécuter votre exportation.

Vous pouvez également convertir vos dates en valeur numérique enregistrée par Excel. Comme il s’agit d’un code temporel, il obéira aux paramètres du système d’exploitation et des paramètres régionaux, à condition de l’importer correctement. Notepad ne vous montrera cependant que le numéro à 10 chiffres.

4
Seth Battin

Si vous utilisez un format personnalisé, plutôt que l'un des formats de date présélectionnés, l'exportation au format CSV conservera le format sélectionné. Sinon, il revient par défaut au format US

2
baldy

Placez une apostrophe devant la date et exportez-la dans le format correct. Je viens de le découvrir par moi-même, j'ai trouvé ce fil à la recherche d'une réponse.

1
Joe

Modifiez la plage de dates au format "Général" et enregistrez le classeur une fois, puis rétablissez-le au format de date (par exemple, numberformat = "d/m/yyyy") avant d'enregistrer et de fermer le classeur. Le paramètre savechanges est vrai.

0
Sam

Une solution peu évolutive que j’ai utilisée pour cela consiste à copier les données dans un éditeur de texte brut, à convertir les cellules en texte, puis à recopier les données dans la feuille de calcul.

0
aydow