Docxtemplater is a JavaScript library that generates Word (.docx
), PowerPoint (.pptx
), and Excel (.xlsx
) documents from templates filled with structured data (such as JSON).
Optional modules add advanced functionality, including:
Docxtemplater is essentially a modern mail-merge engine: it produces personalized DOCX, PPTX, or XLSX files at scale—ideal for automating contracts, invoices, certificates, or reports.
It runs in both Node.js and the browser, so developers can integrate it into any application while non-programmers design templates directly in Office apps.
Today, the npm package is downloaded over 400,000 times monthly and used by about 50,000 companies worldwide.
docxtemplater uses JavaScript objects (or JSON) as data input, making it easily usable from other languages as well : Python, PHP, Ruby, C, … (see the docker version to know the full list of supported languages).
docxtemplater offers a straightforward API that abstracts complexities related to loops, conditions, and additional functionalities.
If you need extra features, you can buy one of our paid modules available on the the docxtemplater docs page.
We offer multiple demos to give you a glimpse of what our software can do.
To install and start using docxtemplater, please follow our guidelines:
Also, we are more than happy to help you set up docxtemplater and we offer consulting services for that purpose if needed.
To streamline automated document generation, you might consider solutions like :
These solutions do not offer a template-based approach.
Thus, it becomes very tedious if you want to create a multi-page document because you have to write so, much, code.
We developed docxtemplater as a new approach that uses placeholders inside .docx, .pptx or .xlsx templates.
As a result, our software is user-friendly and your code is easy to maintain, saving you time and requiring less expertise. We let you focus on the document that you want to generate, not on the technical details of Office OpenXML.
If you want to see this in action, check out this simple demo.