Add your XLS file
Drop one or more .xls files onto the converter above, or browse for them. They load into browser memory only. Nothing is uploaded, so there is no size-based pricing and no server queue.
Converting a .xls file to .arrow lifts the document's content out of its original format into a portable one. Free, private, and validated: the file never leaves your browser.
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.Converting a .xls file to .arrow lifts the document's content out of its original format into a portable one. An .xls file is a legacy Microsoft Excel workbook in the binary BIFF format, Excel's default from its earliest releases through Excel 2003. Each sheet is a stream of typed binary records (cells, formulas, formats) rather than anything textual.
An .arrow file is an Apache Arrow IPC file: a columnar table written in exactly the memory layout Arrow uses at runtime, so a reader can point at the bytes and start working without parsing or copying anything. The file format is the in-memory format with a header, a footer and a little framing, which is the entire idea. For this route the practical draw is zero-copy reads: opening a file costs almost nothing regardless of its size and types are exact and preserved, including nulls, timestamps and nested structures, balanced against uncompressed by default, so files are substantially larger than Parquet, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .xls, the 65,536-row ceiling truncates modern datasets. Switching to .arrow buys you zero-copy reads: opening a file costs almost nothing regardless of its size, which is why it is the better fit for handing a table between Python, R, Java and JavaScript without a serialization step. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | Excel workbook (.xls) | Apache Arrow IPC (.arrow) |
|---|---|---|
| Format type | Text-based: characters and structure, so there is no visual quality loss | Lossless: every pixel or sample is preserved exactly |
| How it stores data | composed of typed binary records (id, length, payload), LABELSST for shared-string cells, FORMULA for calculations, and hundreds more | data is columnar: each column is one contiguous buffer plus an optional validity bitmap, so a scan touches only the columns it needs |
| Strongest at | reading exports from ERP, banking, and lab systems that still emit .xls | handing a table between Python, R, Java and JavaScript without a serialization step |
| Weak spot | the 65,536-row ceiling truncates modern datasets | uncompressed by default, so files are substantially larger than Parquet |
| Metadata | SummaryInformation streams in the compound file record author, company, and creation and modification timestamps | the embedded schema, field names and custom key-value metadata are read; JSON and CSV have nowhere to put schema metadata, so it is reported rather than carried |
Drop one or more .xls files onto the converter above, or browse for them. They load into browser memory only. Nothing is uploaded, so there is no size-based pricing and no server queue.
Select .arrow in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if ARROW is selectable, the route is real and validated.
Press Convert. A reader for that file's own format opens it in memory on your device and takes out the text and tables; nothing is uploaded.
Each result is checked before the download unlocks: where ARROW has a signature or a structure this converter can read back, the file is re-opened and parsed, and where it has neither, the check is that a non-empty file of the declared type came back. A result that fails is reported as an error instead of being offered for download, and outputs keep the original filename with the .arrow extension.
There is no visual quality to lose, because xls is text-oriented and arrow is lossless-oriented, so the question is structural fidelity. Text, ordering, and basic structure are preserved; complex layout, embedded objects, and styling beyond the target's model are simplified.
Yes. The .xls file is processed inside your browser tab and never uploaded. A reader for that file's own format opens it in memory on your device and takes out the text and tables; nothing is uploaded. Close the tab and the file is gone from memory.
Arrow has first-party implementations for C++, Java, Python (pyarrow), R, Go, Rust, C#, Julia and JavaScript, and Pandas, Polars, DuckDB, Spark and BigQuery all speak it. Novus Convert reads .arrow files in the browser with the official JavaScript implementation and writes JSON, CSV, XLSX or Feather; because Feather v2 IS the Arrow IPC file format, arrow-to-feather is a renaming of the same bytes rather than a re-encoding.
It depends on the content: data is columnar: each column is one contiguous buffer plus an optional validity bitmap, so a scan touches only the columns it needs. Convert one representative file first and compare before batch-processing a large set.
In .xls, SummaryInformation streams in the compound file record author, company, and creation and modification timestamps. Re-encoding through the browser pipeline does not carry embedded metadata into the output, which doubles as a privacy scrub. Check the exported file if you specifically need tags preserved.