Guides
The jobs and problems people search for, answered plainly — and each one ends in a tool that does it here, in your browser, with nothing uploaded.
Getting a job done
- VLOOKUP between two files, without the formula — Bring columns from one spreadsheet into another by a shared ID, the way VLOOKUP does — every row at once, unmatched rows listed, nothing uploaded.
- Compare two versions of an Excel file, cell by cell — Two versions of the same workbook, and you need the differences: rows added, removed and changed, down to the cell. Two steps in your browser, no upload.
- Make a Markdown table from a spreadsheet — Turn a CSV or spreadsheet export into a Markdown table with aligned columns and escaped pipes, ready to paste into GitHub or a wiki. Nothing uploaded.
- Get a CREATE TABLE statement from a CSV file — Turn a CSV into a CREATE TABLE statement and INSERTs for Postgres, MySQL, SQLite or SQL Server, column names from the header. In your browser, no upload.
Something went wrong with a file
- Excel stops at 1,048,576 rows — here is how to open the rest — Excel silently drops every row past 1,048,576, and saving makes it permanent. Open, check and query the whole file in your browser — nothing uploaded.
- My CSV opened as one column — Excel used semicolons — A CSV showing everything in column A was saved with semicolons by a European Excel. Why, how to tell, and how to convert it without retyping a number.
- Excel removed the leading zeros — get them back and keep them — Excel turns 00412 into 412 on open; saving makes it permanent. Check whether your file still has its zeros, keep them, or put them back — in your browser.
- The file is too large to open — in Excel, Notepad, or anything else — A CSV Excel will not open, Notepad chokes on and Sheets refuses is usually only long. Read it whole, count it, keep the rows you need — on your machine.
- Excel shows #### instead of the value — what it means and what is really in the cell — Number signs across a cell mean the column is too narrow, or the value became a negative date. The value is intact; here is how to see it and keep it.
- CSV UTF-8 or plain CSV — which one to save from Excel, and why the accents break — Excel offers CSV and CSV UTF-8. Pick the wrong one and accents and non-Latin names come out as ? or é. Which to pick, and how to repair a file.
- Excel says the file format and extension don't match — what the file really is — The warning means the file is not what its name says — usually a web page of a table, or plain CSV, named .xls. How to tell, and how to get the rows out.
- pandas says "Error tokenizing data. C error: Expected 5 fields, saw 7" — find the row and fix the file — read_csv stopped because a line has more fields than the heading. Find every such row, see why — an unquoted comma, a stray break — and fix the file.
- Google Sheets says the file is too large to import — the ten million cell limit — Sheets refuses a file past ten million cells, and a wide file gets there before a million rows. Count what you have and drop the columns you do not need.
- Excel says the file is locked for editing — who has it, how to clear it, and how to get at the data now — Excel says someone has the file open, when often it is you, a sync client or a stale lock. What the lock is, how to clear it, and how to read the data now.
Files exported from other tools
- The Shopify orders CSV: one row per item, blank order fields, and how to make it one row per order — Shopify writes one row per line item and fills the order columns only on the first. Fill them down and keep phones and totals as written, in your browser.
- Export Stripe data to CSV: which export to take, what it holds, and matching payouts to the bank — Which Stripe export to take, what the balance and payout files hold, how to match payouts to the bank, and loading one into a database or BI tool.
- The PayPal activity CSV: gross, fee and net, currency conversions, and the rows that are not sales — The PayPal download mixes sales, fees, refunds, transfers and currency conversions. Which rows to keep, why fees are negative, and how to filter it here.
- The QuickBooks report export: title lines above the heading, subtotal rows, and getting a plain table — A QuickBooks report export carries the company name above the heading and subtotal rows in the data. Strip them here and get a table any tool reads.
- The Salesforce report CSV: the copyright footer, totals rows, and 15- versus 18-character IDs — A Salesforce report export ends in a copyright footer and may carry a totals row; IDs come in two lengths. Drop the footer and match IDs, in your browser.
- The Google Analytics CSV: comment lines above the heading, a second table underneath, and numbers with commas — A Google Analytics download starts with # lines, ends with a second table, and writes numbers with commas and dates as 20240131. Make it one clean table.
- The Amazon Seller Central report: a tab-separated .txt that Excel opens as one column — Seller Central reports arrive as tab-separated .txt files with a summary line on top. Turn one into a clean CSV that keeps every SKU and id as written.
- The Etsy CSV downloads: orders in one file, items in another, and the statement that explains the fees — Etsy splits a sale across three downloads: orders, order items, and the monthly statement. Which holds what, and how to join them by order id here.
- The Xero report export: organisation and date-range lines above the headings, and totals in the rows — A Xero report export carries the organisation name and date range above the headings and total rows in the data. Strip them here for a plain table.
- The HubSpot contacts export: a hundred columns wide, timestamps with a timezone, and semicolons inside cells — A HubSpot export has a column per property, timestamps with a zone, and multi-value cells joined by semicolons. Keep the columns you need, as written.
- The Mailchimp audience export: a zip of CSVs by status, and twenty columns you did not ask for — Mailchimp exports an audience as a zip with one CSV per status and a tail of tracking columns. Which file is which, what to drop, how to compare them.
- The bank statement CSV: day-first dates, debit and credit in two columns, newest first — Bank downloads write dates day first, split money into debit and credit columns, and list the newest line first. One query here makes a clean ledger.
Preparing a file for another tool
- Import a CSV into Google Contacts: 3,000 at a time, under headings Google knows — Google Contacts takes up to 3,000 contacts per import and reads fields by their headings. Cut a bigger file into pieces and fix the headings here first.
- Prepare a CSV for Mailchimp: one address per contact, and no stray spaces — Mailchimp wants one email column in a CSV or tab-delimited file, with no spaces around an address. Find the near-duplicates and clean the column here.
- Upload a bank CSV to QuickBooks Online: three columns and one date format — QuickBooks Online takes bank CSVs as Date, Description and Amount, or with Credit and Debit apart. Turn a bank download into that shape here, no upload.
- Import customers into Shopify: one row per email, UTF-8, and tags in quotes — Shopify keeps only the last row sharing an email or phone. Choose which one survives, and fix the encoding errors behind Illegal quoting, here first.
How CSV files work
- Which separator and encoding does my CSV use? — Comma, semicolon, tab or pipe; UTF-8, Windows-1252 or UTF-16. How to read what a CSV really uses from its first line, and how to convert it. No upload.
- Excel dates showing as numbers like 45292 — what they mean and how to convert them — A date column full of five-digit numbers is Excel counting days since 30 Dec 1899. The arithmetic, the traps, and a one-click conversion to real dates.
- Why a German CSV opens as one column — and what 1.234 means — A German export uses semicolons between fields and a decimal comma. Why 1.234 is one thousand, not one point two, and how to convert the file safely.
- A French CSV: semicolons, decimal commas, and a space you cannot see — French exports use semicolons and group thousands with a space that is often a no-break space. What converts automatically here, and what does not.
- A Dutch CSV: semicolons, decimal commas, and dates written with dashes — Dutch exports use semicolons and a decimal comma, and write dates 31-12-2026 — dashes that look like an ISO date in the wrong order. How to read one.
- A Spanish CSV: semicolons, decimal commas, and identifiers that lose their zeros — Spanish exports use semicolons and a decimal comma. The quieter problem is reference numbers with leading zeros that a spreadsheet throws away on opening.
- An Italian CSV: semicolons, decimal commas, and accents that arrive broken — Italian exports use semicolons and a decimal comma, and often arrive as Windows-1252, which is why città shows up as città . How to read one properly.
- A Brazilian CSV: semicolons, decimal commas, and amounts with R$ attached — Brazilian exports use semicolons and a decimal comma, and often carry the currency inside the amount column, which stops any of it converting. What to do.
- A Swedish CSV: the dates are already right, the numbers are not — Swedish exports already write dates the international way, so only the separator and the numbers need work — and a thousands space stops those converting.
- A Swiss CSV: semicolons, a decimal point, and apostrophes inside the numbers — Switzerland writes 1'234.56: apostrophe thousands, decimal point, no comma. Why the usual European conversion does nothing here, and what to do instead.
- An American CSV abroad: the dates are the thing that breaks — An American CSV opens cleanly almost everywhere, which is the problem: its month-first dates are read as day-first by half the world, silently.
- A British CSV: it looks American, and the dates are the other way round — A British CSV uses commas and a decimal point like an American one, but writes dates day first. The two look alike until a date passes the twelfth.