How to Copy More Than 1 Million Rows in Excel

Move oversized datasets through the clipboard in safe, Excel-ready chunks

Why Copying Past 1 Million Rows Breaks in Excel

Excel worksheets are hard-capped at 1,048,576 rows, so the moment your source data climbs past 1 million rows, a normal copy and paste either truncates silently or throws an error. This is the exact wall people hit when trying to copy more than 1 million rows in Excel from a SQL export, a data warehouse extract, or a large CSV file.

Million by Million Rows Copier removes that wall by loading your entire dataset, up to 50,000,000 rows, into a local SQLite file on your own PC, then handing the data back out in clean 1,000,000-row chunks that always fit inside a single worksheet.

Instead of fighting the clipboard limit one failed paste at a time, you load your file or paste your query results once, click Copy Next Chunk, paste into a fresh sheet, and repeat until every row has moved across safely.

Because each chunk keeps the header row and column order intact, every sheet lines up with the next, so reassembling the full dataset later, or simply working through it sheet by sheet, stays accurate and predictable.

Million by Million Rows Copier

Million by Million Rows Copier screenshot - main window
App Screenshots
Home Screen - Before Loading Data
Home Screen - Before Loading Data
Load Controls - Paste or Load From File
Load Controls - Paste or Load From File
Choosing an Output Folder
Choosing an Output Folder
Chunk Size and Header Row Options
Chunk Size and Header Row Options
Auto-Save Format Checkboxes
Auto-Save Format Checkboxes
Loading a Large Dataset - Progress Bar
Loading a Large Dataset - Progress Bar
Ready to Copy - Start Copying Out
Ready to Copy - Start Copying Out
Copy Next Chunk in Progress
Copy Next Chunk in Progress
Preview Grid - Virtual Scrolling
Preview Grid - Virtual Scrolling
How to Copy More Than 1 Million Rows Step by Step
  1. Open Million by Million Rows Copier and load your file, or paste your query results directly, with no manual splitting required.
  2. Let the app import your data into its local SQLite store while the progress bar shows exactly where the load stands.
  3. Set your chunk size, 1,000,000 rows by default, and choose whether headers repeat on every chunk.
  4. Click Start Copying to prepare the first chunk for the clipboard.
  5. Click Copy Next Chunk, then paste directly into Excel on a new worksheet.
  6. Repeat Copy Next Chunk and paste until the app confirms every row has been handed out.
What Makes This the Fastest Way to Copy More Than 1 Million Rows
  • Handles up to 50,000,000 rows in a single load, far beyond Excel's 1,048,576-row ceiling
  • Hands data out in fixed 1,000,000-row chunks that never overflow a worksheet
  • Loads from 25 or more formats, including XLSX, XLS, CSV, JSON and SQL exports
  • Stores everything in a local SQLite file instead of RAM, so nothing freezes mid-copy
  • Every chunk auto-saves to disk, so a chunk is never lost if a sheet is closed early
  • Runs on a background thread, keeping the window fully responsive while it loads or copies
Frequently Asked Questions

Why can't I copy more than 1 million rows into Excel directly?

Excel worksheets stop at 1,048,576 rows, so any copy and paste operation beyond that point gets cut off or rejected, regardless of how much memory your PC has.

How does Million by Million Rows Copier get around the row limit?

It loads the full dataset into a local SQLite file, then hands the data out in 1,000,000-row chunks through Copy Next Chunk, so every paste lands well inside Excel's limit.

Do I lose any rows when copying in chunks?

No, every row is accounted for across the chunks, and the app tracks exactly how many rows have been handed out so none are skipped or duplicated.

Can I copy from a SQL query result that has more than 1 million rows?

Yes, paste or load your exported SQL results directly into the app, then use Copy Next Chunk to move them into Excel in safe pieces.

Ready to copy more than 1 million rows into Excel without a single failed paste?