An open API service indexing awesome lists of open source software.

https://github.com/jfaccioli/documint

DocuMint is a lightweight Flask web app that automates the bulk generation of personalised Word documents by merging a .docx template with Excel data. Simply upload a Word file with placeholders and an Excel sheetβ€”DocuMint will create and zip a separate document for each row automatically.
https://github.com/jfaccioli/documint

admin-tools automation-tool bulk-document-generation contract-automation contract-generator document-automation docx-automation excel-to-docx flask mail-merge openpyxl pandas python python-docx small-business-tools template-engine webapp word-documents word-merge

Last synced: 4 months ago
JSON representation

DocuMint is a lightweight Flask web app that automates the bulk generation of personalised Word documents by merging a .docx template with Excel data. Simply upload a Word file with placeholders and an Excel sheetβ€”DocuMint will create and zip a separate document for each row automatically.

Awesome Lists containing this project

README

          

# πŸ“„ DocuMint – Bulk Word Document Generator from Excel Data

**DocuMint** is a web-based document generator that turns Excel spreadsheets into individually customised Word documents using a single template. Perfect for contracts, documents, tenancy forms, and any admin task requiring personalised files β€” in bulk.

[🟒 Live Demo – Try DocuMint Now](https://documint.onrender.com/)

---

### πŸ”₯ Why DocuMint?

Microsoft Word's Mail Merge is useful β€” but limited. It only creates one long .docx file with multiple pages for different recipients. You still have to split the document manually.

DocuMint does it better:

Creates separate Word files, one for each row of your Excel spreadsheet

Automatically names each file

Packages them all in a ZIP, ready to download

---

## πŸš€ Features

- πŸ“ Upload a Word `.docx` template with placeholders or merge fields
- πŸ“Š Upload an Excel file with matching column headers
- πŸ” Choose a column to name the generated documents
- πŸ“‚ Merge fields into both **paragraphs** and **tables**
- πŸ—‚οΈ Download a ZIP file with all generated documents
- 🧹 Auto-cleans temporary files after download

---

## ▢️ How to Use

### 1. Prepare Your Excel File
Each row should represent one document. The column headers will become your placeholders.

![Excel Screenshot](static/Excel.png)

### 2. Prepare Your Word Template
Use one of the two supported methods:

βœ… Option 1: Custom Placeholders
Type placeholders like Β«First_NameΒ» directly in Word
Replace spaces with underscores to match Excel column names

βœ… Option 2: Insert Merge Field (Advanced)
Open Word > Mailings > Select Recipients > Use Existing List…
Load your Excel
Use Insert Merge Field for placeholders (e.g. First_Name)
Save the .docx file

![Word Screenshot 1](static/Word1.png)
![Word Screenshot 2](static/Word2.png)

---

## πŸ“ Project Structure

documint/
β”œβ”€β”€ main.py # Flask app
β”œβ”€β”€ requirements.txt # Python dependencies
β”œβ”€β”€ .gitignore # Git ignored files/folders
β”œβ”€β”€ README.md # Project description
β”œβ”€β”€ templates/ # HTML templates
β”‚ β”œβ”€β”€ index.html
β”‚ └── choose_column.html
β”œβ”€β”€ static/ # Static assets (e.g. logo)
β”‚ └── generated-icon.png
β”œβ”€β”€ uploads/ # Temporary folder for uploaded files
β”œβ”€β”€ output/ # Temporary folder for processed files

---

## βš™οΈ Requirements

- Python 3.8+
- `pip install -r requirements.txt` (includes Flask, pandas, python-docx, openpyxl)

---

## πŸ’Ό Example Use Cases
Contracts
Letters of offer or employment
Bulk tenancy agreements
Certificates or registration confirmations
School or healthcare document mail-outs

---

## πŸ” Security Notes
Uploaded and generated files are stored only temporarily.
All files are deleted immediately after ZIP download.