MakeMyStats
Blog
Back to blog

CSV to Excel without Microsoft — free alternatives

A comparison of free ways to convert CSV files to XLSX format, from desktop apps to browser-based tools, with trade-offs for each approach.

Try /csv-to-excel

You have a CSV. Your boss wants an XLSX. You don't have a Microsoft 365 license. This is a surprisingly common situation — CSV is the universal data interchange format, but half the people you send data to expect a proper Excel file with formatted columns, multiple sheets, and a .xlsx extension. Let's walk through every free option for making this conversion happen, along with the real trade-offs of each.

Why not just rename the file?

Before we get into tools: no, you cannot just change .csv to .xlsx and call it a day. XLSX is a ZIP archive containing XML files that describe worksheets, styles, shared strings, and relationships. CSV is a flat text file with delimiters. Excel will sometimes open a renamed CSV, but the file is still plaintext — formulas won't work, multi-sheet support is gone, and anyone who inspects the file will see it's not a real workbook.

You need an actual conversion step. Here are the ways to get one.

1. LibreOffice Calc

LibreOffice is the most capable free alternative to Microsoft Office, and Calc handles CSV-to-XLSX conversion well.

How it works: Open your CSV in LibreOffice Calc (File → Open, or just double-click if Calc is your default). A CSV import dialog lets you configure the delimiter, text qualifier, and column types. Once loaded, save as XLSX via File → Save As → select "Microsoft Excel 2007-365 (.xlsx)."

Strengths:

  • Full spreadsheet application — you can inspect, clean, and format the data before saving
  • Handles large files reasonably well (tested up to ~500K rows before slowdowns)
  • Supports multi-sheet workbooks if you copy data across sheets manually
  • Runs locally — your data stays on your machine
  • Available on Windows, macOS, and Linux

Weaknesses:

  • Requires installing a 300MB+ desktop application
  • The CSV import dialog has over a dozen options, which is powerful but intimidating if you just want a quick conversion
  • Saving as XLSX sometimes triggers compatibility warnings about features that can't be preserved
  • Startup time is slow compared to lightweight tools — 5-10 seconds on an average machine

Best for: People who need LibreOffice anyway, or who want to edit the data before converting.

2. Google Sheets

Google Sheets is the go-to for anyone already in the Google ecosystem.

How it works: Upload your CSV to Google Drive (or import directly into a new Sheet via File → Import). The data loads into a spreadsheet. Then File → Download → Microsoft Excel (.xlsx).

Strengths:

  • No software to install — runs in any browser
  • Collaborative editing if you need someone else to review the data
  • Good formula support if you need to transform data before exporting

Weaknesses:

  • Your data goes to Google's servers. This is the dealbreaker for many use cases. If you're converting a CSV of customer records, financial data, or anything covered by a data handling agreement, uploading to Google may violate your policies. Google processes the data on their infrastructure, and their terms of service give them certain rights over uploaded content.
  • Row limits: Google Sheets maxes out at 10 million cells (roughly 200K rows × 50 columns). Large CSVs hit this wall fast.
  • Requires a Google account and internet connection
  • Upload and download adds latency — a 50MB CSV takes noticeable time to round-trip through Google's servers
  • The downloaded XLSX may have slightly different formatting than what you see in Sheets

Best for: Small files where privacy is not a concern, or when you need collaborative review.

3. Online converter websites

Search "CSV to XLSX converter" and you'll find dozens of websites: Convertio, CloudConvert, Zamzar, Online-Convert, and many others. They all work roughly the same way: upload your CSV, click convert, download the XLSX.

Strengths:

  • Zero installation — open the site and go
  • Most are genuinely free for small files (typically under 100MB)
  • Some support batch conversion

Weaknesses:

  • Your data is uploaded to a third-party server. Same privacy concern as Google Sheets, but worse — these sites are often run by small companies with vague privacy policies. Some explicitly state they store uploaded files temporarily; others don't say what they do with your data at all.
  • File size limits on free tiers (typically 50-100MB, sometimes as low as 10MB)
  • Ad-heavy interfaces with confusing download buttons (the real download vs. the ad that looks like a download)
  • Conversion quality varies — some strip leading zeros from ZIP codes, misinterpret date formats, or corrupt Unicode characters
  • Rate limits and captchas on repeated use
  • Requires internet connectivity

Best for: One-off conversions of non-sensitive small files when you don't want to install anything.

4. Command-line tools

