How to Migrate from Excel to ERP Without Losing Your Data

Written by, Oasis Techno Cloud on April 12, 2026

erpmigrationexceldata

Your Business Has Outgrown Excel. Now What?

Excel is where every business starts. It is free (or close to it), flexible, and everyone knows how to use it. For the first year or two, a few spreadsheets handle your customer list, product catalog, invoices, and basic accounting just fine.

Then things start breaking.

Someone overwrites a formula. Two people edit the same file and create conflicting versions. Your customer list has duplicates you cannot find. Inventory counts do not match because three different spreadsheets track the same products. Your accountant spends hours reconciling data that should match but does not.

If this sounds familiar, you are ready for an ERP. The question is: how do you get all your business data out of Excel and into a proper system without losing anything? Whether you choose Odoo Community or another platform, the migration process follows the same fundamentals.

This guide gives you the exact process.

Before You Start: Audit What You Have

Most businesses do not realize how much data they have scattered across spreadsheets until they try to migrate it. Start with an inventory of your Excel files.

Common Data Sources to Catalog

Data TypeTypical Excel LocationERP Destination
Customer list”Clients.xlsx” or “Contacts.xlsx”Contacts / CRM module
Product catalog”Products.xlsx” or “Stock.xlsx”Product module
Price lists”Pricing.xlsx” or embedded in product sheetPricelist module
Supplier list”Fournisseurs.xlsx” or “Suppliers.xlsx”Contacts (Vendor type)
Sales history”Ventes 2024.xlsx”, “Ventes 2025.xlsx”Sales / Invoicing module
Purchase history”Achats.xlsx”Purchase module
Inventory counts”Stock_count.xlsx”Inventory module
Employee list”RH.xlsx” or “Staff.xlsx”HR module
Chart of accounts”Plan_comptable.xlsx”Accounting module
Opening balances”Balance_ouverture.xlsx”Accounting module

What to Migrate vs. What to Leave Behind

Not everything in your spreadsheets needs to go into the ERP:

Always migrate:

  • Active customer and supplier contacts
  • Current product catalog with prices
  • Current inventory levels
  • Chart of accounts
  • Opening balances (as of migration date)
  • Active employee records

Consider migrating:

  • 1-2 years of sales and purchase history (useful for reporting and AI forecasting)
  • Historical customer purchase patterns

Usually skip:

  • Transaction history older than 2 years (archive it separately)
  • Obsolete products you no longer sell
  • Inactive contacts you have not communicated with in 2+ years
  • Draft or incomplete records

Migrating less data means a cleaner ERP, a faster project, and fewer headaches.

Step 1: Clean Your Data (The Most Important Step)

Data cleaning is where most migration projects succeed or fail. Dirty data in Excel becomes dirty data in your ERP — except now it is harder to find and fix.

Common Data Quality Issues

Duplicates: You have “Oasis Techno Cloud”, “OASIS TECHNO CLOUD”, and “Oasis TC” as three separate customers. They are the same company.

Solution: Sort your data alphabetically, scan for variations, and merge duplicates. For large lists, use Excel’s “Remove Duplicates” feature or VLOOKUP to find near-matches.

Inconsistent formatting: Phone numbers stored as “0661234567”, “+212661234567”, “06 61 23 45 67”. Product names sometimes capitalized, sometimes not.

Solution: Standardize formats before migration. Use Excel formulas:

  • =TEXT(A1,"0000000000") for phone numbers
  • =PROPER(A1) for names
  • =TRIM(A1) to remove extra spaces

Missing data: Customer records without email addresses. Products without categories. Invoices without dates.

Solution: Fill in what you can, flag what you cannot, and decide whether incomplete records should migrate. A customer without an email can still be useful; a product without a name cannot.

Wrong data types: Numbers stored as text. Dates in mixed formats (DD/MM/YYYY in some cells, MM/DD/YYYY in others). Prices with currency symbols embedded (“$25.00” instead of “25.00”).

