Skip to content

CSV and Excel limits in ChatGPT: about 50 MB, and no token cap

What ChatGPT acceptsLast checked

Short answer

Spreadsheets get their own rules. Around about 50 MB, depending on row size, and crucially they are exempt from the 2 million tokens cap that truncates documents. That exemption is why a large dataset often works fine when a report of comparable length hits the context window limit and gets cut off.

The exemption is the important part

Spreadsheets are one of the file types ChatGPT accepts, and OpenAI's File Uploads FAQ states the token cap on text and document files, then adds directly that this limitation does not apply to spreadsheets.

That single sentence explains a lot of otherwise confusing behaviour. A 300 page report gets truncated silently. A CSV with 200,000 rows goes through. Both are enormous amounts of text, and they are governed by different rules.

DocumentsSpreadsheets
Size ceiling512 MBabout 50 MB
Token cap2 million tokensExempt

So for spreadsheets, size is genuinely the limit. For documents it almost never is.

CSV beats XLSX nearly every time

CSV is barely a format at all: values separated by commas, with no formatting layer to describe because none was ever defined. It is informally standardised by RFC 4180, written years after the format was already everywhere, and it appears in the UK National Archives format registry as plain delimited text. That looseness is exactly why exporting to it shrinks a file so much.

An XLSX file carries far more than its data: cell formatting, styles, fonts, conditional formatting rules, embedded charts, images, and sometimes cached pivot table data. None of that is what you want analysed. If the workbook itself, rather than a CSV export of it, is the thing that will not go through, see how to upload a large Excel file to ChatGPT.

Exporting to CSV strips all of it and leaves the numbers. Files routinely drop by an order of magnitude, and nothing ChatGPT would have used is lost. It is the same principle behind reducing file size for ChatGPT generally: strip what the model was never going to read.

  1. Open the workbook

    Excel, Numbers, LibreOffice, Google Sheets.

  2. Save or export each sheet as CSV

    CSV holds one sheet, so a multi sheet workbook becomes several files. Only export the sheets that matter.

  3. Upload the CSV

    Smaller, faster, and no formatting to get in the way.

Formulas do not survive, results do

CSV keeps the computed values, not the formulas that produced them. That is usually what you want, since ChatGPT is analysing outcomes. If your question is genuinely about the formula logic, paste the formulas in as text separately.

Making the data readable

Spreadsheets built for humans often confuse analysis. A few things that consistently help:

One header row, at the top. Merged cells, multi row headers and a title row above the headers all make it harder to work out what a column is.

No blank rows in the middle. They read as the end of the data.

Consistent columns. A column with numbers in most rows and text in a few is a common source of wrong answers, because it is unclear what the column is.

Say what the columns mean. Especially abbreviations. q3_rev_gbp_net is obvious to you and guessable at best to anything else. The same habit pays off generally, see ChatGPT document analysis tips for the rest of it.

If the file is still too large

If ChatGPT has already told you the file is too large, four things shrink a spreadsheet without losing the analysis:

Send fewer columns. Most analyses need a handful. Delete the rest before uploading.

Send a sample. For "what patterns are in this", a few thousand representative rows produce nearly the same answer as two hundred thousand, the same sampling trick used for a large JSON dataset.

Split by period or category. Twelve monthly files often work better than one annual one, because each question is asked against the relevant slice, the same logic behind splitting a long document for ChatGPT.

Aggregate first. If your question is about totals by region, upload the totals by region rather than every transaction, the same discipline as pulling specific data out of a document rather than uploading the whole thing.

For approaches beyond these four, see how to bypass the ChatGPT file upload limit.

Working with the data once it is in

Ask for the analysis rather than the summary. "Summarise this spreadsheet" produces a description of the columns. This produces something useful:

Group by region, sum revenue, and tell me which regions grew and which shrank against the previous quarter. Show the numbers you used.

Requiring the numbers matters. It lets you check the arithmetic, and arithmetic over a large dataset is exactly where confident mistakes happen.

Common questions

What is the size limit for a CSV in ChatGPT?

Around 50 MB, and OpenAI notes it depends on the size of each row rather than being a hard number. Approximate is how they state it, so treat it as approximate.

Are spreadsheets subject to the 2 million token limit?

No, and this is the useful part. OpenAI states explicitly that the token cap does not apply to spreadsheets. That is why a large dataset often goes through where a document of similar length would be truncated.

Should I upload XLSX or CSV?

CSV, usually. It is far smaller because it carries no formatting, styling or formulas, and ChatGPT works from the data rather than the presentation. If your workbook has several sheets that matter, export each to its own CSV.

Why does it say my Excel file is too large when it looks small?

XLSX carries a lot besides data: formatting, styles, embedded charts and images, sometimes cached pivot data. Exporting to CSV usually collapses the size dramatically without losing any of the numbers.

Keep reading