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

est-ce que quelqu'un sait s'il y a un jeton que je peux ajouter à mon csv pour un certain champ alors Excel n'essaie pas de le convertir à une date?

j'essaie d'écrire un .fichier csv de mon application et une des valeurs se trouve à ressembler assez à une date que Excel convertit automatiquement du texte à une 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.

432
demandé sur JimmyPena 2008-10-03 03:30:43

30 réponses

j'ai trouvé que mettre un '=' avant les guillemets doubles accomplir ce que vous voulez. Il oblige les données de texte.

par exemple. ="2008-10-03", = "plus de texte"

EDIT (according to other posts) : en raison du bug Excel 2007 noté par Jeffiekins il faut utiliser la solution proposée par Andrew : "=""2008-10-03"""

301
répondu Jarod Elliott 2017-05-23 11:33:26

je sais que c'est une vieille question, mais le problème ne va pas disparaître bientôt. Les fichiers CSV sont faciles à générer à partir de la plupart des langages de programmation, plutôt petits, lisibles par l'humain dans un crunch avec un éditeur de texte simple, et omniprésents.

le problème n'est pas seulement avec dates dans les champs de texte, mais n'importe quoi numérique obtient également converti du texte en nombres. Quelques exemples où cela est problématique:

  • codes postaux
  • numéros de téléphone
  • numéros d'identification du gouvernement

qui parfois peut commencent avec un ou plusieurs zéros (0), qui sont jetés lorsqu'ils sont convertis en numérique. Ou la valeur contient des caractères qui peuvent être confondus avec des opérateurs mathématiques (comme dans dates: /, -).