Solution: Use Excel’s DATEVALUE, VALUE, and SUBSTITUTE functions to standardize. Ensure all numeric columns are actually formatted as numbers.

Data Cleaning Checklist

Run through this checklist for each data file:

  • Remove duplicate records
  • Standardize names and formatting
  • Fill in missing required fields
  • Verify phone number and email formats
  • Ensure dates are in a consistent format (YYYY-MM-DD recommended)
  • Remove currency symbols and formatting from numeric fields
  • Validate data ranges (no negative stock quantities, no future dates for past transactions)
  • Add required columns that your ERP needs but Excel does not have

Step 2: Map Your Excel Columns to ERP Fields

Every ERP has its own field structure. Your Excel column headers will not match perfectly. Create a mapping document.

Example: Customer Data Mapping

Excel ColumnERP Field (Odoo)Notes
NomnameRequired field
Societecompany_nameOnly for B2B contacts
TelphoneStandardize format first
EmailemailValidate format
AdressestreetSplit into street/city/country
VillecityExtract from combined address field
Payscountry_idMust match Odoo country codes
Typecustomer_rank / supplier_rankMap “Client” to customer, “Fournisseur” to supplier
NotecommentFree text, transfers as-is

Example: Product Data Mapping

Excel ColumnERP Field (Odoo)Notes
Referencedefault_codeInternal reference / SKU
Nom ProduitnameProduct name
DescriptiondescriptionDetailed description
Prix Ventelist_priceMust be numeric, no currency symbol
Prix Achatstandard_priceCost price
Categoriecateg_idMust match ERP category names exactly
Code BarrebarcodeEAN-13 or internal barcode
Stock Actuelqty_availableWill be set via inventory adjustment
Uniteuom_idMust match ERP unit names (Units, Kg, Liters)

Pro Tips for Data Mapping

  1. Export a sample from your ERP first — Most ERPs let you export a blank template with the correct column headers. Use this as your target format.
  2. Handle one-to-many relationships — Your Excel might have “Address” as one column, but your ERP wants “Street”, “City”, “State”, “Country”, “Zip”. You need to split these.
  3. Map codes, not names — ERPs often use internal codes. “Morocco” might need to be “MA”. “Kilograms” might need to be “kg”. Check the ERP’s reference data.

Step 3: Prepare Import Files

Most modern ERPs (including Odoo) accept CSV or Excel files for import. Prepare one file per data type.

The order matters because of dependencies:

  1. Chart of Accounts — Must exist before any accounting entries
  2. Contacts (Customers and Suppliers) — Must exist before sales/purchase orders
  3. Product Categories — Must exist before products
  4. Products — Must exist before inventory and sales
  5. Inventory (Opening Stock) — Requires products and warehouses
  6. Opening Balances — Requires chart of accounts and contacts
  7. Historical Data (if applicable) — Requires all of the above

File Preparation Tips

  • Save as CSV with UTF-8 encoding (critical for French/Arabic characters)
  • Use the date format your ERP expects (Odoo uses YYYY-MM-DD)
  • Keep files under 5,000 rows for reliability; split larger files
  • Include a header row matching the ERP’s expected column names
  • Remove any Excel formulas — save as values only

Step 4: Test With a Small Batch First

Never import all your data at once. Start with a test batch.

The Test Import Process

  1. Take the first 20-50 records from each file
  2. Import them into a test/staging environment (not your live ERP)
  3. Verify every field imported correctly
  4. Check for common issues:
    • Characters displaying incorrectly (encoding issues)
    • Dates off by one day or shifted to wrong format
    • Numbers with unexpected decimals (2.5 became 2.50000001)
    • Related records not linking (customer on an invoice not found)
  5. Fix any issues in your source files
  6. Re-test until clean

Common Test Import Failures

