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.

  • Comment faire pour que Excel interprète la virgule comme un délimiteur par défaut dans les fichiers CSV?
  • Comment réorganiser les feuilles dans un ordre spécifique, puis par ordre alphabétique?
  • Comment lier une référence de cellule à feuille
  • Excel remplit automatiquement une colonne avec incrément
  • Formule Excel pour calculer la durée du temps en fonction d'une chaîne de texte de 9 h à 12 h 30
  • Utiliser le nom de la feuille de calcul en tant que variable dans une recherche
  • Empêche Excel d'effacer les données copiées pour coller, après certaines opérations, sans Presse-papiers Office
  • Générer une liste séparée par des virgules de contenu cellulaire, à l'exclusion des blancs
  • Fonction indirecte pour les noms de feuille de calcul dans Excel?
  • Excel grande fonction avec des doublons
  • Référence dynamique d'une colonne de table nommée (via un contenu de cellule) dans Excel
  • Soyons le génie de l'ordinateur et du réseau.