Import Excel to Odoo with clean CSV files from supplier workbooks
Odoo imports both XLSX and CSV from the Import records option in the Action menu of a list view. The usual trouble is not the format but the file: supplier headers that do not match Odoo fields, swapped day and month dates and extra sheets. XlsConverter turns each workbook into a UTF-8, comma separated CSV with ISO dates, one sheet per file, ready for the Odoo mapping screen.

Short answer
Odoo accepts Excel (XLSX) and CSV files through Action > Import records, maps columns to fields, offers a Test step and then imports permanently, so imports cannot be undone. According to Odoo documentation, dates are guessed and day and month can be swapped, ISO 8601 (YYYY-MM-DD) is the safe format, and a column with the External ID lets you re-import without creating duplicates. XlsConverter produces the consistent CSV, in batches or from an inbox pipeline, but does not write records into Odoo.
A purchasing or operations person who runs Odoo gets a new vendor price list, an inventory count or a customer list as an Excel workbook almost every week. Odoo can read the file, but the supplier layout never matches the fields, dates arrive in mixed formats and the workbook carries cover sheets and notes. The same cleanup gets repeated by hand before each import, and a mistake is permanent once the import runs.
Convert once with fixed settings and the file arrives at the Odoo import screen in the same shape every time. Start with the UTF-8 CSV conversion settings, and when several workbooks arrive together use the batch Excel to CSV converter.
How to convert Excel to Odoo CSV in three steps
- 1Open the workbook and decide which sheet holds the records. Keep the header row as the first row and remove cover pages, totals and notes. Put Odoo field names or the names from the Odoo import template in the headers where you can.
- 2Choose CSV, comma and UTF-8, pick the date output you want (ISO 8601 is the format Odoo documentation recommends) and apply trim or drop empty columns where they help. Convert and open the CSV to check headers and dates.
- 3In Odoo open the list view of the object, use Action > Import records, upload the file and match each column on the mapping screen. Press Test first, read the messages and only then Import.
What Odoo expects from an imported Excel or CSV file
According to Odoo documentation, the import accepts XLSX and CSV files, shows formatting options for CSV only and expects commas as separators with quotation marks as text delimiters. It does not detect tab separated files, so a tab export has to be converted first. Odoo guesses the field type from the first ten rows, which makes a clean first rows block worth the effort.
Dates are guessed, so a day and month can be swapped, and the recommended format is ISO 8601 as YYYY-MM-DD. In Excel files dates should be stored as real date cells. Numbers with thousands and decimal separators are detected, but an unrecognized currency symbol can make an import fail. For related records such as a country or a vendor, Odoo accepts the name, the database ID or the External ID, and you should use one method per column and import the related records first.
The External ID column is the one to keep. It gives each record a stable identifier, so importing the same file again updates records and does not create duplicates, while two rows with the same External ID conflict. Imports are permanent, large ones can time out and Odoo recommends splitting them into smaller batches. XlsConverter does not split a sheet by row count, so divide the source workbook across tabs and export one CSV per tab.
Turn vendor price lists into the same Odoo import file every week
Map supplier names such as Item No, Description and Unit Price to the columns you import, either by editing the header row or with a Business schema template that renames them on every new file. Keep a separate template for each vendor whose layout differs and name the output after the supplier so the right file reaches the right import.
To update prices on products already in Odoo, include the External ID or the internal reference you match on and import with the same column setup each time. The Test step on the mapping screen shows what Odoo recognizes before anything is written, which is the check that matters when an import cannot be undone.
Avoid wrong dates and broken characters in an Odoo import
If delivery or order dates land in the wrong month, the file mixed formats and Odoo guessed. Convert with the ISO date option and check a few rows in a text editor before upload. If accents look wrong, save again as UTF-8 comma separated CSV, since spreadsheet apps can change the encoding on re-save.
Conversion prepares the file format. It does not check that product data satisfies the rules of your Odoo modules, and it does not create the related records that a column refers to. Review the mapping screen on the first run of every new layout.
Convert Excel for Odoo in batches or from an inbox
Use Pro when you convert a handful of supplier workbooks together for a weekly or monthly load. Use Business when the same layouts recur and you want pickup from an email inbox, S3, Google Drive, Dropbox or a URL on a schedule or every new file, with delivery to SFTP, S3, a webhook or email.
Pro costs 49 USD per month, or 24 USD per month billed yearly, with 2,000 conversions and 100 MB files. Business costs 149 USD per month, or 74 USD per month billed yearly, with 10,000 conversions, 20 pipelines, 5 seats and 1,000 AI runs. See Pro and Business plans. Teams that load ERP data elsewhere can compare the Excel to NetSuite CSV settings.
Compare ways to get an Excel file into Odoo
| Method | Preparation | How records reach Odoo | Ongoing work | Best for |
|---|---|---|---|---|
| Upload the XLSX straight to Odoo | Clean the sheet by hand | Action > Import records, map and test | Repeat the cleanup for each workbook | One off loads with a tidy file |
| Save As CSV in Excel by hand | Edit headers and dates, choose CSV | Same import screen | Encoding and date mistakes can creep in | Occasional files with a stable layout |
| Odoo implementation partner or custom import script | Written once per layout | Script or module writes records | Maintenance when a supplier changes a column | Complex data, custom models, scheduled loads straight into Odoo |
| XlsConverter | Fixed sheet, delimiter, encoding and date settings, saved header templates | You upload the prepared CSV on the import screen | Review the mapping and test step | Recurring supplier workbooks needing consistent files in batches |
Odoo reads XLSX itself, so a one off tidy file does not need a converter. A partner or script wins when records must be written straight into Odoo on a schedule. XlsConverter fits repeated file preparation across many supplier layouts, followed by an import you control.
Excel to Odoo CSV questions
How do I import an Excel file into Odoo?
Open the list view of the object, choose Action > Import records, upload the XLSX or CSV file, match each column to an Odoo field, press Test and then Import. According to Odoo documentation imports are permanent, so read the test messages first and keep an External ID column for re-imports.
Can Odoo import XLSX directly or does it need CSV?
Odoo imports both XLSX and CSV. Converting helps when a file needs a fixed layout before upload: one sheet, UTF-8 comma separated values, ISO dates and consistent headers. For a single tidy workbook you can upload the XLSX as it is.
What date format should an Odoo import file use?
Use ISO 8601, written YYYY-MM-DD. Odoo documentation says it guesses date formats, so day and month can be swapped. In Excel files store dates as real date cells, and in converted CSV pick the ISO date option so every row follows one format.
How do I update existing Odoo records from Excel?
Keep the External ID column in the file. Re-importing with the same External IDs updates the records and does not create duplicates, while two rows with the same ID conflict. Run Test on the mapping screen first, because Odoo imports cannot be undone.
Why does my Odoo import fail on a CSV file?
Typical causes are a delimiter other than comma, a wrong encoding, a currency symbol Odoo does not recognize, a relation value that does not exist yet or a very large file. Convert to comma, UTF-8 CSV, import related records first and split large files into smaller batches.
Does XlsConverter upload data directly to Odoo?
No, XlsConverter prepares files that you import yourself on the Odoo import screen. Business pipelines deliver to SFTP, S3, a webhook or email and do not write records into Odoo. Choose an integration or a custom script if you need records created automatically.
Related converters
Convert full files and batches
Pro starts at $24 per month billed yearly. Cancel any time.