Comparer des exports CSV par identifiant, sans confondre tri et modification
Rejouez un exemple de stock fictif : clé composée, ajouts, suppressions, cellules modifiées, doublons et rapport local complet en JSON ou texte.
En bref
Rapprochez les enregistrements par leur identifiant avant de comparer les valeurs. Dans le comparateur CSV par identifiant, une ligne déplacée n’est pas une modification. Une quantité différente l’est. Une clé présente uniquement dans le second export correspond à un ajout ; une clé présente uniquement dans le premier à une suppression.
Poser la bonne question
Deux exports de stock peuvent avoir été triés différemment. Un comparateur de lignes brutes risque alors de signaler de nombreux déplacements sans expliquer les changements réels. Ici, la question est : pour un même article dans un même entrepôt, quelles cellules diffèrent ? L’outil n’explique pas la cause du changement, ne prouve pas une vente et ne choisit pas l’export faisant autorité. Vérifiez vous-même les dates et le périmètre des extractions.
Un stock entièrement fictif
Les identifiants sont du texte : conservez 001 tel quel. Les en-têtes et noms d’entrepôt anglais sont gardés volontairement pour obtenir exactement le même rapport dans chaque version linguistique du guide.
Avant
sku,warehouse,quantity,note
001,North,10,"Blue, small"
002,North,5,Keep
003,South,2,RetireAprès
sku,warehouse,quantity,note
002,North,5,Keep
001,North,12,"Blue, small"
004,South,3,New
Reproduire le résultat exact
- Ouvrez le comparateur. Le bouton d’exemple fictif remplace les deux saisies et lance cet exemple. Pour le refaire manuellement, collez les blocs dans Avant et Après.
- Choisissez la virgule pour les deux fichiers. Dans
"Blue, small", la virgule appartient à la note grâce aux guillemets. - Lisez les colonnes, puis cochez
skuetwarehousecomme identifiant composé. - Comparez les lignes et ouvrez le détail de la ligne modifiée.
Le bilan attendu est exactement : 1 ajout, 1 suppression, 1 ligne modifiée, 1 ligne inchangée et 1 cellule modifiée. Chaque export contient trois lignes de données.
["004","South"]est ajouté, avec la quantité"3".["003","South"]disparaît ; sa quantité était"2".- Pour
["001","North"], seulequantitypasse de"10"à"12". ["002","North"]reste inchangé, même s’il remonte dans le fichier.
Pourquoi une clé composée ?
Dans ce petit exemple, sku seul est également unique. Ce n’est pas garanti dans un vrai stock réparti entre plusieurs entrepôts. Ajoutez 001,South,7,Other à la fin des deux extraits. Avec sku seul, le comparateur refuse le doublon. Avec sku et warehouse, il trouve deux lignes inchangées au lieu d’une ; les autres totaux restent identiques. La clé est un tuple de valeurs, pas une simple concaténation : un séparateur contenu dans une composante ne crée pas de fausse correspondance.
Les différences sont textuelles
Aucun espace n’est supprimé automatiquement ; la casse, les dates et les nombres ne sont pas normalisés. 001 diffère de 1, 10 de 10.0, une chaîne vide d’un espace. Chaque composante de clé doit être renseignée autrement que par des espaces et chaque clé complète doit être unique dans son export. Si l’identifiant change, le résultat est une suppression suivie d’un ajout : l’outil ne dispose pas d’une autre preuve d’identité.
Les deux exports doivent avoir exactement les mêmes noms d’en-tête, uniques et non vides. Ils peuvent changer d’ordre. Une colonne ajoutée ou renommée empêche la comparaison. Les champs manquants, les lignes entièrement vides et les guillemets mal formés sont refusés. Un retour final est accepté. Dans un champ entre guillemets, un guillemet littéral s’écrit en double et les retours à la ligne restent dans la cellule.
Lire et conserver le rapport
L’aperçu affiche au plus 100 lignes différentes et 500 cellules ; les valeurs longues sont raccourcies. Les téléchargements JSON et texte contiennent toutes les différences des entrées acceptées. Les guillemets et échappements JSON distinguent le texte vide, les tabulations et les retours à la ligne. L’en-tête est l’enregistrement 1 ; un retour dans un champ cité ne crée pas un nouvel enregistrement. Les libellés techniques des rapports restent en anglais pour être stables entre les langues.
Un fichier doit être en UTF-8 et ne pas dépasser 2 000 000 octets. Une saisie collée est limitée à 2 000 000 unités UTF-16. Chaque entrée accepte au plus 20 000 lignes de données, 200 colonnes et 250 000 cellules, en-têtes compris. Pas de détection d’encodage, de rapprochement approximatif ni de fusion de schémas : au besoin, préparez des exports plus petits et de même périmètre.
Le comparateur travaille en mémoire, sans requête réseau ni stockage de la saisie dans le navigateur. Le site charge néanmoins ses pages et ressources ; son analyse facultative peut fonctionner avec votre accord. Effacer retire la saisie et les résultats courants et annule une lecture en cours. Cela ne supprime ni les fichiers sources ni les rapports téléchargés, qui peuvent contenir des valeurs privées. Aucun rapport CSV n’est produit ; ne recopiez pas ensuite des données non fiables dans un tableur sans examiner le risque de formules.
Choisir la suite
L’explorateur CSV sert à examiner un seul export. Le comparateur de texte et JSON répond aux questions d’ordre des lignes ou de structure JSON. Revenez au comparateur par clé lorsque l’identité des enregistrements compte.