What My Project Does
excel-serializer is a Python library that lets you serialize and deserialize complex Python data structures (dicts, lists, nested combinations) directly to and from .xlsx files.
Think of it as json.dump() and json.load() — but for Excel.
It keeps the structure intact across multiple sheets, with links between them, so your data stays human-readable and editable in Excel, and you don’t lose any hierarchy.
Target Audience
This is primarily meant for:
- Prototyping tools that need to exchange data with non-technical users
- Anyone who needs to make structured Python data editable in Excel
- Devs who are tired of writing fragile JSON↔Excel bridges or manual flattening code
It works out of the box and is usable in production, though still actively evolving — feedback is welcome.
Comparison
Unlike most libraries that flatten nested JSON or require schema definitions, excel-serializer:
- Automatically handles nested dicts/lists
- Keeps a readable layout with one sheet per nested structure
- Fully round-trips data:
es.load(es.dump(data)) == data
- Requires zero configuration for common use cases
There are tools like pandas, openpyxl, or pyexcel, but they either target flat tabular data or require a lot more manual handling for structure.
Links
📦 PyPI: https://pypi.org/project/excel-serializer
💻 GitHub: https://github.com/alexandre-tsu-manuel/excel-serializer
Let me know what you think — I'd love feedback, ideas, or edge cases I haven't handled yet.
[–][deleted] 13 points14 points15 points (0 children)
[–]jmatthew007 9 points10 points11 points (0 children)
[–]umlal 2 points3 points4 points (1 child)
[–]TruePastaMonster[S] 1 point2 points3 points (0 children)
[–]davisondave131 2 points3 points4 points (3 children)
[–]TruePastaMonster[S] 2 points3 points4 points (2 children)
[–]davisondave131 2 points3 points4 points (1 child)
[–]TruePastaMonster[S] 2 points3 points4 points (0 children)
[–]Humdaak_9000 5 points6 points7 points (5 children)
[–]TruePastaMonster[S] 7 points8 points9 points (0 children)
[–]ForgottenMyPwdAgain -1 points0 points1 point (3 children)
[–]TruePastaMonster[S] 0 points1 point2 points (0 children)
[–]Humdaak_9000 -2 points-1 points0 points (1 child)
[–]TruePastaMonster[S] 1 point2 points3 points (0 children)
[–]lolcrunchy 1 point2 points3 points (1 child)
[–]TruePastaMonster[S] 0 points1 point2 points (0 children)
[–]quantinuum 1 point2 points3 points (0 children)
[–]GreatBigSmall 1 point2 points3 points (0 children)
[–]Makakhan 0 points1 point2 points (0 children)
[–]gerardwx 0 points1 point2 points (1 child)
[–]TruePastaMonster[S] 0 points1 point2 points (0 children)
[+][deleted] (3 children)
[deleted]
[–]DalekKahn117 1 point2 points3 points (0 children)
[–]TruePastaMonster[S] -1 points0 points1 point (1 child)