Skip to main content
Develop Tools
← Return to usage guide

How to View Large CSV and TSV Files Without Excel

Consider parsing and table rendering separately for large CSV files. The current viewer uses workers and pagination, but not streaming or virtualization.

Flow for parsing large CSV with a Web Worker and displaying it in a table with Pagination
Flow for parsing large CSV with a Web Worker and displaying it in a table with Pagination

Check the original CSV/TSV in the browser

Files are not sent to DevelopTools servers; they are parsed in the browser using the selected encoding and delimiter. You can inspect tables, row and column counts, and search results without overwriting the original file.

View a large CSV in tabular form

Conclusion: Check the original file, decoding, parsing, and display separately

First, use 1 MB and 10 MB copies to determine encoding and delimiters, then proceed to the original file if needed. The current viewer decodes the entire file, parses up to 100,000 rows and 200 columns in a worker, and renders 25 to 200 rows at a time.

Whether 50 MB or 100 MB can be handled depends on device memory, column count, long fields, and the browser. Support is not guaranteed; back up the original file and prepare a small sample.

Reproduce the symptom with a minimal sample

id,status,message
1,OK,short text
... 100,000 data rows

Not only row count, but also column count, long fields around 100 KB, and quoted newlines increase memory use and parsing time.

Measure large capacities incrementally

TestAccount to checkSwitching decision
1 MB / 10,000 rowsEncoding, delimiter, and quotesFinalize settings
10 MB / 100,000 rowsParsing time, memory, and searchDetermine whether to continue on the device
50MB / 100MBBrowser responses, reloads, and restrictionsIf unstable, switch to a CLI or database.
500,000 rows / 1,000 columnsExceeds the current limitDo not use for the purpose of complete display

Pagination reduces displayed DOM, but the analysis results themselves remain in Memory. Workers are not Streaming either, so this is not a universal solution for huge Files.

Open the original file without converting it

  • Do not overwrite the CSV/TSV being investigated; compare the same file in spreadsheet software and the viewer.
  • When selecting a file or using drag and drop, you can decode byte sequences as UTF-8 or Shift_JIS. Pasted input is already a browser string, so use the original file when comparing encoding switches.
  • If the first row is a header, turn ON "Use first row as headers"; if the data has no header, turn it OFF.
  • After loading, check the data row count, column count, detected or selected delimiter, and warnings.

The Viewer retains Fields as strings. It does not convert 00123, 12345678901234567890, 1-2-3, true, or =SUM(A1:A10) into Number, Date, Boolean, or Formula.

Compare automatic delimiter detection and manual specification

Format and candidatesActual boundaryChecks when one column or column shifts occur
Common CSV formatComma(,)Do not treat a Comma within a quoted Field as a column boundary.
TSVTAB(U+0009)Distinguish from Space and the string "\t".
Semicolon-delimitedSemicolon(;)Check dialects by region and output software
Pipe-delimitedPipe(|)Also check quote rules when a value contains a pipe

Automatic detection parses candidates from the first 50,000 characters and selects candidates whose column count is stable across multiple rows. It can be incorrect for files whose text fields contain many particular symbols, so if the result looks unnatural, manually select comma, TAB, semicolon, or pipe one at a time. Do not determine the delimiter from the extension or MIME type alone.

Check UTF-8, Shift_JIS, and BOM separately

Mojibake occurs when the same byte sequence is decoded with a different encoding. Select a file, first try UTF-8, and if it is unreadable, switch to Shift_JIS and reload. The current viewer does not auto-detect encoding, so visually check the selected result, Japanese text, symbols, and platform-dependent characters.

Account to checkHandling in the ViewerPoints to note
UTF-8Decode with TextDecoder("utf-8")Check representative lines containing emoji and Japanese
Shift_JISDecode with TextDecoder("shift_jis")Measure CP932-specific characters against the browser implementation and original file
UTF-8 BOMRemove the leading U+FEFF and do not leave it in the headerDo not display a diagnostic for BOM presence itself on screen.
LF / CRLFParse both as record delimitersDoes not display diagnostics for mixed states or adopted code

Adding a BOM does not necessarily fix every environment. Check the destination's import method and encoding requirements, and test with a copy of the original file.

Check the number of columns, double quotes, and line breaks within cells together

id,name,memo
1,Alice,"Tokyo, Japan"
2,Bob,"Line 1
Line 2"
3,Carol,"He said ""Hello"""

Processing CSV only with line.split(",") or text.split("\n") misidentifies quoted commas and quoted newlines as column and record boundaries. The current viewer tracks whether each character is inside or outside quotes and converts "" within fields back to one ". It preserves empty fields and trailing delimiters as column positions and does not trim whitespace arbitrarily.

  • The column-count warning is the number of data rows whose column count differs from the maximum. Currently, the applicable row numbers are not displayed.
  • Unclosed quotes become warnings. Do not repair based only on displayed results; check quotes in the original file.
  • An empty header is displayed as "Column n", and duplicate headers are displayed as names such as "name (2)", but the original data is not rewritten.
  • A blank line may remain as a record with one empty field. Determine the meaning of intermediate empty fields, empty records, and missing values according to the input system specification.

Separate automatic conversion by Excel and similar applications from the original CSV

Original fieldPotential display behavior in spreadsheet softwareValues to check in the Viewer
0012312300123
12345678901234567890Scientific notation or a precision change after the 15th digitall characters
1-2-3 / JAN1Date-like valuesoriginal string
1e10A number in scientific notation1e10
=SUM(A1:A10)FormulaText that must not be executed

If the original string remains in the Viewer, the change may have occurred during Import or display rather than CSV saving. If the original CSV already contains converted values, the Viewer cannot restore the original zeroes or digit count. When importing into Excel, also check Microsoft's Text/CSV Import and Automatic Data Conversion settings.

