Key takeaways
- Two free, open-source Python tools cover the full workflow: merge, then report.
- Step 1 – Merge: combine many CSV/Excel files (even with different columns) into one.
- Step 2 – Report: add a styled header, live totals, conditional formatting, and a chart.
- The whole pipeline is two commands — repeatable every week or month.
- Both tools are MIT-licensed and work without Excel installed.
You can automate the entire "many messy files to one polished report" workflow with two free tools: Excel/CSV Merger combines a folder of files into one clean dataset, then Excel Report Generator turns that dataset into a formatted report. Together they replace an afternoon of copy-pasting and manual formatting with two commands you can run any time the data changes.
The problem: raw files in, polished report out
A huge share of spreadsheet work is the same shape. Data arrives split across many files — monthly exports, per-branch reports, form downloads — and someone needs to combine them and then make the result presentable. Done by hand, that's two slow chores stacked on top of each other: stitching files together, then formatting the combined sheet.
Splitting the job into two small, single-purpose tools makes each step reliable and repeatable. Here's how they fit together.
The two tools at a glance
| Tool | Job | Key features |
|---|---|---|
| Excel/CSV Merger | Combine a folder of files into one clean dataset | Aligns mismatched columns, tags each row's source file, removes duplicates |
| Excel Report Generator | Turn a dataset into a formatted report | Styled header, live SUM totals, conditional formatting, bar chart |
Excel/CSV Merger on GitHub Excel Report Generator on GitHub
The end-to-end workflow — step by step
-
Drop your files in one folder. Put every monthly export (CSV or Excel) into a
single folder, e.g.
./monthly_exports. -
Merge them into one file. Combine everything, remove duplicate rows, and output a
single CSV:
python merge_excel.py ./monthly_exports -o combined.csv --dedupe -
Generate the formatted report. Feed the combined file into the report tool:
python make_report.py combined.csv -o annual_report.xlsx --chart amount --title "Annual Sales Report" -
Open
annual_report.xlsx. You now have a styled, chart-ready report built from every file in the folder — with a live totals row and highlighted values.
.bat
(Windows) or .sh (Mac/Linux) script. Next month, drop in the new files and double-click —
the merged report regenerates itself.
Real use cases for the combined workflow
- Annual sales roll-up: merge 12 monthly exports, then produce one formatted year-end report with totals and a chart.
- Multi-branch or multi-region reporting: combine each location's file (the
source_filetag keeps track of which is which), then report on the whole. - Marketing across platforms: merge exports from different ad platforms into one dataset, then format a single performance report.
- Finance consolidation: stitch together transaction exports, then flag negatives and large amounts automatically in the report.
- Recurring client deliverables: turn a folder of raw data into a polished, branded workbook on a repeatable schedule.
Why two tools instead of one?
Each tool does one job well, which makes the workflow flexible. Some weeks you only need to merge files; other times you already have one dataset and just need a formatted report. Keeping them separate means you can run either step on its own — and chain them when you need the full pipeline.
Frequently asked questions
Can I merge Excel files and then format them into a report automatically?
Yes. Use Excel/CSV Merger to combine a folder of files into one dataset, then Excel Report Generator to turn that dataset into a formatted report. It's two commands you can save and rerun.
Do the two tools need to be installed separately?
Yes — they're separate open-source repositories. Both are free, Python-based, and installed the
same way with pip install -r requirements.txt.
What format should I use for the file passed between them?
Have the Merger output a .csv (or .xlsx), then pass that file straight
into the Report Generator as its input.
Can I schedule the whole workflow to run automatically?
Yes. Put both commands in a .bat or .sh script and run it manually or on
a schedule (for example with Windows Task Scheduler or cron).
Are both tools really free?
Yes. Both are open-source under the MIT license, free for personal and commercial use.
Do I need Microsoft Excel installed?
No. Both tools read and write spreadsheet files with the Python library openpyxl, so
they work without Excel installed.
Summary
Two small, free tools cover a workflow that eats hours of manual work. Merge a folder of files into one dataset, then generate a formatted report from it — in two commands. Set it up once and rerun it whenever the data changes.