NetSuite
Oct 1, 2026 · 3 min read

The CSV Was Broken Before NetSuite Ever Saw It

The import mapping was fine. Excel had already reformatted the posting periods, incremented the account numbers, and doubled an invisible character.

The CSV Was Broken Before NetSuite Ever Saw It

The import failed.

Everyone looked at the mapping.

The mapping was fine. The file had been changed before NetSuite ever saw it.


Excel Is Not a CSV Editor

Excel is a spreadsheet. It assumes you want help.

So it helps. It sees something that looks like a date and makes it a date. It sees a pattern and continues it. It saves in whatever encoding it feels like.

None of that shows up on screen the way it shows up in the file.

Here are three we've run into on real imports.


1. The Posting Period Became a Date

NetSuite wants the posting period as text that matches the period name. Something like "Jul 2026".

Open that file in Excel and it sees a date. Save it, and what lands in the file isn't the text you typed anymore.

The import rejects the period, or worse, the row lands somewhere you didn't expect.


2. Fill-Down Started Counting

Drag a plain number like 4000 down a column and Excel copies it.

Drag something like INV-1001 and Excel counts. INV-1002, INV-1003, INV-1004. Same with dates, and same if you select two cells before you drag.

Hold Ctrl while you drag and it flips both ways.

So the same move copies one column and counts the next, depending on what's in the cell. Values that were supposed to repeat don't. On screen the column looks reasonable at a glance. In the import, rows land on the wrong record or collide on external IDs that already exist.


3. The Invisible Character Doubled

This one is the meanest.

A record name in NetSuite had a non-breaking space at the end. You can't see it. A normal space doesn't match it. The import file has to carry that exact character.

Round-trip the file through the wrong encoding and that one character becomes two: an  followed by the non-breaking space. Still invisible, or close to it.

Now the same name is spelled two different ways in one file, and NetSuite rejects the import.

The fix for that one wasn't in the file at all. It was cleaning the stray character off the record name in NetSuite so nobody has to match it again.


What to Do

  • Open every import file in a plain text editor before you load it. You see exactly what NetSuite will see.
  • Format text columns as Text before you paste if you have to build the file in Excel.
  • Never drag-fill IDs, document numbers, or account numbers. Copy and paste, then check the column in the text editor.
  • Save as CSV UTF-8, and keep it that way. Don't let the file bounce between tools.
  • When one name won't match no matter what, look for characters you can't see.

Bottom Line

Before you debug the mapping, debug the file.

Open it in a text editor. It takes thirty seconds.

It's the cheapest step in the whole import, and it's the one everyone skips.

Dealing with this in your own NetSuite account?

We fix exactly these problems in production. Run a free read-only health scan, or talk to a senior NetSuite consultant who has seen it before.

Mike Pagani, founder of Adaptive Solutions Group

Written by Mike Pagani, founder of Adaptive Solutions Group — a NetSuite consultancy based in Pittsburgh, PA. Mike has been building SuiteScript automations, integrations, and NetSuite rescue projects since 2013.