What you can check with the current CSV and TSV file viewer

CategoryFeaturesBoundaries to understand
InputSelect CSV / TSV files, drag and drop, or paste textDo not perform batch loading of multiple files, URL retrieval, or history restoration.
Character encodingManually select UTF-8 or Shift_JIS and remove a leading UTF-8 BOMAutomatic encoding detection and diagnostic display for BOM and line-ending codes are unsupported
DelimiterAutomatically detect or manually select comma, TAB, semicolon, or pipeCustom delimiters are not supported. Auto-detection is not perfect.
CSV parsingProcess double quotes, quoted commas, escaped quotes, quoted newlines, and empty fields with a custom parserNot a strict RFC 4180 Validator
headingAllow the setting to use the first row as headers to be turned ON or OFFSupplement empty headers with column numbers, and assign sequential on-screen identifiers to duplicate headers
TableLine numbers, search across all columns, column header sorting, pagination of 25–200 rows, and adjustable column widths and row heightsColumn filtering, a raw-only view, virtual scrolling, and CSV re-export are not supported
DiagnosticsDisplay data row count, visible column count, delimiter, unclosed quotes, and per-row column count mismatchesIndividual display of mismatched row numbers, BOM, encoding, and LF/CRLF is not supported.
Large capacityParsing runs in a Web Worker and retains up to 100,000 data rows and 200 columns for paginated displayThis does not use Streaming, Chunk Parse, or Virtualization; excess items are excluded from display

Do not conclusively identify causes based on features absent from the screen. In particular, the current tool does not support automatic detection of character encodings and delimiters, raw view, detailed line-by-line diagnostics, or arbitrary large-file sizes.

Implementation boundaries for browser processing, large files, and privacy

The file's ArrayBuffer, decoded text, parsed rows, and search keywords are processed in the browser; there is no processing that sends CSV bodies, file names, header names, or cell values through fetch or sendBeacon. Loaded content is not saved to localStorage and is not restored after reload. However, site-wide advertising or analytics traffic and a user's sending of pasted CSV bodies are separate matters. For sensitive data, also check organizational policy and browser extensions.

Parsing is isolated in a Web Worker but reads the entire file into memory. Pagination limits DOM nodes, but this is not virtualization or streaming parsing. Because it stops at 100,000 data rows and 200 columns, it cannot claim that it will always open 100 MB or fully display 500,000 rows. Measure device memory and responsiveness starting with small sizes such as 1 MB and 10 MB.

Display strings that look like formulas and <script> as cell textContent; do not execute them as formulas, HTML, or JavaScript. Separately verify behavior after copying or importing into spreadsheet software.

Troubleshooting when the issue is not resolved

  • Also open the original file in a text editor to check where commas, tabs, quotes, and line breaks actually occur.
  • Create a copy of only a few rows and check whether it reproduces with the same encoding, delimiter, and header settings.
  • For more than 100,000 rows or 200 columns, do not confuse display limits with discrepancies in the source data.
  • For raw text differences between two files, use Text Diff; if you only need to know whether files are identical, use hash generation and comparison. This is not a semantic diff by CSV column.
  • Use JSON Tree Viewer to inspect JSON hierarchy after converting CSV to another format. The current site does not provide a dedicated CSV-to-JSON conversion tool.

Check primary sources for the specification and software

RFC 4180 is an Informational RFC that summarizes a common CSV format; it does not mean every real-world CSV uses the same Dialect. Prioritize IANA registration for TSV, MDN for Browser File reading and Decode, and Microsoft Support for Excel-specific automatic conversion.

Summary

  • Measure on the device incrementally from 1 MB.
  • A Worker reduces UI blocking but does not eliminate Memory usage
  • Understand the display limit of up to 100,000 data rows and 200 columns

Keep the original file, then isolate encoding, delimiter, header, quotes, line breaks, column count, and spreadsheet software auto-conversion in order. This avoids fixing CSV and TSV problems based only on guesses.

Example: Reproduce how to inspect large CSV and TSV files

Do not overwrite the original file. First, inspect a copy with a few rows: "id,status,message / 1,OK,short text / ... 100,000 data rows".

Not only row count, but also column count, long fields around 100 KB, and quoted newlines increase memory use and parsing time. After settings are decided, open the original file under the same encoding, delimiter, and header conditions, and compare before and after the problem.

  1. Load a Copy of the original CSV/TSV by selecting a File or using Drag & Drop.
  2. Select UTF-8 or Shift_JIS and check whether Japanese characters and symbols display correctly.
  3. Switch from automatic delimiter detection to manual selection and compare whether the column counts align.
  4. Check headers, quotes, empty fields, line breaks within cells, and warnings.
  5. Compare the original file with the spreadsheet software display, determine the cause, then correct it.

Do not overwrite the original file during investigation. Do not assume data was repaired based only on the viewer display; also compare it with the specifications of the input source and destination.

Frequently asked questions

Are CSV and TSV contents sent to a server?
CSV content, filenames, headers, cell values, and search keywords are processed in the viewer's browser and are not sent to or stored on DevelopTools servers. Check site-wide advertising and analytics traffic and browser extensions separately.
Can character encoding and delimiters be determined automatically and completely?
No. Select UTF-8 or Shift_JIS manually for character encoding, and delimiter auto-detection is also a Heuristic that selects among Comma, TAB, Semicolon, and Pipe based on stable column counts. Check the result manually.
Can all 500,000 rows or a 100 MB CSV be displayed?
Cannot guarantee. The current Viewer loads the entire File into Memory and displays up to 100,000 Data rows and 200 columns. It is not Streaming or Virtualization, so try progressively from a small Copy.