Online Excel Editor
Free · No Signup · Local Processing

Add Row Numbers to Excel Online — Free, No Upload, 1 Click

Insert a sequential number column with custom start and step. No upload, no sign-up — file stays on device.

Drop one .xlsx, .xlsm, or .xls file here, or click to browse

Supports .xlsx / .xlsm / .xls · processed locally · never uploaded

How to Add Row Numbers to Excel Online

  1. Drop one .xlsx, .xlsm, or .xls workbook — everything runs in your browser and nothing is uploaded.
  2. Choose whether the first row is a header (on by default). When on, the header row is skipped and the new column gets the title #.
  3. Set the start value and the step (both default to 1), and choose whether the number column goes in the first or last position.
  4. Turn on continuous numbering if you want one unbroken sequence across all sheets; otherwise every sheet restarts at the start value.
  5. Click Add row numbers, review the per-sheet report, and download a file named your-file-name-numbered.xlsx.

How It Works

The tool parses your .xlsx, .xlsm, or .xls in the browser with SheetJS and loads each worksheet as a raw array-of-arrays — cell values only, dates kept as Date objects. Each data row then receives one new cell whose value is start + k × step, where k counts the data rows from zero; with the header option on, row 1 of the new column instead gets the text # and numbering begins on row 2. Choosing "first" unshifts that cell into the front of every row, so your original columns shift right; choosing "last" appends it after the sheet’s widest row, with shorter (jagged) rows padded to full width first. In continuous mode a single counter runs through the workbook sheet by sheet, so each sheet picks up exactly where the previous one stopped, while empty sheets stay in place and consume no numbers. Finally the rebuilt arrays are serialized back through SheetJS as a fresh, value-level OOXML workbook — real numeric cells, not text — and handed to your browser as a .xlsx download. The whole round-trip runs locally; no byte leaves your device.

Your file never leaves your device — processing is 100% in-browser.

Numbering Options Explained

OptionDefaultWhat it does
Start value1First number written to the data rows. Zero and negative values are allowed, so you can start at 0 or -100.
Step1Gap between consecutive numbers. Start 5 with step -1 produces 5, 4, 3, 2, 1. The step cannot be zero.
PositionFirst columnFirst inserts the number column at column A and shifts your original columns right; Last appends it after the existing data.
Continuous across sheetsOffOff restarts numbering at the start value on every sheet; on keeps one running sequence through the whole workbook.

The number cells are real numeric cells, not text, so they work directly in formulas, sorting, and filters. When the header option is on, row 1 of the new column always contains the text #.

When You Need This

  • Before printing or exporting a list: numbered rows make it easy to refer to "row 47" on paper.
  • Data verification and reconciliation: stable row references for comparing two exports or checking records with a colleague.
  • Restoring the original order: number the rows before sorting, and sorting by the number column always brings the original sequence back.
  • Preparing an import for systems that expect a line number or an item number in the first column.

Static Numbers and Multi-Sheet Rules

By default every worksheet is numbered independently from the start value. With continuous numbering on, the sequence advances without interruption across every data row in the workbook — empty sheets do not consume a number. Worksheets with no data rows are kept in the output as-is and do not count toward the total.

The numbers are static values written into cells, not formulas. Sorting, filtering, inserting, or deleting rows will not renumber anything — run this tool again whenever you need fresh numbers.

Limitations

  • The output is rebuilt from values: cell styles, column widths, merged cells, formulas (saved as cached values), and charts are simplified.
  • Numbers are static values, not a live ROW() formula (see the note above).
  • Encrypted workbooks that require a password to open cannot be read.
  • Legacy .xls files are accepted as input, but the result is downloaded as .xlsx.
  • With the header option on, the new column title is always the text #.

Frequently Asked Questions

Is this row numbering tool really free?

Yes — 100% free, with no sign-up, no watermark, and no file limit. All processing happens in your browser.

Will the numbers update after I sort the sheet?

No. The numbers are static values, not formulas: sorting, filtering, or inserting rows will not renumber anything. Run the tool again to generate fresh numbers.

Can I start at 0 or number in descending order?

Yes. The start value accepts zero and negative numbers, and a negative step produces descending numbers — start 5 with step -1 gives 5, 4, 3, 2, 1. The step cannot be zero.

Where is the number column placed?

In the first column (inserted at column A, shifting your original columns to the right) or in the last column (appended after the existing data).

How does numbering work across multiple sheets?

By default each sheet restarts at the start value. Turn continuous numbering on and the whole workbook shares one sequence; empty sheets do not consume a number.

Is my file uploaded, and is my formatting preserved?

Nothing is uploaded — the work happens entirely in your browser. The output is rebuilt from cell values, so styles are simplified, and encrypted workbooks cannot be processed.

Related Tools

Want formatting and formulas preserved, or a live ROW() numbering that updates itself?

Open the free online Excel editor