La vraie différence entre Excel CSV et CSV standard

Quelle est la vraie différence entre un Excel CSV et un CSV standard?

Par exemple, lorsque vous manipulez des colonnes avec des pauses de ligne dans une cellule, comment la codent-elles différemment?

2 Solutions collect form web for “La vraie différence entre Excel CSV et CSV standard”

Cela dépend absolument de ce que vous définissez comme CSV "standard". En ce qui me concerne, Excel suit les règles décrites dans RFC 4180 , le "Format commun et le type MIME pour les fichiers CSV".

Considérons un tableau où la première cellule de la première rangée comporte deux pauses de ligne. Dans Excel, il ressemblerait à ce qui suit:

+---+---------------+------------+------------+ | | A | B | C | +---+---------------+------------+------------+ | 1 | col1, line1a | | | | | col1, line1b | | | | | col1, line1c | col2, row1 | col3, row1 | | 2 | col1, row2 | col2, row2 | col3, row2 | +---+---------------+------------+------------+ 

Maintenant, comment Excel exporterait-il? Voyons – un éditeur de texte afficherait ceci:

 "col1, line1a col1, line1b col1, line1c","col2, row1","col3, row1" "col1, row2","col2, row2","col3, row2" 

Pas très sophistiqué. Il insère un retour de chariot (hex 0D ) où la rupture de ligne était dans notre cellule. Chaque cellule est entourée de guillemets doubles. En outre, les lignes réelles sont séparées par un retour de chariot.

Pour analyser cela correctement, un analyseur CSV devrait

  • Ignorez le retour de chariot quand il apparaît entre guillemets doubles (c.-à-d. Une cellule)
  • Ne pas ignorer ce retour de chariot quand il apparaît en dehors des guillemets

Si cela ne l'a pas fait, vous finiriez par quelque chose comme cela: notez qu'il y a maintenant quatre lignes au lieu de deux, car il n'a pas réussi à ignorer les sauts de ligne.

 +---+---------------+------------+------------+ | | A | B | C | +---+---------------+------------+------------+ | 1 | "col1, line1a | | | | 2 | col1, line1b | | | | 3 | col1, line1c" | col2, row1 | col3, row1 | | 4 | col1, row2 | col2, row2 | col3, row2 | +---+---------------+------------+------------+ 

Mais, voyons ce que la RFC dit, peut-être Excel a-t-il bien fait?

Les champs contenant des sauts de ligne (CRLF), les guillemets et les virgules devraient être placés sous double guillemets.

Assez, c'est exactement ce que Excel a fait. Résumant donc, Excel semble suivre les recommandations d'un fichier CSV "standard". Compte tenu d'un analyseur CSV approprié, il devrait également pouvoir lire les fichiers Excel CSV.

Ma compréhension de la mise en œuvre originale de csv était que tous les champs de texte étaient inclus entre guillemets et les chiffres n'avaient pas besoin d'être. Excel ne le fait pas et si vous essayez de télécharger vos fichiers csv générés Excel sur des plates-formes non-Microsoft, ils échouent. Il s'agit d'une approche microsoft standard, ignore l'interopérabilité et se concentre sur suivre aveuglément les règles. Une chose similaire s'est produite avec IE, ils ont suivi les règles html / css correctement pour les attributs de rembourrage et de marge et ont ignoré le fait que chaque page Web et navigateur Web existants les traitaient différemment. Le résultat, presque toutes les pages Web ont maintenant des règles spéciales pour IE. Je trouve que les fichiers csv produits par Excel sont inutiles et utilisent une colonne de "concaténation" pour les créer manuellement correctement.

  • Besoin de la date d'aujourd'hui pour remplir automatiquement une cellule lorsque les données sont entrées dans une autre cellule
  • Comment puis-je implémenter la liste de validation des données dépendantes dynamiques dans Excel
  • Excel: formule portable pour référencer les données sur la feuille de travail précédente (relative)
  • Calculer la différence de temps entre deux dates / fois de deux colonnes dans Excel
  • Excel 2010: cellules couleur dans une colonne basée sur des valeurs dans une autre colonne
  • L'enregistrement d'un fichier dans un type CSV dans Excel supprime toujours la nomenclature
  • Transformez une ligne en plusieurs lignes dans Excel
  • Quelles sont les métadonnées "sep =" que vous pouvez ajouter aux CSV?
  • Les dates ne sont pas reconnues comme dates dans le tableau pivot tirant directement de SQL Server
  • Besoin d'aide sur une formule pour laisser la cellule vide
  • Une «vue personnalisée» peut-elle être stockée dans un modèle par défaut personnalisé et donc être mise à la disposition de tous les classeurs Excel, neufs et anciens?
  • Soyons le génie de l'ordinateur et du réseau.