deux cas que je peux penser que le "ajoutant =" solution, comme mentionné précédemment, pourrait ne pas être idéal est

  • où le fichier peut être importé dans un programme autre que MS Excel (la fonction de fusion de courrier électronique de MS Word vient à l'esprit),
  • où la lisibilité humaine peut être importante.

Mon hack pour contourner ce

si un caractère pré / append un caractère non numérique et/ou non-date dans la valeur, la valeur sera reconnue comme texte et non convertie. Un caractère de non-impression serait bon car il ne modifiera pas la valeur affichée. Cependant, le caractère simple de l'ancien espace (\s, ASCII 32) ne fonctionne pas pour cela car il est coupé par Excel et ensuite la valeur est encore convertie. mais il y a plusieurs autres caractères d'impression et de non-impression qui fonctionneront bien. le plus facile est cependant à ajouter (ajouter après) le simple caractère de l'onglet (\t, ASCII 9).

les Avantages de cette approche:

  • disponible au clavier ou avec un code ASCII facile à retenir (9),
  • Ce n'est pas la peine de l'importation, de la
  • normalement ne dérange pas les résultats de la fusion de courrier (selon la disposition du modèle - mais normalement il ajoute juste un grand espace à la fin d'une ligne). (Si c'est toutefois un problème, regardez d'autres caractères, par exemple l'espace de largeur zéro (ZWSP, Unicode U+200B)
  • n'est pas un gros obstacle lorsque L'on regarde le CSV dans Notepad (etc),
  • et peut être supprimé par find/replace dans Excel (ou Notepad etc).
  • vous n'avez pas besoin de importer le CSV, mais peut simplement double-cliquer sur ouvrir le CSV dans Excel.

S'il y a une raison que vous ne vous voulez utiliser l'onglet, regarder dans une table Unicode pour autre chose convenable.

une autre option

pourrait être de générer des fichiers XML, pour lequel un certain format est également accepté pour l'importation par les nouvelles versions MS Excel, et qui permet beaucoup plus d'options similaires à .XLS format, mais je n'ai pas d'expérience avec ça.

il y a donc plusieurs options. En fonction de vos besoins/applications, on pourrait être meilleur qu'un autre.


Plus

il faut dire que les nouvelles versions (2013+) DE MS Excel n'ouvrent plus le CSV dans le format de tableur - un speedbump de plus dans son flux de travail rendant Excel moins utile... Au moins, il y a des instructions pour la contourner. Voir par exemple ce Stackoverflow: comment afficher correctement .les fichiers csv dans Excel 2013? .

113
répondu fr13d 2018-05-25 11:24:37

travaillant sur la solution de Jarod et la question soulevée par Jeffiekins, vous pouvez modifier

"May 16, 2011"

à

"=""May 16, 2011"""
95
répondu Andrew Ferk 2011-05-16 21:48:35

j'ai eu un problème similaire et c'est la solution qui m'a aidé sans avoir à éditer le contenu du fichier csv:

si vous avez la flexibilité de nommer le fichier autre chose que ".csv", vous pouvez lui donner un nom avec un ".txt" extension, telle que "Myfile.txt " ou " Myfile.csv.txt". Ensuite, lorsque vous l'ouvrez dans Excel (pas par glisser-déposer, mais en utilisant File - >Open ou la liste des fichiers les plus récemment utilisés), Excel vous fournira un "assistant D'importation de texte".

dans la première page de l'assistant, choisissez" délimité " pour le type de fichier.

dans la deuxième page de l'Assistant choisir", " comme le délimiteur et aussi choisir le qualificatif de texte si vous avez entouré vos valeurs par des guillemets

dans la troisième page, Sélectionnez chaque colonne individuellement et assignez à chaque colonne le type" Texte "au lieu de" général " pour empêcher Excel de toucher à vos données.

espérons que cela vous aide ou quelqu'un avec un similaire problème!

52
répondu rainerbit 2013-02-21 05:06:50

avertissement: Excel '07 (au moins) a un(autre) bug: s'il y a une virgule dans le contenu d'un champ, il ne parse pas le = "champ, Contenu" correctement, mais place plutôt tout après la virgule dans le champ suivant, indépendamment des guillemets.

le seul contournement que j'ai trouvé qui fonctionne est d'éliminer le = quand le contenu du champ inclut une virgule.

, Cela peut signifier qu'il y a certains domaines qui sont impossibles à représenter exactement "bon" dans Excel, mais maintenant je crois que personne n'est trop surpris.

27
répondu Jeffiekins 2010-12-10 19:58:59

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

"=\"" + myVariable + "\""
16
répondu Colin Pear 2014-04-21 13:09:04

Dans Excel 2010 ouvrir une nouvelle feuille. Sur le ruban de données, cliquez sur "Get External Data From Text". Sélectionnez votre fichier CSV puis cliquez sur"Ouvrir". Cliquez Sur "Suivant". Décocher "Tab", cochez" virgule", puis cliquez sur"Suivant". Cliquez n'importe où sur la première colonne. En maintenant la touche majuscules, faites glisser le curseur jusqu'à ce que vous puissiez cliquer dans la dernière colonne, puis relâchez la touche majuscules. Cliquez sur le bouton radio "text" puis cliquez sur "Finish "

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

15
répondu Rob Stockley 2014-02-06 21:15:58

est toujours un problème dans la version de Microsoft Office 2016, assez troublant pour ceux d'entre nous qui travaillent avec des noms de gènes tels que MARC1, MARCH1, SEPT1, etc. La solution que j'ai trouvée la plus pratique après avoir généré un ".csv "fichier en R, qui sera alors ouvert / partagé avec les utilisateurs Excel:

  1. ouvrir le fichier CSV sous forme de texte (Bloc-notes)
  2. Copiez - le (ctrl+a, ctrl+c).
  3. la Coller dans une nouvelle feuille excel -ça va coller une colonne en longues chaînes de texte.
  4. choisissez/sélectionnez cette colonne.
  5. Aller de Données "colonnes de Texte..."dans la fenêtre ouverte sélectionnez "délimité" (suivant). Vérifiez que "virgule" est marqué (marquage il montrera déjà la séparation des données aux colonnes ci-dessous) (suivant), dans cette fenêtre, vous pouvez choisir la colonne que vous voulez et marquer comme texte (au lieu de général) (terminer).

HTH

13
répondu Ana Maria Mendes-Pereira 2015-12-02 14:51:46

Voici la méthode simple que nous utilisons au travail ici lors de la génération du fichier csv en premier lieu, il ne change les valeurs un peu de sorte qu'il n'est pas adapté dans toutes les applications:

Ajouter un espace pour 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 des dates comme "01/10/1993" et booléens comme "TRUE", les empêchant d'être convertis en données internes d'excel type.

il arrête également les guillemets doubles étant zappé sur Lu, ainsi une manière infaillible de faire le texte dans un csv restent inchangés par excel même si un certain texte comme" 3.1415 "est de l'entourer avec des guillemets doubles et de préparer la chaîne entière avec un espace, i.e. (en utilisant des guillemets simples pour montrer ce que vous taperiez)' "3.1415"'. Puis dans excel vous avez toujours la chaîne originale, sauf qu'elle est entourée de guillemets doubles et préprogrammée par un espace de sorte que vous devez tenir compte de ceux dans n'importe quel formules etc.

9
répondu Dan 2013-01-28 18:31:46

(En Supposant Excel 2003...)

lorsque vous utilisez L'Assistant Texte-to-Columns, à l'Étape 3 vous pouvez dicter le type de données pour chacune des colonnes. Cliquez sur la colonne dans l'aperçu et changez la colonne "mauvais comportement" de "général" à " texte."

8
répondu DocMax 2008-10-02 23:34:08

c'est le seul moyen que je connaisse pour accomplir ceci sans toucher à l'intérieur du fichier lui-même. Comme D'habitude avec Excel, j'ai appris cela en frappant ma tête sur le bureau pendant des heures.

Change le .extension de fichier csv à .txt; cela empêchera Excel de convertir automatiquement le fichier lorsqu'il est ouvert. Voici comment je le fais: ouvrez Excel sur une feuille de travail vierge, fermez la feuille vierge, puis File => ouvrez et choisissez votre fichier avec le .extension txt. Cela oblige Excel à ouvrir le "texte" Importer Wizard" où il vous posera des questions sur la façon dont vous voulez qu'il interprète le fichier. D'abord, vous choisissez votre séparateur (virgule, tabulation, etc...), puis (voici la partie importante) vous choisissez un ensemble de colonnes de colonnes et sélectionnez le formatage. Si vous voulez exactement ce qu'il y a dans le fichier, choisissez "Text" et Excel affichera juste ce qu'il y a entre les délimiteurs.

8
répondu Chris 2015-03-04 05:06:53

(EXCEL 2007 et versions ultérieures)

comment forcer excel à ne pas "détecter" les formats de date sans éditer le fichier source

soit:

  • renommer le fichier .txt
  • si vous ne pouvez pas le faire, au lieu d'ouvrir le fichier CSV directement dans excel, créez un nouveau classeur puis allez à

    Data > Get external data > From Text

    et sélectionnez votre CSV.

dans tous les cas, vous recevrez des options d'importation, il vous suffit de sélectionner chaque colonne contenant des dates et de dire à excel de formater comme "texte"et non "général".

4
répondu Some_Guy 2015-09-17 09:39:27

ce n'est pas L'Excel. Windows reconnaît la formule,les données comme une date et autocorrects. Vous devez modifier les paramètres de Windows.

"Panneau de contrôle" (- >"passer à la vue classique") - > " régional et la langue "Options -> onglet "Options Régionales" -> "Personnaliser..."-> onglet "Nombres" -> Et puis changez les symboles selon ce que vous voulez.

http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

il fonctionnera sur votre ordinateur, si ces paramètres ne sont pas modifiés par exemple sur l'ordinateur de vos clients, ils verront des dates au lieu de données.

3
répondu syandras 2014-05-08 11:51:32

j'ai juste cette semaine rencontré cette convention, qui semble être une excellente approche, mais je ne trouve pas de référence nulle part. Est quiconque est familier avec elle? Pouvez-vous citer une source pour ça? Je n'ai pas cherché pendant des heures et des heures, mais j'espère que quelqu'un reconnaîtra cette approche.

exemple 1: =("012345678905") s'affiche comme 012345678905

exemple 2: =("1954-12-12") s'affiche comme 1954-12-12 , pas 12/12/1954 .

2
répondu GW4 2013-06-13 00:34:45

Salut j'ai le même problème,

j'écris ce vbscipt pour créer un autre fichier CSV. Le nouveau fichier CSV aura un espace dans la police de chaque champ, ainsi excel le comprendra comme texte.

donc vous créez un .VBS fichier avec le code ci-dessous (par exemple Modify_CSV.vbs), enregistrer et fermer. Glisser-Déposer votre fichier d'origine de votre fichier vbscript. Il va créer un nouveau fichier avec "SPACE_ADDED" pour le nom du fichier au même endroit.

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing
2
répondu Harry Duong 2014-08-27 17:47:33

sans modifier votre fichier csv vous pouvez:

  1. changez l'option des cellules format excel en "texte"
  2. puis en utilisant le" Text Import Wizard " pour définir les cellules csv.
  3. une fois importée supprimer cette donnée
  4. puis simplement coller comme texte simple

excel formatera correctement et séparera vos cellules csv comme le texte formaté en ignorant les formats de date automatique.

est un peu stupide, mais c'est mieux que de modifier les données csv avant d'importer. Andy Baird et Richard ont en quelque sorte échappé à cette méthode, mais ont raté quelques étapes importantes.

2
répondu cliffclof 2015-03-30 19:00:02

ce que j'ai fait pour ce même problème était d'ajouter ce qui suit avant chaque valeur csv: "=""" et un double devis après chaque valeur CSV, avant d'ouvrir le fichier dans Excel. Prenons par exemple les valeurs suivantes:

012345,00198475

ceux-ci doivent être modifiés avant de s'ouvrir dans Excel à:

"="""012345","="""00198475"

après avoir fait ceci, chaque valeur de cellule apparaît comme une formule dans Excel et ne sera donc pas formatée comme un nombre, date, etc. Par exemple, une valeur du 012345 apparaît comme:

="012345"
2
répondu ChrisB 2015-12-08 01:12:13

aucune des solutions proposées ici n'est une bonne solution. Il peut fonctionner pour des cas individuels, mais seulement si vous êtes en contrôle de l'affichage final. Prenez mon exemple: mon travail produit une liste de produits qu'ils vendent au détail. Il s'agit d'un format CSV qui contient des codes partiels, certains d'entre eux commençant par zéro, définis par les fabricants (qui ne sont pas sous notre contrôle). Enlevez les zéros de tête et vous pouvez réellement correspondre à un autre produit. Les clients de détail veulent la liste en format CSV en raison de back-end les programmes de traitement, qui sont également hors de notre contrôle et différents par client, de sorte que nous ne pouvons pas changer le format des fichiers CSV. Pas de préfixe'=', ni ajouté des onglets. Les données dans les fichiers CSV bruts sont correctes; c'est lorsque les clients ouvrent ces fichiers dans Excel que les problèmes commencent. Et beaucoup de clients n'ont pas vraiment le sens de l'informatique. Ils peuvent juste ouvrir et sauver une pièce jointe d'email. Nous envisageons de fournir les données dans deux formats légèrement différents: L'un comme Excel Friendly (En utilisant les options suggéré ci-dessus en ajoutant un onglet, l'autre comme le "maître". Mais cela peut être un vœu pieux car certains clients ne comprendront pas pourquoi nous devons faire cela. Entre-temps, nous continuons d'expliquer pourquoi ils voient parfois des données "erronées" dans leurs feuilles de calcul. Jusqu'à ce que Microsoft fasse une modification appropriée, Je ne vois pas de résolution appropriée à cela, tant qu'on n'a pas de contrôle sur la façon dont les utilisateurs finaux utilisent les fichiers.

2
répondu mljm 2017-11-30 10:59:29

je sais que c'est un vieux fil. Pour ceux comme moi, qui ont encore ce problème en utilisant office 2013 via powershell COM object peut utiliser la méthode opentext . Le problème est que cette méthode a de nombreux arguments, qui sont parfois mutuellement exclusifs. Pour résoudre ce problème, vous pouvez utiliser la méthode invoke-namedparameter introduite dans this post . Un exemple serait

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

malheureusement je viens de découvrir que cette méthode brise d'une façon ou d'une autre le CSV parsing lorsque les cellules contiennent linebreaks. Ceci est supporté par csv mais l'implémentation de microsofts semble être sur écoute. En outre, il n'a en quelque sorte pas détecté de chars allemands spécifiques. Lui donner la culture correcte n'a pas changé ce comportement. Tous les fichiers (csv et script) sont enregistrés avec l'encodage utf8. J'ai d'abord écrit le code suivant pour insérer la cellule csv par cellule.

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

, Mais c'est extrêmement lent, ce qui est pourquoi j'ai cherché un alternative. Appearently Excel vous permet de définir les valeurs d'une plage de cellules avec une matrice. Donc j'ai utilisé l'algorithme dans ce blog pour transformer le csv en multiarray.

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

vous pouvez utiliser le code ci-dessus comme il devrait convertir n'importe quel csvs en excel. Il suffit de changer le chemin vers le csv et le caractère délimiteur en bas.

1
répondu flatbeat 2017-05-23 12:34:59

coller la table dans le mot. Faites une recherche / remplacez et changez tout - (tirets) en -- (double tiret). Copier et coller dans Excel. Peut faire la même chose pour d'autres symboles (/), etc. Si vous devez revenir à un tiret une fois dans Excel, formatez simplement la colonne en texte, puis faites le changement. Espérons que cette aide.

1
répondu Guest 2015-10-24 19:46:00

dans mon cas," Sept8 "dans un fichier csv généré en utilisant R a été converti en" 8-Sept " par Excel 2013. Le problème a été résolu en utilisant l'écriture.xlsx2 () fonction dans le paquet xlsx pour générer le fichier de sortie au format xlsx, qui peut être chargé par Excel sans conversion non désirée. Donc, si on vous donne un fichier csv, vous pouvez essayer de le charger en R et de le convertir en xlsx en utilisant l'écriture.fonction xlsx2 ().

1
répondu Dinghai Zheng 2016-02-29 02:43:30

je fais cela pour les numéros de carte de crédit qui continuent à convertir en notation scientifique: je finis par importer mon .csv dans Google Sheets. Les options d'importation permettent maintenant de désactiver le formatage automatique des valeurs numériques. Je mets toutes les colonnes sensibles au texte simple et télécharge sous xlsx.

c'est un flux de travail terrible, mais au moins mes valeurs sont laissées comme elles devraient être.

1
répondu Brendonwbrown 2016-08-16 20:09:22

une solution de contournement en utilisant Google Drive (ou des numéros si vous êtes sur un Mac):

  1. ouvrir les données dans Excel
  2. définir le format de la colonne avec des données incorrectes au Texte (Format > Cellules > Nombre > texte)
  3. chargez le .csv dans Google Drive, et l'ouvrir avec Google Sheets
  4. copiez la colonne offensante
  5. coller la colonne dans Excel comme texte (éditer > coller spécial > texte)

alternativement si vous êtes sur un Mac pour l'étape 3, vous pouvez ouvrir les données en nombres.

1
répondu Derek Hill 2017-12-19 22:08:55

(EXCEL 2016 et plus tard, en fait je n'ai pas essayé dans les versions plus anciennes)

  1. ouvrir une nouvelle page blanche
  2. allez à l'onglet "Données"
  3. cliquez sur "From Text / CSV" et choisissez votre fichier csv
  4. Vérifier dans l'aperçu si vos données sont correctes.
  5. dans le cas où une colonne est convertie en date, cliquez sur "Modifier" et sélectionnez ensuite le type de texte en cliquant sur calendrier dans la tête de la colonne
  6. Cliquez Sur "Fermer Et Charger"
1
répondu Roman Yakoviv 2018-06-27 09:45:43

2018

la seule solution appropriée qui a fonctionné pour moi (et aussi sans modifier le CSV).

Excel 2010:

  1. Créer un nouveau classeur
  2. données > à partir de texte > Sélectionnez votre fichier CSV
  3. dans le popup, choisissez "délimité" bouton radio, puis cliquez sur "Suivant > "
  4. cases à cocher délimiteurs: cochez uniquement "Virgule" et décochez les autres options, puis cliquez sur "Suivant >"
  5. dans la" prévisualisation des données", faites défiler vers l'extrême droite, puis maintenez shift et cliquez sur la dernière colonne (cela sélectionnera toutes les colonnes). Maintenant dans le" format de données de colonne " sélectionnez le bouton radio "texte", puis cliquez sur "Terminer".

Excel office365: (version client)

  1. Créer un nouveau classeur
  2. Données > de texte / CSV > Sélectionnez votre fichier CSV
  3. détection de type de données > ne pas détecter

Note: Excel office365 (web version), au moment où j'écris ceci, vous ne pourrez pas le faire.

1
répondu evilReiko 2018-08-29 11:26:55

Si vous mettez une virgule inversée au début du champ, il sera interprété comme du texte.

exemple: 25/12/2008 devient '25/12/2008

vous pouvez également sélectionner le type de champ lors de l'importation.

0
répondu Harley Holcombe 2008-10-02 23:38:54

OK trouvé un moyen simple de le faire dans Excel 2003 à 2007. Ouvrez un classeur XLS vierge. Puis allez dans le menu Données, importez des données externes. Sélectionnez votre fichier csv. Passer par l'assistant, puis dans la colonne "format des données", sélectionnez la colonne qui doit être forcée à "texte". Ceci importera cette colonne entière comme un format de texte empêchant Excel d'essayer de traiter des cellules spécifiques comme une date.

0
répondu Richard 2014-05-06 01:14:02

préfixe espace entre guillemets résolu la question!!

j'avais de données comme "7/8" dans une de la .fichier csv colonnes et MS-Excel a été la conversion à la date de "07-Août". Mais avec "LibreOffice Calc" il n'y avait pas de problème.

pour résoudre cela, je viens de préfixer l'espace caractère(ajouté l'espace avant 7) comme " 7/8 et il a fonctionné pour moi. Ceci est testé pour Excel-2007.

0
répondu NitinBirari 2014-10-21 15:19:51

ce problème est toujours présent dans Mac Office 2011 et Office 2013, Je ne peux pas l'empêcher de se produire. Il semble fondamental de chose.

dans mon cas, j'avais des valeurs telles que "1 - 2" & "7 - 12" dans le CSV enfermé correctement dans des virgules inversées, cela convertit automatiquement à une date dans excel, si vous essayez par la suite de le convertir en texte simple, vous obtiendriez une représentation de nombre de la date telle que 43768. En outre, il reformate de grands nombres trouvés dans codes à barres et numéros EAN à 123E + numéros à nouveau qui ne peuvent pas être convertis en arrière.

j'ai trouvé que Google Sheets de Google Drive ne convertit pas les nombres en dates. Les codes à barres ont des virgules tous les 3 caractères, mais celles-ci sont facilement enlevées. Il gère très bien CSVs en particulier quand il s'agit de MAC / Windows CSVs.

pourrait sauver quelqu'un.

0
répondu EricNo7 2015-05-21 10:45:48

SOLUTION LA PLUS FACILE J'ai juste pensé que c'aujourd'hui.

  • Ouvrir dans Word 151940920"
  • remplacer tous les tirets par les tirets en
  • enregistrer et fermer
  • Ouvrir dans Excel

une fois que vous avez terminé l'édition, vous pouvez toujours l'ouvrir à nouveau dans Word pour remplacer les tirets en par des tirets à nouveau.

0
répondu Randy Hoffman 2015-08-12 15:10:26