Features

Why developers choose osbxl

📑
🎉 Version 2.0 Headline Feature

Simultaneous Excel & PDF Output — No External Tools Required

Previously, enterprise workflows faced operational overhead converting Excel sheets to PDF with third-party software or maintaining duplicate layout implementations.
With osbxl 2.0, you can export both native Excel workbooks via wb.save() and high-precision PDFs via wb.saveAsPdf() directly from a single in-memory workbook.
From fonts, borders, cell fills, to paper setup, print areas, and page breaks, export beautiful PDFs with high Excel fidelity in milliseconds.

🚀 Zero External Processes
No heavy external server processes required. Native C++ core conversion ensures blazing-fast direct export.
📐 Precise Page & Print Setup
Control A4/A3/Letter sizes, portrait/landscape, margins (inch-based), print areas, and headers/footers via PageSetupObject.
⚡ Direct Memory Buffer Stream
Fetch raw binary bytes via saveAsPdfToBuffer() to stream directly into Web API responses without temp files.
🤖
Next-Gen Development

Fully Optimized for AI Coding — Generate Accurate Excel Code on the First Try

Bundled with the Official AI Skill package, deeply optimized for Cursor, GitHub Copilot, Gemini, and Claude Code.
Simply drop the package into your repository to provide AI tools with strict API signatures, verified patterns, and pitfall rules.
Say goodbye to hallucinated non-existent methods common in other libraries —
generate robust, production-ready Excel code from natural language prompts effortlessly.

🛡️ Zero Hallucinations
Verified rules and curated API knowledge prevent broken guess-based code generation
🌐 Native Across 5 Languages
Tailored conventions for Python, Node.js, Java, PHP, and WebAssembly out of the box
⚡ Zero Setup Overhead
Extract to project root; AI coding tools recognize project context automatically
📄

Proprietary Excel I/O Engine

Our proprietary Excel I/O engine supports high-precision, comprehensive Excel generation.

⚡

Overwhelming Calculation Speed

The osbxl core engine is implemented in C++ and processes even complex formula calculations in milliseconds.

🌐

Modern Web Technology (Wasm) Support

With WebAssembly (Wasm) support, osbxl handles Excel files not only on the server side but also on the client side (in the browser), reducing server load and enabling real-time calculation.

Server-side
Batch processing and API integration with Java / Python / Node.js / PHP
Client-side
Load, calculate and save Excel entirely in the browser
🌐

Multi-Platform

One calculation logic runs as-is across five environments: Java / Python / Node.js / PHP / WebAssembly.
From server-side batch processing to real-time calculation in the browser, the same API covers it all.

☕
Java
JDK 1.8+
🐍
Python
Python 3.8+
🟢
Node.js
Node 18+ (N-API)
🐘
PHP
PHP 8.2+ (NTS)
🌍
Wasm
All major browsers
✅

Broad Version Support

Wide support from older to latest versions of each language. osbxl fits your existing system environment.

☕ Java
JDK 1.8 through the latest version
Including long-term support (LTS) versions
🐍 Python
Python 3.8 through the latest version
3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
🟢 Node.js
Node 18 through the latest version
ABI compatibility via N-API (Node-API)
🐘 PHP
PHP 8.2 – 8.5 (NTS builds)
🧩 WebAssembly
Browsers: Chrome/Edge 133+, Firefox 134+ (Safari not supported)
Node.js 24+ when running on Node.js (MEMORY64 / Wasm 3.0 required)
📊

Nearly 500 Excel-Compatible Functions

Financial functions (PV, FV, NPV, IRR, etc.), statistical functions (AVERAGE, STDEV, etc.), string functions, date functions —
covering most of the functions currently supported by Excel. Formulas from your existing spreadsheets work as-is.

📈

Charts & Graphs

Create and edit Excel-compatible charts: bar, line, pie, scatter and more.
Charts update automatically as the data changes.

Bar
Line
Pie
Scatter
Area
Radar
Bubble
Stock
🎨

Conditional Formatting

Automatic coloring and formatting based on cell values. Data bars, color scales and icon sets highlight your data visually.

Supported conditions:
  • • Cell value greater than / less than X
  • • Highlight top / bottom N items
  • • Highlight duplicate values
  • • Formula-based conditions
🔍

AutoFilter & Sorting

Set filters on data ranges to extract or hide rows by condition. Supports combining multiple conditions and text / number / date filters.

Filter
Conditional extraction by text, number and date
Sort
Ascending / descending, multi-key sorting
🗂️

Tables & PivotTables

Structure data ranges with Excel-compatible tables. Aggregation and analysis with PivotTables are fully controllable from your program.

Tables
  • • Auto-expansion and consistent formatting
  • • Total row display
  • • Filter / sort
PivotTables
  • • Row / column / value field configuration
  • • Aggregate functions (SUM/COUNT/AVG)
  • • Grouping and filtering
🔧

Simple API

Nearly identical, concise API design across Java / Python / Node.js.
The same method names and parameters work in every language,
keeping the learning curve low so you can start developing right away.

Java
sheet.getRange("A1")
.setNumberValue(100)
Python
sheet.getRange("A1")
.setNumberValue(100)
Node.js
sheet.getRange("A1")
.setNumberValue(100)
const osbxl = require("osbxl");

const app = new osbxl.App();
const book = app.createWorkBook("/tmp/demo.xlsx");
const sheet = book.addWorkSheet("Sheet1");

sheet.getRange("A1").setNumberValue(100);
sheet.getRange("A2").setNumberValue(200);
sheet.getRange("A3").setFormula("SUM(A1:A2)");

const values = sheet.getRange("A3").getValue();
console.log(values["A3"]); // "300"

book.save();
book.close();