Updated 2026-10-17
CSV Character Limit: How Many Characters Can a Cell Hold?
A CSV file has no character limit in the format. The ceilings come from the software that reads it: Excel stops a cell at 32,767 characters, Python's csv module refuses a field over 131,072 bytes by default, and Google Sheets drops a cell with more than 50,000 characters when a file is converted from Excel.
Quick answer
RFC 4180, the document that defines the CSV format most tools follow, describes a field as text between separators and never states a maximum length. So the honest answer to how many characters a cell can hold is that the file itself does not care. What cares is the reader. A field can be megabytes long on disk and still be a valid CSV, and it can also be the exact thing that makes a reader throw an error or silently drop data. The useful question is which ceiling is in front of you, and that changes with the tool.
The format sets no character limit
Section 2 of RFC 4180 defines a field as a run of text that may be enclosed in double quotes and may itself contain commas, quotes and line breaks. There is no length in the definition, and the MIME registration in the same document lists only charset and header as parameters. No size, no maximum field count, no character ceiling.
That silence is deliberate. The RFC describes a format that was already in wide use, not one designed to a spec, and it says as much. The practical effect is that a long value is never a problem for CSV as a format. It becomes a problem one layer down, where a parser or a spreadsheet decides what it is willing to hold.
What we measured: long fields in Python's csv module
To see where the first ceiling sits, we wrote two-column CSVs with a single long value in the second column and read them back with the standard library csv module on 2026-10-17, using Python 3.13.5. The module reported its default field limit as 131,072 bytes.
| Field length | File on disk | Result with default limit |
|---|---|---|
| 100,000 bytes | 100,013 bytes | read, field length 100,000 |
| 140,000 bytes | 140,013 bytes | field larger than field limit (131072) |
| 1,000,000 bytes | 1,000,013 bytes | field larger than field limit (131072) |
| 5,000,000 bytes | 5,000,013 bytes | field larger than field limit (131072) |
One call changes the outcome. After setting the limit higher, the same 5,000,000-byte field read in 0.07 seconds. Nothing about the file changed between the failing run and the successful one. The parser had a ceiling and the file crossed it, which is the whole story of a long field, at every layer.
Where the ceilings actually sit
Four layers show up in most reports, and they are worth reading together so you can tell which one you are hitting.
| Layer | Limit | What you see |
|---|---|---|
| CSV format (RFC 4180) | none stated | nothing: the file is fine |
| Excel worksheet cell | 32,767 characters | long values cut off or split across cells on import |
| Python csv module | 131,072 bytes per field by default | field larger than field limit (131072) |
| Google Sheets | cells over 50,000 characters removed on Excel conversion | a whole cell vanishes while the rest imports |
The Excel figures are from Microsoft's Excel specifications and limits page: a cell can contain 32,767 characters, a column width is capped at 255 characters, a header or footer holds 255 characters, and a cell takes at most 253 line feeds. The same page gives the familiar worksheet grid of 1,048,576 rows by 16,384 columns. The Google figure is from Google's Drive file-size page, which states that a spreadsheet holds up to 20 million cells or 100MB and that converting a file from Excel removes any cell with more than 50,000 characters.
What puts a very long value in one cell
Long fields are rarely the point of the export. They appear when a column that was meant to hold a short value ends up carrying something larger.
- A postal address written on several lines, stacked into a single column instead of split into street, city and postcode.
- A product description, a review, or a ticket body kept as one text value.
- A block of JSON or a configuration string stored inside one cell.
- A base64 blob, which grows the field by roughly a third against the bytes it encodes.
When those values are quoted, the file stays valid. That is also why a file with long quoted fields can look like it has more rows than it does: a line break inside a quoted field is part of the field, not the start of a new record. The article on quotes in CSV files covers the exact rules that keep that field together.
How to handle a field that is too long
- Count characters per field, not file size. A column that is far wider than the others is the one to look at first, and the CSV analyzer lists the header and column widths so it stands out.
- Split the value if it has structure, turning an address into its parts or a packed log line into columns.
- Move the long value out of the table if it is genuinely one block of text, keeping the rest as CSV and storing that column as JSON.
- Check the destination limit before you export, because a field that is fine in your reader may be over the ceiling in the next tool.
Two neighbouring questions come up in the same pass. If the file is wide rather than deep, the ceiling you meet is the column count, covered in how many columns a CSV can have. If it is long instead, the row grid is the limit, covered in Excel row limits. And when a long numeric value loses its leading digits instead of its tail, that is the precision issue described in keeping leading zeros in CSV.
Frequently asked questions
How many characters can a CSV file hold in one cell?
There is no character limit in the CSV format itself. RFC 4180 defines a field as text between delimiters and never names a maximum length. Every ceiling you meet belongs to the program reading the file: Excel stops a cell at 32,767 characters, Python's csv module rejects a field over 131,072 bytes by default, and a database or warehouse loader has its own column width.
What is Excel's character limit for a CSV cell?
Microsoft's Excel specifications and limits page states that the total number of characters a cell can contain is 32,767, that a column width is capped at 255 characters, that a header or footer holds 255 characters, and that a cell can carry at most 253 line feeds. Those are worksheet limits, so a field longer than 32,767 characters survives in the CSV on disk but has nowhere to land once the file opens in a worksheet.
Why did my long CSV field fail to read?
Most often because a parser imposes its own field ceiling. In our test on 2026-10-17, Python 3.13.5 read a 100,000-byte field without trouble, then raised field larger than field limit (131072) on fields of 140,000, 1,000,000 and 5,000,000 bytes. The default limit is reported by csv.field_size_limit(). Raising it with the same call and re-reading let a 5,000,000-byte field load in 0.07 seconds.
Is there a limit on how many characters Google Sheets will take?
Google documents one directly. Its Google Drive file-size help page says a spreadsheet can hold up to 20 million cells or 100MB, and that when you convert a file from Excel to Google Sheets, any cell with more than 50,000 characters is removed in Sheets. A field that large therefore survives in the CSV but can disappear on import.
Does a long field break the CSV format?
No, as long as it is quoted correctly. RFC 4180 allows a field to contain commas, quotes and line breaks when the field is wrapped in double quotes and any inner quote is doubled. A long description with paragraphs inside a quoted field stays one field as far as a spec-compliant parser is concerned, which is why a single cell can look like several rows in a text editor.
What usually puts a very long value in a CSV cell?
A few patterns account for most cases: a multi-line postal address collapsed into one column, a product description or review kept as one value, a block of JSON or a config string stored inside a single cell, and a base64 blob. Each one turns a column that was meant to hold a short label into a text field sized like a document.
How do I find out which column is too long?
Look at the character count per field rather than the file size. The CSV analyzer shows the header, the field count per row and the width of each column, so a column that is far wider than the rest stands out before a reader refuses the file. Once you know which column and which row, the fix is a targeted edit rather than a rewrite of the whole file.
Should I split a long field or change format?
Split the field when the long value has structure inside it that the destination needs, such as an address that should become street, city and postcode columns. Change format when the value is genuinely one block of text and the destination cannot store it, for example moving a description column into JSON while the rest of the table stays a CSV. The point is to keep the CSV under whatever ceiling the next tool enforces instead of discovering it at import time.
Sources
- IETF, RFC 4180: Common Format and MIME Type for CSV Files, section 2 and section 3.
- Microsoft Support, Excel specifications and limits (32,767-character cell, 255-character column width and header or footer, 253 line feeds per cell, 1,048,576 by 16,384 worksheet grid).
- Google, Google Drive file-size help page (20 million cells or 100MB; cells over 50,000 characters removed when converting Excel to Sheets).
- Python 3.13.5 standard library csv module, measured 2026-10-17 (default field_size_limit 131,072 bytes).
Related reading
Check your file before a reader does
Paste the first rows into the CSV analyzer to see the header, the field count per row and how wide each column is, so a column that is about to exceed a limit shows up before the import does. If the file turns out to be too big rather than too wide, the CSV splitter cuts it down by rows or by size.
Related reading
Data Cleaning — other guides that pair well with this one.
Browse all guides in the NoCodeCSV blog.