Features
Why developers choose osbxl
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.
Multi-Platform
One calculation logic runs as-is across four environments: Java / Python / Node.js / WebAssembly. From server-side batch processing to real-time calculation in the browser, the same API covers it all.
Broad Version Support
Wide support from older to latest versions of each language. osbxl fits your existing system environment.
400+ 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.
Conditional Formatting
Automatic coloring and formatting based on cell values. Data bars, color scales and icon sets highlight your data visually.
- • 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.
Tables & PivotTables
Structure data ranges with Excel-compatible tables. Aggregation and analysis with PivotTables are fully controllable from your program.
- • Auto-expansion and consistent formatting
- • Total row display
- • Filter / sort
- • 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.
.setNumberValue(100)
.setNumberValue(100)
.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();