Import expenses from Excel with confidence
Bulk-create employee expenses from an Excel or CSV file, with a per-row validating preview before anything is committed to Odoo.
The problem
Finance and HR teams routinely receive employee expense data as spreadsheets — from field staff, legacy system exports, or per-branch bookkeepers. Re-keying dozens or hundreds of lines by hand into Odoo is slow, and one mistyped employee, product, or amount causes problems downstream in reimbursement and accounting.
The solution
Upload an Excel or CSV file and get a row-by-row preview that flags exactly which rows will import and why others will not — before a single expense is created. Broad employee and product matching means your spreadsheet's existing identifiers just work.
Everything you need for bulk expense import
Every capability below is implemented in the module.
Excel and CSV, both supported
Upload either an XLSX or a CSV file — whichever format your source data already comes in.
Validating preview before commit
See every row flagged as importable or in error, with the exact reason, before any expense record is created.
Broad employee matching
Employees resolve by name, work email, work phone, or badge ID — whichever identifier your spreadsheet already uses.
Broad product matching
Expense products (categories) resolve by name, internal reference, or barcode — no need to rename your columns to match Odoo.
Unit price and quantity per line
Itemized lines carry their own unit price and quantity, so mileage and per-unit costs import exactly as recorded.
Analytic account assignment
Route imported costs to the correct cost center or project during import, matched straight from your file.
Ready-to-fill templates
Download an Excel or CSV starter file with example rows, matching the exact column layout the import expects.
Clear in-product documentation
Every expected column is documented in the wizard itself, along with the stated openpyxl prerequisite — no guesswork, no surprise failures.
Defaults and error handling
Set an optional default employee and payment mode, then choose to import valid rows only or block the whole batch on any error.
How it works
Upload your file
Open the import wizard from Expenses and upload your Excel or CSV file, or download a template first.
Review the preview
Each row is matched and validated, with clear reasons shown next to any row that would fail.
Fix or confirm
Correct your source file and re-upload, or choose to import the valid rows only.
Expenses are created
Confirmed rows become native Odoo expense records, ready for the standard approval flow.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Both Excel (.xlsx) and CSV files are supported. Downloadable templates for each format are available directly in the import wizard.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Import Expenses from Excel/CSV
Bulk-import employee expenses from Excel or CSV with a validating row-by-row preview, broad employee and product matching and analytic account assignment — plus ready-to-fill templates.
Buy on Odoo App Store