Script de fusion de tableauxDéveloppement et personnalisation

Un script Python qui fusionne de nombreux fichiers CSV et Excel en un seul tableau, colonnes alignées

Généralement prêt en 15 minutesRetouches inclusesContrôle qualité
Formules
Paiement protégéEn savoir plus
  • Les retouches prévues par la formule sont gratuites.
  • Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.

L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Un script Python qui fusionne de nombreux fichiers CSV et Excel en un seul tableau, colonnes alignées

Exemple de résultat

Exemple pour la formule Standard

Fusion des fichiers de ventes mensuels de 9 boutiques en un seul rapport Excel

Comment on le lance

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Dossier : sales/2026-10, 9 fichiers trouvés
2026-11-02 09:14:03 INFO  shop-01.csv : 1 284 lignes
2026-11-02 09:14:04 INFO  shop-02.xlsx : 967 lignes
2026-11-02 09:14:04 WARN  shop-07.csv : 3 lignes sans prix ignorées (lignes 88, 412, 913)
2026-11-02 09:14:05 INFO  Terminé : 10 412 lignes -> report-2026-10.xlsx (feuilles « Ventes » et « Totaux »)

Des paramètres, pas du code

Les noms de colonnes de chaque boutique se trouvent dans settings.ini : une nouvelle boutique ou une colonne renommée, c’est une ligne à modifier :

[columns]
date = Date, Date de vente, Jour
product = Produit, Article, Désignation
quantity = Qté, Quantité, Pièces
price = Prix, Prix unitaire

Un extrait du code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lit le fichier d’une boutique et lui donne les noms de colonnes du rapport."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name} : aucune colonne pour '{name}' (recherché : {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Fichiers : une archive ZIP avec merge_sales.py (310 lignes), settings.ini, requirements.txt et un README qui explique comment installer Python, lancer le script et ce que signifie chaque message du journal. Le client le lance sur son propre ordinateur.

Client : une petite chaîne de 9 papeteries ; chaque boutique envoie ses ventes du mois en fichier CSV ou Excel, avec des noms de colonnes légèrement différents. Tâche : un seul script qui lit chaque fichier d’un dossier, met les colonnes au même format et écrit un rapport Excel unique avec toutes les ventes et une feuille de totaux par boutique.

Le client et tous les détails sont fictifs.

À propos de ce service

Exports mensuels, rapports d’agences, fichiers de plusieurs fournisseurs : quand les mêmes données arrivent dans des dizaines de fichiers CSV et Excel, les recopier à la main dans un seul tableau est long et source d’erreurs. Ce script Python lit chaque fichier du dossier indiqué, y compris plusieurs feuilles d’un même classeur, aligne les colonnes par nom, ajoute une colonne avec le fichier d’origine et enregistre un seul fichier CSV ou Excel. Dès Standard, il gère les colonnes nommées différemment selon les fichiers et tient un journal des lignes qu’il n’a pas pu lire. Envoyez-nous deux ou trois fichiers d’exemple de quelques lignes chacun. Vous le lancez vous-même sur votre ordinateur. Excel contient au maximum 1 048 576 lignes par feuille : un résultat plus grand est enregistré en CSV.

Ce qui est inclus

  • Ce que vous recevezUne archive ZIP avec le script Python, un README avec des instructions pas à pas et, dès Standard, un fichier de paramètres avec votre dossier et vos noms de colonnes ; le code est aussi affiché sur la page de la commande.
  • CSV et Excel ensembleDes fichiers des deux types dans un dossier, plusieurs feuilles par classeur
  • Colonnes alignéesPar nom, même quand l’ordre diffère d’un fichier à l’autre
  • Colonne d’origineChaque ligne indique de quel fichier elle vient
  • Encodages et séparateursVirgules ou points-virgules, UTF-8 ou anciens encodages Windows
  • Code lisibleAvec des commentaires, pour ajouter facilement une colonne plus tard

Comment ça marche

  1. 1
    ExemplesVous envoyez deux ou trois fichiers d’exemple et décrivez le résultat attendu
  2. 2
    CodeNous écrivons le script et le guide pour le lancer
  3. 3
    Testez-leVous le lancez sur une copie de votre dossier et vérifiez les totaux
  4. 4
    RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur

Ce dont nous avons besoin

Deux ou trois des fichiers à fusionner, réduits à quelques lignes (modifiez les vrais noms ou montants si vous le souhaitez), le nombre approximatif de fichiers et leur taille, et le résultat attendu : CSV ou Excel, quelles colonnes dans quel ordre, et si les lignes en double doivent rester. Si les fichiers diffèrent (autres noms de colonnes, lignes d’en-tête en plus), un exemple de chaque type. Votre système : Windows, macOS ou Linux.

Nous vous demanderons :

  • Quels fichiers fusionnez-vous ?
  • À quoi doit ressembler le résultat ?
  • Les fichiers diffèrent-ils ?
  • Où va-t-il tourner ?

Comparer les formules

FormulesEssentielFusion d’un seul type de fichier15 €StandardFusion avec paramètres30 €PremiumOutil de fusion60 €
Délai1 jour2 jours3 jours
Retouches123
Codejusqu’à 150 lignesjusqu’à 400 lignesjusqu’à 1 000 lignes
Fichiers de code1jusqu’à 3jusqu’à 8
Fichier de paramètresNonOuiOui
Messages d’erreur clairs et journalNonOuiOui
Options de lancement et guide pour l’exécution planifiéeNonNonOui
Guide d’installation et d’utilisation (README)OuiOuiOui
LangagePythonPythonPython
Commander EssentielCommander StandardCommander Premium

Paiement protégé

Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.

  • Prix fixeLe prix de la formule ne change pas après le paiement.
  • L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
  • Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
  • Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
  • Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
  • Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Comment ça marche →

Questions et réponses

Et si les fichiers n’ont pas les mêmes colonnes ?

Dès Standard, vous indiquez dans le fichier de paramètres quels noms désignent la même colonne, par exemple Prix, Coût et Montant. Les colonnes présentes dans certains fichiers seulement sont conservées, avec des cellules vides dans les autres lignes.

Conserve-t-il les formules et la mise en forme ?

Non. Il fusionne les valeurs : ce que vous voyez dans les cellules. Couleurs, cellules fusionnées et formules ne sont pas reprises.

Combien de fichiers peut-il traiter ?

Des centaines de fichiers ne posent pas de problème sur un ordinateur ordinaire. La limite, c’est le résultat : au-delà de 1 048 576 lignes, il ne tient pas sur une feuille Excel et est donc enregistré en CSV.

Dois-je vous envoyer mes vrais fichiers ?

Non. Quelques lignes de chaque type de fichier suffisent, et vous pouvez remplacer les noms et montants par des données fictives. Le script tourne ensuite sur vos vrais fichiers, sur votre ordinateur.

Vous n’avez pas trouvé la réponse ?

Formules