For developers and anyone comfortable with a terminal, there are several command-line options.

ssconvert (Gnumeric): ssconvert input.csv output.xlsx — part of the Gnumeric spreadsheet package. Fast and reliable, but requires installing Gnumeric. Available on Linux easily, awkward on macOS (Homebrew), not officially supported on Windows.

Python with openpyxl:

import csv
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
with open("input.csv") as f:
    for row in csv.reader(f):
        ws.append(row)
wb.save("output.xlsx")

This works, but requires Python and the openpyxl package installed. Every column comes through as text unless you add type detection logic.

csvkit: in2csv and csvformat are great for CSV manipulation, but csvkit doesn't actually produce XLSX files. You'd still need another tool for the final conversion.

Strengths:

  • Scriptable and automatable — great for pipelines
  • Handles large files efficiently
  • No GUI overhead
  • Data stays local

Weaknesses:

  • Requires installing language runtimes and packages
  • Column type inference is usually absent or manual
  • Multi-sheet output requires explicit scripting
  • Not accessible to non-developers

Best for: Developers who need repeatable conversions in scripts or CI pipelines.

5. Browser-based conversion (no upload)

This is the approach we took with MakeMyStats's CSV to Excel converter. The conversion runs entirely in your browser using JavaScript — specifically the SheetJS library, which can read and write real XLSX files without any server involvement.

How it works: Drop one or more CSV files onto the page. Each file is parsed with PapaParse (a streaming CSV parser), then SheetJS builds a proper XLSX workbook in memory. If you drop multiple files, each becomes a separate sheet, named after the source filename. Click download and you get a real .xlsx file.

Strengths:

  • Your data never leaves your browser. No upload, no server processing, no third-party storage. The CSV is parsed in a JavaScript worker thread and the XLSX is assembled in memory. This matters when you're handling PII, financial data, internal metrics, or anything you can't upload to random websites.
  • No installation — it's a web page
  • No accounts, no sign-up, no rate limits
  • Fast — the conversion happens at local speed, not network speed. A 20MB CSV converts in a couple of seconds.
  • Multi-sheet support: drop three CSVs, get a three-sheet workbook
  • Works offline once the page is loaded (the JavaScript is cached)

Weaknesses:

  • Browser memory limits cap file size at roughly 500MB-1GB depending on the browser and available RAM. For truly massive files (2GB+), a command-line tool is more appropriate.
  • No data editing before conversion — it's a converter, not a spreadsheet. If you need to clean data first, use the CSV filter tool or a spreadsheet application.
  • Column types are inferred automatically (numbers stay as numbers, text as text), but you can't manually override a column's type before conversion.

Best for: Anyone who needs a quick, private conversion without installing software or uploading data.

How to choose

Here's the decision tree I'd use:

Is the data sensitive? If yes, eliminate Google Sheets and online converters. Use LibreOffice, command-line tools, or a browser-based converter that doesn't upload your files.

Is the file larger than 1GB? Use command-line tools (ssconvert or Python). Everything else will struggle.

Do you need to edit the data before converting? Use LibreOffice or Google Sheets. Pure converters don't offer editing.

Do you just need a quick conversion with no setup? The CSV to Excel converter on MakeMyStats does the job in seconds. Drop the file, download the result, done.

Do you need this in an automated pipeline? Command-line tools. A web-based converter isn't scriptable (though you could use SheetJS directly in a Node.js script — it's the same library).

A note on column types

One thing that trips people up regardless of which tool they use: CSV files don't have types. Every value is a string. When a tool converts CSV to XLSX, it has to guess whether "42" is a number or a text string, whether "2024-01-15" is a date or text, and whether "00123" should keep its leading zeros.

Most tools apply basic heuristics: if it looks like a number, store it as a number. This means ZIP codes like "00501" become 501, and long numeric IDs like "9876543210123" get truncated due to floating-point precision limits. If you have data like this, check the output carefully after conversion — and if possible, use a tool that lets you preview the result before downloading.

The browser-based approach in MakeMyStats uses PapaParse's dynamic typing, which handles the common cases well but follows the same heuristics. For columns that must stay as text (ZIP codes, phone numbers, IDs with leading zeros), the safest approach is to prefix them with a single quote in the CSV or to use a tool that lets you specify column types manually.

No single tool is perfect for every scenario. But for the common case — a normal-sized CSV that needs to become an XLSX without uploading it to someone else's server — a browser-based converter is hard to beat on both speed and privacy.