Watch the video: https://www.youtube.com/watch?v=J9yAQFVYujM
What you’ll learn
In this webinar, you’ll learn how xlwings Reports allows you to automate the whole reporting toolchain from data acquisition and manipulation to automatic deployment of your PDF factsheets. You’ll see how xlwings Reports works and how it differs from the open source version of xlwings.
About xlwings Reports
xlwings Reports is a solution for template-based Excel and PDF reporting, making the generation of pixel-perfect factsheets really simple. xlwings Reports allows business users without Python knowledge to create and maintain Excel templates without having to rely on a Python developer after the intial setup has been done: xlwings Reports separates the Python code (pre- and post-processing) from the Excel template (layout/formatting). xlwings Reports requires a paid plan.
4. 4
xlwings
• I released the first version of xlwings in 2014
• After working on it for 6 years as an open-
source project, I realized two things:
– Putting in the required amount of work for $0 is
unsustainable
– Most users are using xlwings for some sort of reporting
• Consequence: Either make it abandonware or
find a way to fund the project
5. 5
I wrote a Book (March 2021)
I. Introduction to Python
II. Introduction to pandas
III. Reading and Writing Excel
Files without Excel
IV.Programming the Excel
Application with xlwings
See: https://www.xlwings.org/book
7. 7
What’s wrong with the others?
• Pure code solutions (e.g., ReportLab)
– Developer dependency / requires lots of code / slow development
• HTML/CSS-based solutions (e.g., Plotly Dash)
– Code and design can be separated, but requires frontend knowledge
• BI tools (e.g., Power BI, Tableau, etc.)
– For interactive dashboards, not PDF reports / lack of connectors
• Connecting Excel with Word/PowerPoint
– Error prone / usually requires more than one template
• Desktop publishing (e.g., Adobe InDesign)
– Can’t be automated the way we want
8. 8
What’s wrong with xlwings (OSS)?
for address in ['A1', 'B2', 'C3']:
mysheet[address].value = 'xlwings'
for address in ['A1', 'B2', 'C3']:
mysheet[address].value = 'xlwings'
'A3', 'B4', 'C5'
Code AND
template changes
Requires loops
13. 13
Demo 2: Full reporting pipeline
• Pre-processing
– Read data from various sources incl. text, Word and CSV files
– Clean/manipulate the data with pandas
• Report Generation
– xlsx and PDF
• Post-processing
– uploading it to the xlwings.org webpage via AWS S3
90 lines of code (!): https://github.com/xlwings/xlwings-factsheet-demo
14. 14
Ways to run the reporting pipeline
• Excel workbook (used by the demo)
• Jupyter notebook
• Python script / CLI (e.g., for scheduler)
• Locally installed GUI
• Web-based UI
15. 15
Summary: xlwings Reports
• Separation of concerns: code vs. design
• Template: one, and only one
• Layout: multi-column
• Text: formatting via Markdown
• Tables: dynamically formatted with powerful filters
• Charts: via Excel or Python (Matplotlib, Plotly)
• PDF: “Print” on PDF in corporate layout
16. 16
Pricing
• From USD 82.50/month, your whole company can
run on xlwings Reports
• Developer license: only users who write Python
code need a paid license
• Tools can be used forever even if plan is cancelled
(but no support/upgrades)
• https://www.xlwings.org/pricing
17. 17
How to get started
• Get a trial license from:
https://www.xlwings.org/trial
• Read the docs:
https://docs.xlwings.org/en/stable/reports.html
• Book a meeting with me:
https://calendly.com/felix-zumstein/xlwings