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 StoreMore Odoo human resources apps
Cancel HR Expense - Full-Lifecycle Cancellation with Preview
Cancel, reset or delete an expense at any stage from Draft to Paid — with an accounting-impact preview, per-role permissions and an audit log that survives deletion.
Employee Expense Reports
Group expenses into submitted, approved and rejected reports with readable auto-summaries, conditional routing, missing-receipt alerts and a reconciliation-ready PDF.
Expense Advance
Employee cash advance requests with multi-gate approval, automatic reconciliation against the expenses they funded, and outstanding-balance and overdue tracking.
Expense Dynamic Approval & Cash Advances
Dynamic multi-level expense approval and full cash-advance lifecycle, built natively on Odoo.
Expense Unique Number Sequence
A unique, immutable reference number stamped on every expense at creation, with a dedicated, never-colliding series for advance and clearing claims and a configurable prefix and padding.
Expenses For Helpdesk Tickets
Log parts, travel and contractor costs straight from a Helpdesk ticket, roll them up on every ticket view, and analyse support spend by ticket, team or customer.