Bulk Upload Generator – Documentation
This webapp generates a fresh Bulk_UPLOAD.xlsx from one primary expenditure template
and multiple ledger/source Excel files. Each run is isolated and produces its own downloadable outputs.
How To Use
- Primary Template (required)
Upload the latest template file (for exampleexpenditure-template.xlsx). This is used only for its format – the app does not read cost centre, GST, dates, or net-payable data from it. - Source Files (required)
Upload one or more ledger/source Excel files (.xlsx) that should be merged into the bulk upload. - Legacy Template (optional)
Optionally upload an old layout file (e.g.Bulk_upload_old.xlsx) if you need backwards compatibility. - project_db.txt / expense_head.txt (optional)
-project_db.txt: project / abbreviation cache. When present, mappings are preserved and refreshed from the template.
-expense_head.txt: optional fallback cache, also auto-refreshable from the template. - Generate
Click Generate Bulk Upload and wait for processing to finish. You will be redirected to a results page. - Download Outputs
From the result screen, download:- Bulk_UPLOAD.xlsx – main upload file
- project_db.txt (if generated)
- expense_head.txt (if generated)
- error_log.txt (if errors occurred)
- run.log – raw log from the backend script
Template Behaviour & Safety
- Each run writes into a dedicated run folder; old runs are not overwritten.
- The primary template is used strictly as a layout – its data rows are cleared before use.
- The generator does not try to read cost centre, GST, date strings, or net payable cells from the primary template.
Bulk_UPLOAD.xlsxis regenerated fresh for every run so you always download a clean output.
GitHub & Deployment
Source code: github.com/Chaitanya-cpc/expenditure-template
Hosted as a Flask app behind Nginx, following the same layout and navigation as the CPCL requisition webapp.