Excel Freezes on Large CSV? Here's the Fix
Excel chokes on big CSV files. Start with a quick format change, then try Power Query, or split the file. Each step gets more advanced.
Why Excel Freezes on Big CSVs
You open a CSV with 50,000 rows and Excel sits there spinning. Or worse, it crashes after you've been waiting five minutes. I've seen this at least a dozen times – small businesses love exporting reports from their CRM or accounting software as CSVs, then dumping them straight into Excel.
The core problem: Excel treats a CSV like a full workbook, loading every row into memory and recalculating formulas. If you've got blank rows at the end (common from some export tools), Excel loads those too. CSV files aren't meant for Excel's grid – they're plain text. But we can trick Excel into behaving.
Here are three fixes. Start with the first – it takes 30 seconds. If it doesn't work, move to the next.
30-Second Fix: Change the File Extension
This sounds stupid, but it works more often than you'd think. Rename the file from .csv to .txt. Then open Excel, go to Data tab, click From Text/CSV, and select your renamed file. Excel loads it through the import wizard instead of opening it directly.
Why this helps: The import wizard gives you control – you can specify delimiters, skip rows, and tell Excel not to load blank rows. It also doesn't try to auto-format columns (which is what usually causes the freeze).
Steps:
1. Right-click the CSV file in File Explorer
2. Choose Rename, change .csv to .txt (click Yes on the warning)
3. Open Excel > Data tab > Get Data > From Text/CSV
4. Point to the renamed file, click Import
5. Set delimiter to comma, click Load
I had a client last month who was pulling sales data from QuickBooks – 80,000 rows – and Excel would crash every time. This fix took 30 seconds and they were in business.
5-Minute Fix: Use Power Query
If the rename trick doesn't cut it (maybe your file is 200,000+ rows or has weird formatting), use Power Query. It's built into Excel 2016 and later, and it handles large CSVs like a champ.
Power Query doesn't load the entire file into memory first. Instead, it creates a query that reads the file on demand. You can filter, sort, or remove columns before loading anything into the grid.
- Go to Data tab > Get Data > From File > From CSV
- Select your CSV file – the preview will show the first 200 rows
- Click Transform Data (not Load)
- In Power Query Editor, click Remove Rows > Remove Blank Rows
- Also click Choose Columns and uncheck any columns you don't need
- Click Close & Load
The Load step might take a minute, but it won't freeze Excel. Power Query loads only the data you asked for. And if you need to refresh later (when the CSV updates), just right-click the query in the Queries pane and select Refresh.
I've used this for 500,000-row log files from a server monitoring tool. Excel 365 handled it fine after filtering out irrelevant columns.
15+ Minute Fix: Split the File
If you're dealing with a CSV that's over a million rows, or you're on Excel that maxes out at 1,048,576 rows, you need to split the file. Excel has a hard limit – you can't load more than that anyway.
I'll show you two ways. First, using a free tool: CSV Splitter (search for it – it's a simple app). Or use the command line if you're comfortable.
Option A: Use CSV Splitter (Windows)
- Download and install CSV Splitter (free)
- Open it, choose your CSV file
- Set split by rows, e.g., 100,000 rows per file
- Click Split – it'll create files like
filename_1.csv,filename_2.csv - Open each chunk in Excel individually
Option B: Command Line (PowerShell)
If you're on Windows, open PowerShell (search for it in Start menu). Run this command to split into 100,000-row chunks:
$file = "C:\path\to\your\bigfile.csv"
$header = Get-Content $file -First 1
$lines = Get-Content $file | Select-Object -Skip 1
$chunkSize = 100000
$i = 0
$lines | Group-Object { [math]::Floor($i++ / $chunkSize) } | ForEach-Object {
$outFile = "C:\path\to\split_$($_.Name).csv"
$header | Set-Content $outFile
$_.Group | Add-Content $outFile
}
Adjust $chunkSize to whatever works for you. Each split file will have the header row.
I had a client who was trying to open a 2GB CSV from a marketing platform – 1.8 million rows. We split it into 20 files, imported each into a separate sheet, then used Power Query to combine them later. Took about 20 minutes but solved the problem completely.
When None of This Works
If Excel still freezes after these steps, the file might be corrupted. Try opening it in Notepad++ or a text editor to see if it's readable. If you see gibberish, ask the source system to re-export. Also check your Excel version – older versions like Excel 2010 have stricter limits. Upgrade to Excel 365 if you can.
One more thing: if you're on a 32-bit version of Office, you're limited to about 2GB memory. Switch to 64-bit Office – it's a free download from your Office account page. That alone fixed freezing for a client who handled inventory CSVs weekly.
Bottom line: Start with the file rename trick (30 seconds). If that fails, use Power Query (5 minutes). For massive files, split them (15+ minutes). Excel isn't designed for raw CSVs – work around it.
Was this solution helpful?