Skip to content

Troubleshooting

That is the default. The grid is an optional editor so it does not hijack every CSV. Open it with Open in Grid Editor in the title bar, the Explorer context menu, CSV: Open in Grid Editor, or Open With…CSV Grid Editor.

To always open matching files in the grid, set workbench.editorAssociations (for example "*.csv": "csv.gridEditor"), or use Open With…Configure default editor…. See Getting started.

If you already set the grid as default and a file still opens as text, another association is winning — check workbench.editorAssociations for a more specific pattern covering that file.

The delimiter was detected incorrectly, which happens on files with very few rows or an unusual mix of punctuation. Override it from the toolbar dropdown, or set csv.delimiter for the workspace. The override is remembered per file.

The first data row is being used as headers

Section titled “The first data row is being used as headers”

Uncheck Header row in the toolbar. If most of your files have no header, set csv.hasHeaderRow to false for the workspace.

Column types are inferred from the data. A column is only numeric when at least 95 percent of its non-empty values parse as numbers, so a single stray value such as n/a or 1,2 can tip it to text.

Find the offending values with the Statistics panel’s frequency table, or filter the column with Is not empty plus a text condition. Clean them with a find and replace, or a replace pipeline step.

A row has a different number of fields than the header. Almost always this is an unescaped quote or delimiter earlier in the file. Click the ragged-row count in the status bar to normalize, which pads short rows and trims trailing blank cells, or open the file as text where the offending lines are marked in the Problems panel.

Normalizing never discards non-empty data: extra cells beyond the header width are kept.

Two possibilities. Either a filter is active, in which case the status bar reports it and offers a link to clear it, or the file is larger than csv.maxRows and a banner says so.

Find covers the rows loaded in the grid. On a file larger than csv.maxRows, raise that setting or use the SQL panel, which always queries the whole file.

Steps that evaluate code require a trusted workspace. Check the trust banner, and check csv.pipelines.allowScripts. The pipeline panel says explicitly when these steps are disabled.

Open the CSV Pipelines output channel with CSV: Show Pipeline Log. It records each step’s row counts, timing and the full error text, including anything an external command wrote to standard error.

The command must read from standard input and write the result to standard output. Anything written to standard error is logged but not treated as data. A non-zero exit code fails the step. Test it in a terminal first:

Terminal window
cat data.csv | python3 scripts/clean.py | head

Script paths are workspace-relative and must resolve inside the workspace folder. Paths escaping the workspace are refused.

Every edit rewrites the document text, which is proportional to file size. For bulk changes on large files, prefer a pipeline: it applies the whole transformation in one pass and one undo step, rather than one edit per cell.

The grid is empty but the file has content

Section titled “The grid is empty but the file has content”

If the file uses an encoding VS Code did not detect, the text document itself will look wrong too. Use Reopen with Encoding from the Command Palette.

Open an issue at https://github.com/bamr87/csv-vscoode/issues with the extension version, your VS Code version and platform, what you expected, and a small file that reproduces the problem. Output from the CSV Pipelines channel helps for pipeline issues.