SmartQueryTools

Convert Arrow to HTML Table Online

Convert Arrow files to an HTML table directly in your browser. Copy the markup or download a ready-to-use HTML file.

About converting Arrow to HTML

Arrow to HTML produces a plain table for a report, an intranet page or a static site, straight from a file a data pipeline wrote. It covers the same need as DataFrame.to_html without loading the file into pandas first, which helps when the file came from Polars, Rust or a Hugging Face cache and you only need a quick published view. No Python install is needed, which matters on a locked-down work laptop.

The markup differs from pandas output in useful ways. There is no index column, no class="dataframe" attribute, no border attribute and no inline styles, just <table>, <thead> and <tbody>. That makes it easy to style with your own CSS or a framework such as Tailwind or Bootstrap by adding a class to the table tag.

The table is limited to the first 1,000 rows. Values are escaped, so strings from model outputs or scraped text that contain < or & cannot break the page. Numbers are printed exactly as stored, which for float32 columns means long tails of digits. Round them in the SQL Query tool before converting if the table is for readers rather than machines.

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 (HTML)

<table>
<thead>
  <tr><th>sensor_id</th><th>site</th><th>read_at</th><th>temp_c</th><th>ok</th></tr>
</thead>
<tbody>
  <tr><td>101</td><td>Dock A</td><td>2026-03-02 09:15:00.123</td><td>4.25</td><td>true</td></tr>
  <tr><td>102</td><td>Dock A</td><td>2026-03-02 09:15:00.125</td><td>4.5</td><td>true</td></tr>
  <tr><td>205</td><td>Cold Room 2</td><td>2026-03-02 09:15:01</td><td>-18.75</td><td>true</td></tr>
  <tr><td>311</td><td>Loading Bay</td><td>2026-03-02 09:15:01.004</td><td></td><td>false</td></tr>
</tbody>
</table>

What changes when you convert Arrow to HTML

  • Each Arrow field becomes a <th>, and each record becomes a <tr> of <td> cells.
  • The characters &, <, > and " in names and values are replaced with HTML entities.
  • A null becomes an empty cell, like temp_c for sensor 311. NaN is printed as NaN.
  • Timestamps print as 2026-03-02 09:15:00.123 in UTC, and dictionary columns print their labels.
  • Nested values do not render as sub-tables. Lists, structs and maps appear as compact JSON text in one cell.

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

How is this different from pandas DataFrame.to_html?

pandas adds the index as the first column, a class="dataframe" attribute and a border attribute. This output has none of those, only the stored columns in bare table markup.

Can I make the table sortable?

Add a small script such as a sortable-table library to your page and point it at the table. The converter outputs static markup only.

Why do my numbers have so many decimal places?

They are float32 values printed at 64-bit precision. Round them with round(temp_c, 2) in the SQL Query tool and convert the result.

What is HTML format?

HTML (HyperText Markup Language) is the markup language of the web. An HTML table can be pasted directly into a web page or opened in a browser — no CSS or JavaScript required.

Related Tools