Independent product studio · Swedenhello@karelialabs.com

Guide

How to open a CSV file that is too big for Excel, and Parquet files

Short answerAn Excel worksheet holds at most 1,048,576 rows, so Excel loads only part of a bigger CSV file and warns that saving would lose the rest. To use every row, load the file into a PivotTable with Excel's Get Data, query it with the free DuckDB command line, or split it into parts. To browse, sort, filter and query millions of rows of CSV or Parquet in a window, offline, there is Tablewright ($9.99, Microsoft Store).

Updated

Why Excel cannot open the whole file

Microsoft's Excel specifications and limits put a worksheet at 1,048,576 rows by 16,384 columns, in Excel for Microsoft 365 and Excel 2016 to 2024. The older .xls format holds only 65,536 rows per sheet. A CSV export with more lines than that does not fit on one sheet.

When you open such a file, Excel warns: "This data set is too large for the Excel grid". It has loaded only the rows and columns that fit. Microsoft's page What to do if a data set is too large for the Excel grid explains that saving the workbook would lose the data that was not loaded, so do not save over the original. If you need to save, use File, Save a Copy and give the copy a name that shows it is cut short.

A Parquet file is a different kind of file. Apache Parquet describes it as an open-source, column-oriented data file format, designed for efficient storage and retrieval: the data is stored column by column, not line by line as in a CSV file.

Option 1: Excel's Get Data, into a PivotTable

Microsoft's own route uses Get Data (Power Query) in Excel for Windows to load the complete data set and summarise it in a PivotTable. The grid still shows no more rows than its limit, but the PivotTable works with all of them:

  1. Open a blank workbook.
  2. On the Data tab, in the Get & Transform Data group, select From Text/CSV.
  3. Find the file and select Import.
  4. In the preview, select Load To and choose PivotTable Report. If there is no Load To button, select the arrow next to Load first.
  5. Arrange the fields in the Field List. You can sort and filter the PivotTable as usual.

Good for totals and counts by group, with nothing to install. But you see summaries, not the rows themselves.

Option 2: the free DuckDB command line

DuckDB is a free, open-source database under the MIT licence. Its command line client is a single program for Windows, macOS and Linux. It reads CSV and Parquet files directly with SQL, and started without a file name it works in a temporary in-memory database, so nothing is imported first. Install it as its installation page describes (on Windows it needs the Microsoft Visual C++ Redistributable), start duckdb and type queries such as these:

SELECT count(*) FROM 'C:\Data\orders.csv';
SELECT * FROM 'C:\Data\orders.parquet' LIMIT 20;
COPY (SELECT * FROM 'C:\Data\orders.csv' WHERE country = 'FI')
  TO 'C:\Data\orders-fi.csv';

DuckDB works out the CSV settings, such as the separator and the column types, by itself. The last command writes only the matching rows to a separate CSV file with a header row, small enough for Excel. It is free and reads both formats, but you work in a text window with SQL: there is no grid to scroll, and no clicking to sort or filter.

Option 3: split the file into parts

You can also cut the CSV into pieces below Excel's limit, each with the header row, and open them one at a time. The DuckDB command above writes any slice you choose, such as one year or one region per file. This works for a one-off look, but sorting, filtering and totals then see only one part at a time, and you split again whenever the export changes.

Option 4: Tablewright ($9.99)

Tablewright is a Windows app from Karelia Labs for data files that are too big or too odd for a spreadsheet: CSV, TSV, Parquet and JSON Lines. It needs no other software, works fully offline with no account and no telemetry, and only reads your files. It is built on DuckDB, so its SQL is the same dialect as in Option 2. It costs $9.99 in the Microsoft Store: Get it from Microsoft Store.

