Free tools

CSV viewer

Open a CSV or TSV file and see it as a table, every cell exactly as written. You also get a list of what would break an import, with the line it's on: rows with too many or too few cells, repeated column names, garbled characters. Your file never leaves your browser.

4 rows, 7 columns, comma-separated.

  • 1 row doesn't have 7 cells: line 4.
  • 2 columns are named "phone": columns 5 and 7.
  • 1 blank line: line 5.

If someone opens it in Excel

  • Numbers longer than 15 digits in "id", on lines 2, 3, 6. Excel may change every digit after the 15th to 0.
  • Whole numbers with a leading 0 in "zip", on line 2. Excel may drop the 0.
  • Text that starts with =, +, - or @ in "phone", on lines 2, 3, 6. Excel may read them as formulas.
Line
2100000000000000001Acme Dentalops@acme.example07030+1 201 555 0100Growth+1 201 555 0101
3100000000000000002Northwind "East" Clinicfront@northwind.example80202+1 303 555 0142Starter
Broken row, line 4100000000000000003Blue Harbor Inc.team@blueharbor.example02110+1 617 555 0199Growth
6100000000000000004Cedar Labshello@cedarlabs.example94107+1 415 555 0123Enterprise+1 415 555 0124

What each problem means, and how to fix it

A broken CSV can look fine. The worst kind doesn't fail at all: the import goes through, but every value after a stray comma lands one column to the right. Here's what the viewer looks for, and how to fix each one.

Rows with a different number of cells
Every row should have as many cells as the header has columns, as RFC 4180 describes. A row with one extra cell usually has a comma inside a value that isn't in quotes. A row with fewer cells was cut short, or has a line break inside a value that isn't in quotes. Either way, the values after the break land in the wrong columns.
ColumnMeantRead
id100000000000000003100000000000000003
companyBlue Harbor, Inc.Blue Harbor
emailteam@blueharbor.example␣Inc.
zip02110team@blueharbor.example
phone+1 617 555 019902110
planGrowth+1 617 555 0199
phone(blank)Growth
(no column)(blank)
Line 4 of the sample. The comma in "Blue Harbor, Inc." isn't in quotes, so the row has 8 cells for 7 columns and every value after it moves one column to the right.

The fix belongs in the export: a value with a comma, a double quote or a line break goes in double quotes. For one or two rows, add the quotes by hand and open the file again.

Two columns with the same name, or a column with no name
When an import matches columns by name, it can't tell two "phone" columns apart, and a blank name matches nothing. Rename them before you map the file. A blank name at the end of the header is often a stray separator.
A quote that never closes
Everything from that quote to the end of the file is read as one cell, so the rows after it seem to vanish. Go to the line the viewer names and close the quote, or remove it.
Blank lines
An import can read a blank line as an empty row. Delete them.
Characters that didn't decode
The file was saved with one text encoding and read with another, so some letters come out as junk. The viewer reads files as UTF-8 first. If a file isn't valid UTF-8, it reads it again as Windows-1252, the older Windows encoding, and says so. Ask for the export again in UTF-8, or save it as UTF-8 in a text editor. If Encoding is on Detect automatically and the text still reads Café, the damage happened earlier, when someone opened and saved the file the wrong way, so reading it again won't fix it.
Saved asRead asShows as
Windows-1252UTF-8Caf�
UTF-8Windows-1252Café
UTF-8UTF-8Café
The word "Café" saved one way and read another. The viewer flags both kinds of damage.
If someone opens it in Excel
Long numbers, values that start with 0 and values that start with =, +, - or @ are exact in the CSV. They can change when someone opens the file in Excel, which may keep 15 digits of a long number and turn the rest into zeros, drop the leading 0, and read values that start with =, +, - or @ as formulas. That's why the viewer flags phone numbers that start with +. Here's how to stop Excel changing them.

What to send back to whoever sent the file

Line numbers are what make a problem fixable by someone else. For the sample, the note writes itself:

Line 4: the company name Blue Harbor, Inc. has a comma and needs quotes. The header has two columns named phone, so please rename one. Line 5 is blank.

That's one round trip instead of a failed import, a support ticket and a second export. The Excel warnings stay off the note: those values are right in the file, so they're yours to protect, not the sender's to fix.

How the viewer reads a file

  • Every cell stays text. Nothing is converted, so 02110, a 20-digit ID and a date show exactly as the file has them. Sorting puts 9 before 10 but never changes a cell.
  • Quotes follow RFC 4180. A value in double quotes can hold the separator and line breaks, and two double quotes stand for one. Line numbers are the file's own lines. A row with a line break inside a value takes two lines and is numbered by the line it starts on.
  • The separator is guessed from the first 50 rows. The viewer tries comma, semicolon, tab and pipe (|), and keeps the one that gives the most rows the same number of cells. If it guesses wrong, pick one.
  • UTF-8 first, then Windows-1252. The viewer reads a file as UTF-8. If any bytes aren't valid UTF-8, it reads the whole file as Windows-1252 instead. Set Encoding to UTF-8 and those bytes show as �, the replacement character. A UTF-8 marker (BOM) at the start is removed from the table and noted, because some software doesn't expect one.
  • The header sets the column count. Without a header row, the most common cell count does.
  • Big files work. Files can be up to 50 MB. The checks cover every row; the table shows the first 500 rows that match your search.
  • The file stays on your computer. Your browser reads it with the File API. The options you pick go in the address bar so you can share the setup, never the file.

Questions

Can I open a CSV file without Excel?
Yes. This viewer opens it in your browser, and any text editor shows the raw text. Google Sheets can import it too: File > Import, then pick "Detect automatically" under Separator character. If you're checking a file before you pass it on, skip Excel: it applies its own format to each column when it opens a .csv, so what you see isn't always what's in the file.
Is my file uploaded?
No. Your browser reads the file and the page doesn't send it anywhere, so it never reaches Rubie.
Can I edit the file here?
No. The viewer only reads the file, so what you see is what's in it. Fix the problems in the system that made the export, or in a text editor, then open the file here again to check.

When the file isn't the whole story

A clean file isn't always a complete one. The viewer can tell you a row is broken. It can't tell you what the export left out, and that's the bigger gap: by Rubie's own numbers, 95% of the sources its customers migrate from can't export everything a migration needs.

If you run onboarding at a software company and that file is a new customer's export, the missing part is the job Rubie does. We move the customer's history out of the system they're leaving and into your product, without engineering time, so onboarding doesn't wait on the export. See how Migration Playbooks run a migration end to end, or, if your file is JSON, use the JSON to CSV converter.

// rubie //

Your customers are waiting on data that lives behind a login.

Book a Demo (opens in a new tab)