CSV VIEWER / MANUAL
CSV Viewer Manual
Open a table, understand its structure, and keep the part you need. The viewer is read-only. It does not upload your source, edit cells, calculate formulas or save a session automatically.
Open and interpret a source
Choose Open file, drop one file onto the workspace, or choose Paste data. Try the built-in example to explore without your own file. Import happens before replacement: a parse error or cancelled import keeps the previous table. Replacing an open table asks for confirmation.
CSV, TSV, semicolon and pipe-delimited text share the same parser. Auto detection examines complete logical records within the first 256 KiB, up to 50 records. An ambiguous sample requires an explicit delimiter in File settings. A one-column file can therefore need an explicit choice. Filename extensions do not determine a delimiter.
By default, the first delimited record supplies column names. Turn that off for files without a header. Names retain spaces, punctuation, duplicate text and empty strings. Display labels add column positions for duplicates and empty names; they do not rewrite the source names. Rows with fewer fields retain missing positions. Longer rows create additional columns. No extra fields are discarded.
A delimiter inside double quotes belongs to the cell. A quote inside a quoted cell must be doubled. Newlines inside quoted cells remain part of the same record. CR, LF and CRLF record endings are supported; embedded endings retain their characters. A terminal record ending adds no extra row, while an additional blank record is retained. Quotes inside unquoted text, unfinished quotes and text after a closing quote produce an error with a record and location.
File encodings
The default recognizes UTF-8 and UTF-16 byte-order marks and otherwise requires valid UTF-8. Invalid bytes produce an error rather than replacement characters. Choose UTF-16 LE, UTF-16 BE or Windows-1252 explicitly when appropriate. Pasted text is already Unicode. Delimited NUL content is rejected as unsupported binary text. An encoding or delimiter reparse is staged; failure preserves the active table and its settings.
JSON and JSON Lines
Supported JSON shapes include arrays of objects, arrays of arrays, scalar arrays and single objects. Object keys become columns in first-seen order. Missing properties, an explicit empty string and JSON null remain distinct. Nested values appear as compact JSON inside one cell; the app does not flatten them into invented columns.
JSON arrays initially retain every row. You may explicitly interpret the first array row as names. Wrapped objects can contain eligible collections. If there is more than one, a selector asks which collection to show. Duplicate object keys and unpaired Unicode surrogates are rejected. Keys such as __proto__ remain ordinary text. Numeric tokens retain their exact spelling, including long integers, decimal precision and negative zero.
Choose JSON Lines / NDJSON explicitly or open a file with the corresponding extension. Each nonblank physical line must contain one valid JSON value. Blank lines are skipped and counted. Errors identify the physical line. A quoted newline escape inside a JSON string is supported; a physical newline splitting a JSON value is not.
XLSX: stored values only
The local XLSX reader handles supported ZIP compression, workbook relationships, shared strings, inline strings, booleans, stored numeric values, errors and sparse cell coordinates. Choose a sheet in the source strip. Each sheet initially retains its first row. Switching sheets is staged; a failed switch keeps the active sheet. Visited sheets retain their view settings and selections in memory. Each sheet’s selections refer to its own source positions, with a 100,000-row selection ceiling across the open workbook.
Formula cells show the stored cached value. A formula without a cached result is marked Stored formula result unavailable. The app does not recalculate formulas, run macros or follow external relationships. Inspect cell shows formula text, stored value and missing-cache metadata. Some custom formatting, charts, merged-cell layout and other spreadsheet presentation are outside this table view.
Recognized date styles display values using the workbook’s 1900 or 1904 date system. Excel’s serial 60 in the 1900 system displays 1900-02-29 as an Excel compatibility exception; that is not a real Gregorian date. Stored serial values remain available for inspection and export. Other unsupported number styles retain the stored numeric text.
Macro-enabled or encrypted content, ZIP64, unsafe part paths, duplicate parts, malformed XML, XML document types/entities and failed ZIP integrity checks are rejected. External references are never fetched. A browser without local raw-deflate decompression receives an actionable error; export a CSV or JSON copy from a trusted spreadsheet program instead.
Read, search and sort
The table shows 50 data rows per page by default, with 25, 100 or 250 available. Source row positions stay visible. Long cells are visually shortened in the table; Inspect cell provides the full value without changing it. Select a cell with a pointer or choose its data row and column in the inspection dialog. Missing cells display a dash; an explicitly empty cell remains empty.
Search is a case-insensitive literal substring across visible columns. Hidden columns are excluded until you explicitly enable searching them. Search combines with filters. Use up to ten conditions, matching all or any of them. Empty-or-missing, missing-only and present conditions let you distinguish incomplete rows from empty strings.
Select a column heading to sort ascending, then descending. Text uses a fixed English collator; Natural sorts digit sequences in text. Numbers compares exact decimal values, including integers beyond JavaScript’s safe integer range. Invalid or empty numeric cells follow valid numbers in either direction. Equal values keep source order. Numeric-looking parsing is bounded to 4,096 digits and an explicit exponent of magnitude at most 10,000. It does not interpret currency symbols, thousands separators, dates or arbitrary expressions.
Columns controls visibility and optional pinning of the first visible column. At least one column stays visible. Selections use source positions and remain selected when search or filters hide their rows. The status strip counts selected rows outside the current view. Reset view clears search, filters and sort and restores visible columns while retaining selections.
Column summary and structural review
Column summary counts all source rows or only matching rows, as explicitly selected. Missing and explicitly empty cells are separate. Distinct counts and the five most frequent values use literal strings, with ties in first-seen source order. Numeric-looking minimum and maximum use the exact bounded comparator. A structural review reports duplicate names, uneven widths, missing and empty cells, duplicate row groups and formula-like values. These observations do not validate, certify or repair a dataset.
Copy and download policies
Choose all matching rows, the current page, or selected matching rows. Selected matching means the intersection of selection and current view, in current view order. Selected rows outside that scope are excluded and counted. Visible columns are the default; all columns is an explicit choice.
CSV and TSV use UTF-8, CRLF record separators and double-quote escaping. UTF-8 BOM is optional and off initially. Including the header uses the preserved source names. XLSX offers displayed values or stored values explicitly. These exports represent the chosen rectangular view, including normalized missing positions; they are not byte-identical reconstruction of a source.
Prefix formula-like values is on initially for delimited output. It adds an apostrophe to values or names beginning with recognized formula or control prefixes, including leading whitespace, fullwidth variants and negative numeric text. This changes data. The count tells you how many values were prefixed. Quoting alone is insufficient protection. The prefix reduces risk but cannot guarantee safety in every spreadsheet program. Exporting detected formula-like values unchanged requires an acknowledgement. Clipboard and download use the same policy.
The JSON view report has schema, app and engine version 1.0.0. It contains positional column metadata, row arrays, source row IDs, original row widths, types, missing flags, source format and view settings. It keeps duplicate and empty column names without object-key overwrite. It is a report envelope, not the original JSON document. A JSON NUL string is supported, but CSV/TSV export of it is refused; choose JSON instead.
Markdown tables escape user HTML, pipes and Markdown controls and convert cell newlines to generated line-break tags. A Markdown review summary excludes cell examples by default. Only an explicit checkbox includes up to five examples. Reports can include the source filename and settings, so review them before sharing.
Original file bytes downloads the selected source file, including its original BOM, line endings and all rows. Filters, column visibility and prefix settings do not apply. The app warns about active-content risks. Original bytes are unavailable for pasted data. Downloads happen only after you ask; clipboard failure opens a manual-copy dialog and does not claim success.
Resource limits
| Resource | Ceiling |
|---|---|
| Delimited file / JSON or JSONL / XLSX | 10 MiB / 5 MiB / 5 MiB |
| Decoded text / each cell | 20 MiB / 256 KiB of UTF-8 |
| Logical rows including an enabled header | 100,000 |
| Columns / normalized cells | 200 / 1,000,000 |
| JSON nesting / eligible collections | 32 levels / 50 |
| ZIP entries / sheets | 2,048 / 100 |
| Workbook expanded bytes / each XML part | 32 MiB / 4 MiB |
| Export / clipboard | 16 MiB / 1 MiB of UTF-8 |
| Markdown table | 2,000 rows and 50 columns |
| Filters / search | 10 / 1,000 UTF-16 code units |
| Selected rows | 100,000 in the active sheet |
The limits prevent silent truncation and reduce memory pressure; they do not promise that every device can process the largest allowed input. Use fewer rows or columns if your browser is constrained. Cancel an active job to keep the preceding table and view. Local worker messages from cancelled jobs cannot replace later work.
Memory, appearance and navigation
The source, table, filters and selections live in this page’s memory. There is no session recovery, automatic save, account sync or database. Keep an explicit copy before clearing, replacing, closing or leaving. The app offers a leave guard for ordinary same-tab links and an option to open the destination in a new tab. Browser tab closure uses the browser’s own prompt, which may depend on browser interaction rules.
System, Light and Dark appearance use Mycelgrid’s shared preference. This is the only app-related persistent preference. The app’s teal, white and graphite palette responds immediately. Navigation and dialogs support keyboard use; Escape closes the active dialog without handing focus to an unrelated navigation control.