Parquet files open at once, because Tablewright reads only the rows on screen. CSV and JSON Lines files show their first rows straight away while the rest is loaded in the background. Measured on our test PC (8-core desktop processor, 32 GB memory, SSD; your times depend on your PC and disk):

  • A Parquet file with 5,000,000 rows showed its first rows in under 0.1 seconds.
  • A 2.7 GB CSV file with 20,000,000 rows showed its first 100 rows after 0.2 seconds, and all rows were loaded for sorting and filtering in about 15 seconds.
  • Scrolling a 5,000,000-row table in steps of three rows took a median of about 4 milliseconds per step, and after jumping to a random place in it the visible rows were filled in a median of 65 milliseconds or less.
  • Browse: a grid that scrolls through millions of rows. Click a column to sort, Shift+click to sort by more columns, filter any column or search all columns at once.
  • Understand the columns: type, empty values, distinct values, smallest and largest value, the most common values and, for numbers and dates, a distribution chart.
  • Query with SQL: every open file is a table you can query in the DuckDB dialect, with joins across files, GROUP BY, PIVOT and more. Errors point to the line and column. A whole folder of files can be opened as one table.
  • CSV as it really is: the separator, quote character, header row and encoding (UTF-8, UTF-16, Western/Latin-1) are detected, and you can set them yourself if a guess is wrong.
  • Export: the current view or a query result as CSV, TSV, Parquet, JSON Lines, JSON or an Excel workbook (a header row and up to 1,048,575 data rows, Excel's 1,048,576-row limit). You can also select cells and copy them into a spreadsheet.
  1. Install Tablewright from the Microsoft Store. Try a sample shows it with a sample file first.
  2. Open your CSV or Parquet file, or a folder of them, then sort, filter or query.
  3. Export the result: as an Excel workbook of a header row and up to 1,048,575 data rows, otherwise as CSV or Parquet.

It needs Windows 10 version 2004 or later, or Windows 11, 64-bit, with 4 GB of memory at least and 8 GB or more for files with tens of millions of rows.

Which option fits

You want toBest fit
Get totals and counts from one big CSV file, with nothing to installExcel's Get Data into a PivotTable (Option 1)
Query CSV and Parquet files with SQL, for freeThe DuckDB command line (Option 2)
Look at part of the data in Excel, onceSplit the file (Option 3)
Browse, sort, filter and query CSV or Parquet files in a window, offlineTablewright (Option 4)

What to expect from Tablewright

  • Very large CSV and JSON Lines files need free disk space in your temp folder while they are open, about the size of the data. This working data is removed when you close the app.
  • Files on network shares must be copied to a local drive first. Web addresses and network shares in a query are refused, because the app does not go online.
  • Encrypted Parquet files are not supported.
  • A large CSV file can be sorted and filtered as a whole once all its rows are loaded. If values further down do not fit the types seen in the first rows, Tablewright detects the types over the whole file and loads it again.
  • Excel export takes a header row and up to 1,048,575 data rows (Excel's 1,048,576-row limit). For more, export CSV or Parquet, or filter first.
  • The timings above were measured with generated test files on our test PC. Your times depend on your PC, your disk and your file.

Excel's limits and Microsoft's advice are from Excel specifications and limits and What to do if a data set is too large for the Excel grid. DuckDB's details are from its website and documentation, and the Parquet description from the Apache Parquet website. All were checked on 15 November 2026. Tablewright's timings are our own measurements with generated test files.

FAQ

How many rows can Excel open?

A worksheet holds 1,048,576 rows by 16,384 columns in Excel for Microsoft 365 and Excel 2016 to 2024, according to Microsoft. The older .xls format holds 65,536 rows per sheet.

Excel says the data set is too large for the grid. Is my data lost?

No, the CSV file itself is still complete. Excel loaded only the rows that fit, and the rest is lost only if you save over the original. If you need to save, use File, Save a Copy, as Microsoft advises.

How do I open a Parquet file on Windows?

In the DuckDB command line, SELECT * FROM 'file.parquet' LIMIT 20; shows the first rows. Tablewright opens Parquet files at once in a grid and also shows the row groups, compression, compressed and uncompressed size, and the program that wrote the file.

How do I convert a large CSV file to Parquet?

In DuckDB: COPY (SELECT * FROM 'orders.csv') TO 'orders.parquet' (FORMAT parquet);. In Tablewright, open the CSV file and export it as Parquet.

Is my data uploaded anywhere?

Not by Tablewright. It works without an internet connection, has no account and no telemetry, and reads files only from this PC's drives. Your original files are never changed.

More guides

More from Karelia Labs