How to rearrange excel column order instantly
- Step 1Drop your spreadsheet — Upload an
.xlsx,.xls,.ods, or.csvfile. SheetJS reads the first sheet and treats row 1 as the header, so the column names you see in the reorder list come straight from that first row. - Step 2Read the current column order — Each column appears as a numbered row (1, 2, 3 …) in its current left-to-right position. A column with a blank header in row 1 shows as
Col Nso you can still place it correctly. - Step 3Move columns into the order you need — Use the up arrow to move a column one slot earlier and the down arrow to move it one slot later. Repeat until the top-to-bottom list matches the left-to-right order you want in the output. The first and last rows disable the arrow that would move them off the ends.
- Step 4Apply the order — Click
Apply order. The tool re-parses the sheet and rebuilds every row so each cell follows the new column sequence. A preview of the first 10 result rows appears so you can confirm the layout before downloading. - Step 5Download the reordered file — If you uploaded an Excel file, you get an
.xlsxback (single sheet namedSheet1, values only). If you uploaded a CSV, you get a.reordered.csv. UseResetto start over with a different file. - Step 6Verify the header row, then import — Open the download and confirm row 1 lists your columns in the target order. Because matching by name in tools like Power Query or Power BI ignores position, this step is mainly for human-readable layout and for importers that map by column position.
What the reorder tool changes vs. what it leaves alone
The tool is deliberately narrow: it moves columns and nothing else. Knowing exactly what survives the round-trip avoids surprises after download.
| Aspect | Behaviour | Why |
|---|---|---|
| Column left-to-right order | Changed to your chosen sequence | This is the tool's only job |
| Cell values | Preserved exactly — text is copied verbatim into the new position | Reorder maps each output column to a source column; values are never rewritten |
| Column count | Preserved — every column is kept | The reorder list always contains all columns; there is no UI to omit one |
| Live formulas | Flattened to their last-calculated values | SheetJS exports the sheet to CSV first, which keeps results, not = formulas |
| Extra sheets | Dropped — only the first sheet is processed | The bridge reads SheetNames[0] and writes a single Sheet1 back |
| Cell formatting, charts, named ranges | Not carried through | The CSV round-trip keeps cell text only, not workbook objects or styling |
Accepted formats and what you get back
Input is read by SheetJS; output type mirrors the input. The internal pivot is always CSV rows.
| You upload | How it is read | You download |
|---|---|---|
| .xlsx | First sheet → CSV rows | <name>.reordered.xlsx (single Sheet1, values only) |
| .xls (legacy) | First sheet → CSV rows | <name>.reordered.xlsx |
| .ods (OpenDocument) | First sheet → CSV rows | <name>.reordered.xlsx |
| .csv | Parsed directly as rows | <name>.reordered.csv |
Tier limits for this tool
Excel-family limits. Column Reorder requires a Pro tier or above; the free tier cannot run it. All processing is browser-side, so these caps reflect file size and row count, not server quotas.
| Tier | Max file size | Max rows | Files per run |
|---|---|---|---|
| Free | 5 MB | 10,000 | 1 (tool is Pro-gated) |
| Pro | 50 MB | 100,000 | 5 |
| Pro + Media | 200 MB | 500,000 | 20 |
| Developer | 500 MB | Unlimited | Unlimited |
Cookbook
Real before/after layouts. The header row shows the column order; data rows follow it exactly. Output values are identical to input — only the order moves.
Move the ID column to the front
A common cleanup: a report exports the primary key in the middle, but you want it as the leftmost column for readability. Move id up until it is row 1 in the reorder list.
Input (.xlsx, first sheet): name,email,id,signup_date Sue Lee,sue@x.com,1042,2026-01-04 Jon Park,jon@x.com,1043,2026-01-05 Reorder list (after moving id to top): 1. id 2. name 3. email 4. signup_date Download (.reordered.xlsx): id,name,email,signup_date 1042,Sue Lee,sue@x.com,2026-01-04 1043,Jon Park,jon@x.com,2026-01-05
Group related columns together
An export interleaves contact and address fields. Reorder so all contact fields sit together, then all address fields — purely for a human-auditable layout.
Input: name,city,email,zip,phone,state Sue,Leeds,sue@x.com,LS1,0113,WY Target grouping: name, email, phone | city, state, zip Reorder list: 1. name 2. email 3. phone 4. city 5. state 6. zip Output: name,email,phone,city,state,zip Sue,sue@x.com,0113,Leeds,WY,LS1
Formula column comes out as its value
The source sheet has a total column built with =qty*price. After reorder, total keeps its calculated number — the formula itself is gone, which is expected from the CSV round-trip.
Input sheet (cell C2 = =A2*B2): qty,price,total 3,4,12 Reorder to put total first: 1. total 2. qty 3. price Download (values only): total,qty,price 12,3,4 Note: 12 is the last-calculated value of =A2*B2, not a live formula.
Blank-header column placed correctly
A spreadsheet has an unnamed first column (an index Excel added). It shows as Col 1 in the reorder list so you can still position or send it to the end.
Input (row 1 has an empty first cell): ,name,score 1,Sue,88 2,Jon,91 Reorder list: 1. Col 1 (the unnamed index) 2. name 3. score Move Col 1 to the bottom → name,score, Sue,88,1 Jon,91,2
Quoted commas survive the move
A notes cell contains a comma and quotes. The parser is quote-aware, so the value is re-escaped correctly when it lands in its new column position.
Input: id,notes,name 7,"Refund, then re-bill",Sue Reorder to: name, id, notes Output: name,id,notes Sue,7,"Refund, then re-bill" The embedded comma stays inside the quoted field — no row misalignment.
Edge cases and what actually happens
Reorder does not rename — wrong header names still mismatch on import
By designMoving a column does not change its header text. If an importer expects Email Address and your column is named email, reordering it into the right slot will not make a name-matching importer recognise it. Fix the names first with csv-header-rename, then reorder.
Every column is kept — there is no way to drop one in the reorder UI
By designThe reorder list always contains all columns and the output preserves every one. You cannot remove an unwanted column by leaving it out of the list — the browser UI seeds the order with all columns. To delete columns, run csv-column-remover first, then reorder the survivors here.
Live formulas become static values
ExpectedBecause the workbook is exported to CSV rows before reordering, any = formula is replaced by its last-calculated result. This is what makes the reorder #REF!-proof, but it means the downloaded file is no longer a live model. If you need formulas to survive, keep your master workbook and apply the reorder only to a values export.
Only the first sheet is processed
First sheet onlySheetJS reads SheetNames[0]. A multi-tab workbook loses every sheet except the first, and the download contains a single sheet named Sheet1. Move the sheet you want to reorder into the first position in Excel before uploading, or split tabs out beforehand.
Free tier cannot run this tool
Upgrade requiredColumn Reorder is gated to Pro and above. On the free tier the run is blocked with an upgrade prompt. Pro raises the ceiling to 50 MB and 100,000 rows; Pro + Media to 200 MB / 500,000 rows; Developer removes the row cap entirely.
File larger than your tier's size cap
Upgrade requiredA workbook over your tier's file-size limit (5 MB free, 50 MB Pro, 200 MB Pro + Media, 500 MB Developer) is rejected before processing. Trim the file, split it, or upgrade. Because processing is all in-browser, very large files are also bounded by your device's available memory.
First row is not a real header
Check inputThe tool always treats row 1 as the header row and names the reorder list from it. If your file starts with a title or a blank row, the first data row will be used as headers and the labels will look wrong. Strip leading rows before uploading so row 1 is the genuine header.
Duplicate header names in the file
SupportedTwo columns sharing the same header (e.g. two email columns) both appear in the reorder list and both survive — the tool tracks columns by position, not by name, in the browser UI, so duplicates are moved independently and neither is collapsed.
Cell formatting and charts are not preserved
Values onlyNumber formats, conditional formatting, cell colours, charts, and named ranges do not survive the CSV round-trip — only the cell text comes through. If presentation formatting matters, re-apply it in Excel after reordering, or use the reordered values as a data feed rather than a finished report.
Frequently asked questions
Is the reorder really drag-and-drop?
The interface is built around up/down arrow buttons: each column is a row in a list, and you move it one slot earlier or later with the arrows. That gives precise, single-step placement on wide sheets without the mis-aim you get dragging a selection in Excel. Some on-screen copy mentions dragging, but the working controls are the arrows.
Will reordering break my formulas?
No — but for an unusual reason. The tool exports the sheet to plain rows before reordering, so formulas are already replaced by their calculated values. There are no live = references in the output to break, which is precisely why you never see a #REF!. Keep your original workbook if you need the formulas to stay live.
Does it preserve data types like numbers and dates?
The output carries the cell text as it appeared in the first sheet. Numbers, dates, and booleans round-trip as their displayed string values; when you download an .xlsx the importer or Excel re-interprets those strings on open. Cell number-formatting and styling are not carried through — only the values.
Can I delete columns at the same time as reordering?
Not in this tool. The reorder list always contains every column and the output keeps them all. To drop columns, use csv-column-remover first, then reorder the remaining columns here.
Can I rename columns while reordering?
No. Reordering moves columns but never changes header text. Use csv-header-rename to rename headers to the exact names your importer expects, then run this tool to set the order.
What file types can I upload?
.xlsx, .xls, and .ods (read by SheetJS, first sheet only) plus .csv. The output type mirrors the input: an Excel upload returns an .xlsx, a CSV upload returns a .reordered.csv.
What happens to my other worksheet tabs?
Only the first sheet is processed. A multi-tab workbook is reduced to a single sheet named Sheet1 in the download. Move the tab you want to the front in Excel, or extract it, before uploading.
Does my spreadsheet get uploaded to a server?
No. The whole reorder runs in your browser with SheetJS. Cell values never leave your device; only an anonymous counter (a file was processed, with no content) is recorded for signed-in dashboard stats.
How many columns can I reorder?
There is no hard column cap in the reorder list — it renders one row per column from the header. The practical limits are your tier's row count and file size, plus your device's memory, since processing is in-browser.
Why does my downloaded .xlsx only have one sheet called Sheet1?
The engine reads the first sheet, reorders it as rows, and writes a fresh single-sheet workbook named Sheet1. That single-sheet, values-only output is expected. If you need multiple sheets, process and recombine them in Excel.
Is there a preview before I download?
Yes. After you click Apply order, the tool shows the first 10 rows in the new column order so you can confirm the layout. If it is wrong, use Reset or keep nudging columns with the arrows before downloading.
Which tier do I need to use Column Reorder?
Pro or above — the tool is Pro-gated and the free tier shows an upgrade prompt. Pro allows 50 MB / 100,000 rows, Pro + Media 200 MB / 500,000 rows, and Developer removes the row limit (500 MB file size).
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.