IssueCauseFix
”Field not found”Column name mismatchMatch column header exactly to ERP field name
Special characters corruptedWrong encodingSave CSV as UTF-8 with BOM
Dates wrongFormat mismatchConvert to YYYY-MM-DD
Related record not foundDependency not imported yetImport dependencies first
Duplicate key errorRecord already existsRemove duplicates or use “update existing” mode

Step 5: Execute the Full Migration

Once test imports are clean, proceed with the full dataset.

Migration Day Checklist

  • Backup your ERP database before starting
  • Stop all users from entering data during migration
  • Import data files in the correct order (see Step 3)
  • Verify record counts after each import (exported 500 customers, imported 500)
  • Spot-check 10-20 random records in detail
  • Run a trial balance to verify accounting data
  • Compare inventory totals between Excel and ERP
  • Re-enable user access only after verification

Handling the Cutover

The trickiest part of any migration is the cutover period — the gap between when you stop using Excel and start using the ERP.

Option A: Hard cutover (recommended for small businesses)

  • Pick a date (ideally start of a month or quarter)
  • All data up to that date goes into the ERP
  • From that date forward, everything happens in the ERP
  • Keep Excel read-only for historical reference

Option B: Parallel run (for risk-averse businesses)

  • Run both Excel and ERP for 2-4 weeks
  • Enter all transactions in both systems
  • Compare results at the end of the parallel period
  • Switch to ERP-only once you are confident
  • Downside: double data entry is painful and error-prone

We recommend Option A for most SMEs. The parallel run sounds safer but doubles your workload and often drags on longer than planned.

Step 6: Validate and Reconcile

After migration, verify data integrity:

Financial Validation

  • Trial balance in ERP matches your last Excel trial balance
  • Accounts receivable total matches your customer balance list
  • Accounts payable total matches your supplier balance list
  • Bank balance in ERP matches your bank statement

Operational Validation

  • Total inventory value in ERP matches your last stock valuation
  • Customer count matches (minus intentionally excluded records)
  • Product count matches
  • Price spot-checks pass (randomly verify 20 product prices)

User Validation

  • Ask each department to verify their data looks correct
  • Sales team checks their key customers are present with correct details
  • Purchasing team verifies supplier information and pricing
  • Warehouse team confirms stock levels for top 50 products

Realistic Timeline for Excel-to-ERP Migration

Business SizeData CleaningMapping and PrepTest ImportFull MigrationValidationTotal
1-5 employees1-2 days1 day1 day1 day1 day1-2 weeks
5-15 employees2-5 days2-3 days1-2 days1 day2 days2-3 weeks
15-30 employees1-2 weeks3-5 days2-3 days1-2 days3-5 days3-5 weeks
30-50 employees2-3 weeks1 week3-5 days1-2 days1 week5-8 weeks

Notice that data cleaning takes the longest. The actual import is usually the fastest part.

Mistakes That Derail Migrations

  1. Skipping data cleaning — “We will fix it in the ERP” never happens. Clean before you migrate.
  2. Migrating everything — Ten years of history, obsolete products, and dead contacts just create noise.
  3. No test import — Discovering import errors during the live migration causes panic and delays.
  4. Wrong import order — Importing invoices before customers exist causes cascading failures.
  5. No cutover plan — People keep entering data in Excel after migration, creating two versions of truth.
  6. Underestimating the timeline — “It is just a data import” is the most dangerous phrase in ERP projects.

Let Us Handle Your Migration

At Oasis Techno Cloud, data migration is included in every implementation pack. We clean your data, map your fields, run test imports, execute the migration, and validate results — so you do not have to become a data migration expert.

Our team has migrated businesses from Excel, QuickBooks, Sage, and custom systems into Odoo Community. We know the edge cases, the encoding issues, and the reconciliation tricks.

Ready to leave Excel behind? Get in touch and we will assess your migration complexity for free.

Need expert advice?

Chat with our team for free. We respond in under 2 hours -- even on weekends.

Chat on WhatsApp