How to find CSV import problems before they break your upload
A product, customer or order export can look fine in a spreadsheet and still fail an import, or worse, import the wrong data. This worked example runs the free Data Rescue Scanner on a small synthetic product export and explains every problem it reports. The file is invented for this example; the findings below are the scanner's real output for it.
Scan your own CSV - free, in your browser
The sample file
A synthetic store export with 13 lines: a header, 11 product rows, and one note that spans two lines. Nothing in it describes a real business or person. Download the sample CSV to scan it yourself.
product_id,title,price,stock,launch_date,barcode,notes
P-1001,Canvas tote bag,$24.00,12,03/04/2025,00123456,
P-1002,Ceramic mug ,18.5,40,15/04/2025,04012345,Gift box
P-1003,Linen napkins (set of 4),N/A,7,21/04/2025,012000,
P-1004,,32,,30/04/2025,05011111,Needs photo
P-1002,Ceramic mug,19.5,40,15/04/2025,04012345,Gift box
P-1005,Beeswax candle,12,25,2025-05-02,1234567890123456789,=SUM(A1:A9)
P-1006,Wool throw,89,3,31/13/2025,07000000,"Ships in two
parcels"
P-1007,Cotton apron,twenty,9,05/05/2025,08000000,@restock
P-1008,Recycled notebook,6.75,60,06/05/2025,09000000
P-1008,Recycled notebook,6.75,60,06/05/2025,09000000,
P-1009,Glass carafe,27,,07/05/2025,,
What the scanner found
32 findings of 12 kinds across 11 data rows and 7 columns: 6 high priority, 23 medium and 3 low. The scanner treated product_id as the identifier column, because its name ends in id. Row numbers are spreadsheet rows, so row 1 is the header.
| Severity | Problem | Count | Rows |
|---|---|---|---|
| high | Row with the wrong number of cells | 1 | 10 |
| high | Spreadsheet formula risk | 2 | 7, 9 |
| high | Same identifier, different details | 2 | 3, 6 |
| high | Date that cannot be read | 1 | 8 |
| medium | Exact duplicate row | 1 | 11 |
| medium | Inconsistent value in a numeric column | 3 | 2, 4, 9 |
| medium | Leading zeros at risk | 9 | 2, 3, 4, 5, 6, 8, 9, 10, 11 |
| medium | Long number that spreadsheets round | 1 | 7 |
| medium | Missing value | 9 | 2, 4, 5, 10, 11, 12 |
| low | Placeholder instead of an empty value | 1 | 4 |
| low | Line break inside a cell | 1 | 8 |
| low | Extra spaces | 1 | 3 |
What each problem means
Row with the wrong number of cells high
Why it matters: Values shift into the wrong columns, usually because of a stray delimiter or quotation mark.
What to do: Check the row for an extra or missing delimiter, or a value containing the delimiter that is not quoted.
Found in the sample:
- Row 10, (whole row): row has 6 cells where the header has 7; the missing cells were treated as blank
Spreadsheet formula risk high
Why it matters: A cell starting with =, +, - or @ can run as a formula when the file is opened in a spreadsheet (CSV injection).
What to do: Treat the file with care. Remove the leading character, or prefix the cell with an apostrophe before opening the file in a spreadsheet.
Found in the sample:
- Row 7, notes: starts with a character a spreadsheet would run as a formula (
=SUM(A1:A9)) - Row 9, notes: starts with a character a spreadsheet would run as a formula (
@restock)
Same identifier, different details high
Why it matters: Two rows share an identifier but disagree on other fields, so an import may keep the wrong one or overwrite the right one.
What to do: Decide which row is correct for each identifier before importing.
Found in the sample:
- Row 3, product_id: same product_id as row 6 but different values in: price (
P-1002) - Row 6, product_id: same product_id as row 3 but different values in: price (
P-1002)
Date that cannot be read high
Why it matters: The value looks like a date but is not a real calendar date (for example month 13), so it may be rejected or misread.
What to do: Correct the date in the source system and re-export.
Found in the sample:
- Row 8, launch_date: looks like a date but is not a valid day-first calendar date (
31/13/2025)
Exact duplicate row medium
Why it matters: Importing both copies can double-count stock, orders or contacts.
What to do: Remove the extra copy if it is not intentional.
Found in the sample:
- Row 11, (whole row): identical to row 10
Inconsistent value in a numeric column medium
Why it matters: Most values in the column are numbers, but this one is text or uses a different format, so an import may reject it or read it as zero.
What to do: Make every value in the column a plain number, or leave the cell empty.
Found in the sample:
- Row 2, price: reads as 24, but uses currency, percent or thousands marks in a column that also holds non-numeric values (
$24.00) - Row 4, price: not a number, but other values in this column are numbers (
N/A) - Row 9, price: not a number, but other values in this column are numbers (
twenty)
Leading zeros at risk medium
Why it matters: Spreadsheets and number conversions drop leading zeros, which breaks barcodes, postcodes, account numbers and SKUs.
What to do: Keep the column as text when opening or importing the file.
Found in the sample:
- Row 2, barcode: starts with 0; a spreadsheet or number conversion would turn it into 123456 (
00123456) - Row 3, barcode: starts with 0; a spreadsheet or number conversion would turn it into 4012345 (
04012345) - Row 4, barcode: starts with 0; a spreadsheet or number conversion would turn it into 12000 (
012000) - Row 5, barcode: starts with 0; a spreadsheet or number conversion would turn it into 5011111 (
05011111)
and 5 more in the full report.
Long number that spreadsheets round medium
Why it matters: Spreadsheets keep only 15 significant digits, so longer numbers are silently changed or shown in scientific notation.
What to do: Keep the column as text when opening or importing the file.
Found in the sample:
- Row 7, barcode: 19 digits; spreadsheets keep only 15 significant digits (
1234567890123456789)
Missing value medium
Why it matters: Required fields that are empty are a common reason for rejected or incomplete imports.
What to do: Fill the values that your import requires; leave optional ones empty.
Found in the sample:
- Row 2, notes: no value in this field
- Row 4, notes: no value in this field
- Row 5, title: no value in this field
- Row 5, stock: no value in this field
and 5 more in the full report.
Placeholder instead of an empty value low
Why it matters: Text such as N/A, null or a dash is imported as text, not as an empty value.
What to do: Replace placeholders with empty cells if the target system expects blanks.
Found in the sample:
- Row 4, price: reads as an empty value (
N/A)
Line break inside a cell low
Why it matters: Quoted line breaks are valid CSV, but some import tools and scripts split the row at the line break.
What to do: Check that your import tool accepts multi-line cells, or replace the line break with a space.
Found in the sample:
- Row 8, notes: the value contains a line break (
Ships in two ⏎ parcels)
Extra spaces low
Why it matters: Leading, trailing or doubled spaces make identical values look different, which breaks matching and de-duplication.
What to do: Trim the spaces.
Found in the sample:
- Row 3, title: extra spaces at the start, end or middle of the value (
Ceramic mug)
What a scan cannot tell you
- Whether a value is true. A price of 19.5 can be valid and still be the wrong price.
- Which of two conflicting rows is correct. That is a business decision.
- Whether a particular platform will accept the file. Each import template has its own required columns and rules.
- Near-duplicates such as "Ceramic Mug" and "ceramic mugs". The scanner reports exact matches only.
Fixing the problems yourself
- Make a copy of the export and work on the copy.
- Fix the high-priority findings first: wrong cell counts, formula risks, conflicting identifiers and unreadable dates or numbers.
- When opening the file in a spreadsheet, import identifier, barcode and postcode columns as text so leading zeros and long numbers survive.
- Save as CSV UTF-8 and scan the result again before importing.
Prefer to have it repaired?
The scan is free. The existing Fiverr service fixes and verifies files like this one. Scope is confirmed before ordering, and no service can guarantee that another system will accept an import.
- One CSV, from US$20 on Fiverr: up to 100 rows, 3-day delivery, 1 revision; larger packages US$100 (2,000 rows) and US$200 (10,000 rows). Cleaned CSV, change log, exceptions sheet, summary and verification report. Fiverr may show a converted price and buyer fees.
From a messy CSV to a checked delivery: an eight-row example
This is synthetic demonstration data, not a customer project. Scanning finds problems; cleanup is a separate step that must be checked against the original.
Before:
id,Date,Amount,Description A001,13/10/2026,"1,200.00", Invoice A
After:
id,Date,Amount,Description A001,2026-10-13,1200,Invoice A
In the complete eight-row example: - All eight records remain, in the same order and with the same columns. - Dates with evidence of day-first order become YYYY-MM-DD. Do not guess a date convention from one ambiguous value. - Numeric formatting is standardised where the whole column supports that interpretation. - An exact repeated row stays in the file and is flagged. Records sharing an ID but disagreeing also stay and are flagged; deciding which is correct is not a formatting task. - A missing amount stays empty. The report does not invent a value. - A formula-like value is marked as text in the file intended for spreadsheet opening. The separate machine-import file does not have that safety marker; do not open it as a spreadsheet.
The run logged 17 changes and five exceptions. Each changed value has its original in the change log. An independent expected-output check matched every output cell. The package check also reconciled the counts and verified file hashes; it refused a deliberately altered package.
An additional mixed-number check left both "1,200.00" and "1,2,3" unchanged and flagged them instead of guessing. These results apply to the tested examples, not every possible export.
Before paying for cleanup, confirm what the identifiers mean, the intended date/number formats and which changes are acceptable. This example uses IDs such as A001. Identifiers whose leading zeros or exact numeric text must be preserved need separate scope confirmation; this demonstration does not prove that case.
If you want a similar small export cleaned, my existing Fiverr Basic service is US$20 for one CSV up to 100 nonblank data rows, three-day delivery and one in-scope revision. You receive two CSV versions, a change log, exceptions sheet, summary and verification report. No duplicate deletion, missing-value invention, accounting decisions, workbook formulas, live-system access or guaranteed import acceptance.
Message me through Fiverr with "EXPORT100", your approximate row count, source/destination tools and the problem. Confirm scope before ordering or sending a file. Do not post data in comments. For a sample, replace personal, financial, confidential and identifying values with fictional ones. No credentials or system access are needed. Accepted files are processed locally; working copies are deleted within seven days of delivery. Fiverr's own retention policies apply to files stored on its platform.
One revision covers corrections within the agreed scope, not a new dataset or new integration. If the agreed work cannot be completed, cancellation/refund is handled through Fiverr's applicable process; no automatic refund or third-party import guarantee is promised. Buyer fees and currency conversion may apply; check the final total on Fiverr.
View the service or enquire:
https://www.fiverr.com/dustinrebellato/clean-standardise-and-flag-your-spreadsheet-with-a-verified-report