CSV Transpose
Turn CSV rows into columns with an explicit header choice and exact text values, without uploads.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
CSV Transpose swaps rows and columns in a rectangular table, with an explicit choice to include the first record or exclude it as a header before rotating the data.
How to use it
- 1Paste or load a CSV and select comma, semicolon or tab.
- 2Choose whether the first record is included in the matrix or excluded as a header.
- 3Transpose, review the output dimensions and preview, then download the CSV.
Example
- Input
- month,Jan,Feb sales,10,20 cost,7,9
- Output
- month,sales,cost Jan,10,7 Feb,20,9
Including all records moves the first row to the first column.
What happens to your data
The table is parsed and transposed on this device. Cell values stay in browser memory until you clear or leave the page, and the CSV export is created locally without uploading the matrix.
Last updated October 2026
Transpose a rectangular CSV so each original row becomes an output column and each original column becomes an output row. CSV Transpose makes the treatment of the first record explicit: include it in the matrix, or exclude it as a header and transpose only the data. It does not invent column names or convert values to numbers.
This helps when a small report has periods across columns but another application expects periods down rows. It also works for headerless matrices and TSV data. Review the output dimensions and preview before downloading, especially when your source has many more rows than columns.
How it works
Paste text or choose a local UTF-8 file, then select its delimiter. Include every record preserves the first record and moves its cells into the first output column. Exclude first record as a header removes that record before transposing, so its labels do not appear in the output. The output is a plain matrix with no additional header. These modes do not attempt to infer whether the first row contains labels.
For an included matrix with R rows and C columns, the output contains C rows and R columns. The value at input row r, column c moves to output row c, column r. Nothing is aggregated or merged. A one-row input becomes one output column; a one-column input becomes one output row. Empty cells remain empty strings and are quoted explicitly in exports. A header-only source works when included, but is rejected in data-only mode because no matrix remains.
All input records must contain the same number of fields, even a first record you intend to exclude. The CSV reader respects quoted delimiters, escaped quotes and quoted line breaks. A short or long record raises an error instead of being padded or truncated. Duplicate or empty first-row labels are allowed because transpose works by position, not by a header-name lookup. A BOM at the start is excluded from the first field.
General input bounds are 2 MiB, 10,000 records, 200 fields per record and 200,000 cells. Transposition has a tighter shape limit: at most 200 included records may become output columns. This allows up to 200 input records in include-all mode or 201 total records in data-only mode. Output is limited to 10 MiB. For larger tables, split the data deliberately and consider how those pieces should be recombined; transposing independent chunks does not automatically recreate one whole table.
The preview shows up to eight output rows and six columns, abbreviating cells longer than 140 characters. Column numbers in the preview are interface labels and are not written into the file. Download contains the complete transposed matrix. Changing input, delimiter, first-record handling or formula protection clears the previous result. Fields retain exact string content, including leading zeros, long numbers and spaces. Optional apostrophe protection alters formula-like cells on export; the preview remains original text. Spreadsheet applications can still infer types or interpret protection differently, so choose text import settings when needed. All reading, transposing and export processing takes place in the browser.
Worked example: Move month labels into the first column
- Input
- month,Jan,Feb sales,10,20 cost,7,9 Include every record; formula protection off
- Result
- month,sales,cost Jan,10,7 Feb,20,9
The 3 × 3 matrix stays 3 × 3; the first input record becomes the first output column.
Common use cases
- Rotating a small monthly report between row and column layouts
- Reorienting a headerless matrix for another data tool
- Moving a label row into a label column without changing cell text
- Checking the shape of a tab-separated table before importing it
Frequently asked questions
What happens to the header when I transpose a CSV?+
Include every record makes the header cells the first output column. Data-only mode discards the first record before rotating the data. Neither mode invents an output header or automatically treats the first data column as names.
Is transposing the same as pivoting?+
No. Transpose swaps row and column positions without grouping, counting or summing. A pivot table groups records by categories and usually calculates aggregate values. Use this tool when position, not aggregation, is the intended transformation.
Why are uneven rows rejected?+
A transpose needs a rectangular matrix. Filling absent cells or discarding extra fields could change the data's meaning. Correct the stated record in the source, then run it again.
Can I transpose twice to recover the input?+
With every record included and formula protection off, transposing twice recovers the cell matrix. CSV serialization may differ in quoting, BOM and record endings. If you excluded a header or changed exported cells, that information is not restored.
Why can I only include 200 input records?+
Each included record becomes one output column. The 200-column output bound keeps the generated matrix and preview practical in the browser. Removing a declared header permits 200 data records plus that header.
Does this work with tabs, semicolons or multiline text?+
Yes. Select Tab or Semicolon for those separators. Quoted line breaks remain part of a cell. The output uses the same selected delimiter and CRLF record endings, and empty cells are retained.
Related tools
CSV to Markdown Table
Turn CSV into a Markdown table — first row as the header, with Left, Center or Right column alignment.
CSV Filter
Filter CSV rows, select output columns and download a focused table without uploads.
CSV Splitter
Split CSV records into smaller files, preserve quoted line breaks and download a ZIP locally.
CSV Validator
Check CSV syntax, row widths and headings without silently repairing data. Download a diagnostic report.