SmartQueryTools

Convert Arrow to Excel Online

Convert Arrow files to Excel format directly in your browser. No upload required — your data never leaves your device.

About converting Arrow to Excel

Arrow to Excel is for the moment a data frame has to be reviewed by someone who works in spreadsheets. A data scientist saves a Polars or pandas result with write_ipc or to_feather, and a product manager, auditor or client wants to sort, filter and comment on it. Converting in the browser skips reopening a notebook to call to_excel and needs no openpyxl or xlsxwriter install.

The workbook has one sheet named Sheet1, with the Arrow field names in row 1. Only integer, floating point and boolean columns become real numeric or TRUE/FALSE cells. Everything else, including decimal128, date32 and timestamp columns, is written as text. A sheet holds at most 1,048,576 rows, which scoring outputs and event tables saved as Arrow often exceed.

Two habits from data frame code cause trouble in Excel. NaN values, which Polars and NumPy keep separate from nulls, become #NUM! error cells, and a single #NUM! makes SUM or AVERAGE over the column return an error too. Replace NaN with null before writing the Arrow file, or with a CASE expression in the SQL Query tool. Categorical columns arrive as plain text, which is fine for filtering but loses any category order you set.

Worked example

A small sample file, converted with the default settings.

Input (Arrow)

Arrow IPC file (binary, columnar) — shown as a table with its schema

sensor_idsiteread_attemp_cok
101Dock A2026-03-02 09:15:00.1234.25true
102Dock A2026-03-02 09:15:00.1254.5true
205Cold Room 22026-03-02 09:15:01-18.75true
311Loading Bay2026-03-02 09:15:01.004NULLfalse

Schema: sensor_id INTEGER, site VARCHAR, read_at TIMESTAMP_NS, temp_c DOUBLE, ok BOOLEAN

Output (Excel)

Excel workbook, first sheet (Sheet1)

sensor_idsiteread_attemp_cok
101Dock A2026-03-02 09:15:00.1234.25true
102Dock A2026-03-02 09:15:00.1254.5true
205Cold Room 22026-03-02 09:15:01-18.75true
311Loading Bay2026-03-02 09:15:01.004NULLfalse

What changes when you convert Arrow to Excel

  • int, uint and float columns become numeric cells, and bool becomes TRUE or FALSE.
  • NaN becomes a #NUM! error cell. A null becomes an empty cell, like temp_c for sensor 311.
  • Timestamps become text such as 2026-03-02 09:15:00.123, in UTC, cut to milliseconds. Excel will not sort or filter them as dates until they are converted.
  • Dictionary-encoded columns are written as their text labels.
  • Struct, list and map cells hold compact JSON text such as [1,2,3], because an Excel cell cannot nest values. Flatten nested fields first if you want separate columns.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Frequently Asked Questions

Why do some cells show #NUM!?

Those cells were NaN in the Arrow file. Excel has no NaN value, so they are written as a numeric error. Use fill_nan(None) in Polars or df.replace(np.nan, None) in pandas before saving the Arrow file to get blank cells instead.

How do I make Excel treat the timestamp column as dates?

In a helper column, =VALUE(LEFT(A2,19)) turns the text into a date-time serial in most locales. Format that column as yyyy-mm-dd hh:mm:ss. The text is already in year-month-day order, so there is no day/month ambiguity.

Does the pandas index become a column in the sheet?

Only if it was saved in the Arrow file. pyarrow stores a non-default index as a column named after the index, or __index_level_0__ if it had no name. Delete that column in Excel if you do not need it.

What is Excel format?

Excel (XLSX) is Microsoft's spreadsheet format, widely used in business. It supports multiple sheets, formulas, and formatting.

Related Tools