Transpose tabular data in the browser
Use this tool to swap rows and columns without aggregating or grouping values. It renders the result in the Transposed table preview and lets you export it as CSV or XLSX.
Selected files are read in the browser with FileReader. The local tool script does not send the selected table data to an upload request, but the page still loads external libraries and analytics, so this is not a guarantee about every page asset or network request.
Choose input and parsing options
Paste data into Paste CSV/TSV data below, or drop or browse for a CSV, TSV, TXT, XLSX, or XLS file. XLSX and XLS files use the first worksheet only.
For pasted or text-file input, the tool counts commas and tabs on the first line. It uses tabs only when tabs occur more often; otherwise it uses commas.
- First row is a header styles the transposed first column as a header-related label.
- First column is row labels styles the transposed first row as a header.
- Pad short/ragged rows with sets the value added to shorter rows.
- Blank cell display sets the text shown for empty or whitespace-only cells in the preview and exports.
The header and row-label settings change styling and rendering, not which values are moved.
Transpose the table
- Paste data, or drop or browse for a supported file; the preview updates automatically.
- Set First row is a header and First column is row labels as needed.
- Set Pad short/ragged rows with and Blank cell display as needed; each change refreshes the preview.
- Review the Transposed table preview and its source, result, padding, and blank-cell statistics.
Rows are transposed after rows that parse as exactly one empty value are ignored. Rows containing multiple empty fields are not removed.
Handle uneven rows and blank cells
Rows shorter than the widest row are padded before transposition. The preview reports the number of Ragged source rows padded. A non-empty pad value remains a normal value; an empty or whitespace-only pad value can be replaced by Blank cell display.
Export the transposed result
After a valid result is created, click Export CSV or Export Spreadsheet. The downloads use the filenames transposed-table.csv and transposed-table.xlsx. CSV fields containing commas, double quotes, or line breaks are quoted.
Click Clear to remove the current input and result.
Input limits and failure messages
For text-file uploads longer than 300,000 characters, the visible textarea shows a truncated preview while the retained full file text is processed automatically unless you edit it. If you edit the textarea, its visible content replaces the retained full-file state and becomes the input.
With no usable input, the page shows Paste, upload, or drop tabular data first. Input that leaves no usable rows shows No data rows found.
Frequently Asked Questions
How is this different from Pivot Table or Unpivot Table?
Transpose Table only swaps rows and columns - it never aggregates values or groups records. Pivot Table groups records by chosen fields and aggregates a value field with count, sum, average, minimum, or maximum. Unpivot Table converts wide columns into long key-value records. None of that grouping or reshaping-into-records happens here, although rows containing only one empty value are ignored and blank values can be replaced for display and export.
What happens with ragged rows that have different lengths?
Rows shorter than the widest row are padded up to that width before transposing, using the pad text you set (blank by default). A non-empty pad value remains a normal value; the Blank cell display setting replaces it only if that pad value is empty or whitespace-only.
What do the header and row-label options actually change?
Transposing always swaps the first row and first column's roles automatically - the first row becomes the first column and vice versa. "First row is a header" and "First column is row labels" control how that first row/column is styled and rendered (as a header or label) in the preview, not what values end up where.
What does the blank-cell display control?
Blank cell display replaces values whose trimmed text is empty in the preview and exported files. It can replace empty source values and padded values when the pad value is empty or whitespace-only; a non-empty pad value is not replaced.