
UNVELL Inc. has released ReoGrid Web 1.2.1, the latest version of our Excel-like spreadsheet library for web applications. The 1.2.x series, built up since the official launch in March, has pushed the formula and editing experience to a level that genuinely feels like Excel. There are no breaking changes to the public API.
1.2.1 extends the drag interaction on the formula reference highlights that appear on the grid while editing a formula.
$) flags.move, nwse-resize, nesw-resize) on the border and corners.The result: you can adjust a formula's reference ranges intuitively, entirely with the mouse.
Leading up to 1.2.1, the 1.2.x series shipped these headline features.
ReoGrid Web now supports 109 Excel-compatible built-in functions spanning lookup/reference, multi-criteria aggregation, dates, math/trig, statistics, text, and reference categories. Formulas inside imported .xlsx files work out of the box.
| Category | Examples |
|---|---|
| Lookup / reference | VLOOKUP, HLOOKUP, INDEX, MATCH, XLOOKUP, XMATCH |
| Multi-criteria aggregation | SUMIFS, COUNTIFS, AVERAGEIFS, SUMPRODUCT |
| Date | TODAY, NOW, YEAR, MONTH, DAY, WEEKDAY, EDATE, EOMONTH, DATEDIF |
| Math / trig | EXP, LN, LOG, SIN, COS, TAN, ATAN2, RAND, RANDBETWEEN |
| Statistics | MEDIAN, LARGE, SMALL, RANK, CEILING, FLOOR, MROUND |
| Text | SEARCH, EXACT, PROPER, CHAR, CODE |
Argument order and the gotchas follow Excel. For example, Excel's ATAN2(x, y) reverses the argument order of JavaScript's Math.atan2(y, x) — the library follows Excel.
When you edit a formula starting with =, every reference you enter (A1, B2:D10, etc.) is color-coded inline from a shared 8-color palette, and the grid draws a matching dashed rectangle around each referenced range. Clicking another cell inserts its address at the caret; drag extends it into a range. When a reference overlaps a merged region, the highlight expands to enclose the full merged area.
A small square at the bottom-right of the selection lets you drag to extend values up, down, left, or right.
1, 2 → 3, 4, 5).$ references are preserved.Styles, number formats, and cell types propagate to the new region, with full undo/redo support.
Worksheet events are now exposed as React props and Vue emits. You can wire up onSelectionChange, onCellValueChange, onScrollChange, and more declaratively, with no imperative worksheet.on*() calls.
import { Reogrid } from '@reogrid/pro/react';
<Reogrid
onReady={({ worksheet }) => worksheet.cell('A1').setValue('Hello')}
onSelectionChange={(range) => console.log('selected', range)}
onCellValueChange={({ row, column, newValue }) => save(row, column, newValue)}
style={{ width: '100%', height: 500 }}
/>
Conditional format rules can now carry a border payload that overrides cell borders per side (right / top / bottom / left) on matching cells. These round-trip through xlsx <dxf><border>, so formatting survives an Excel load-and-save.
The Canvas render path now caches ctx.font, ctx.fillStyle, and measureText, plus wrapped/multi-line text layout, on a per-frame basis — cutting Canvas API calls during scroll by roughly 70%+ per frame on text-heavy sheets. Frame rates stay stable even on dense sheets.
The Lite edition requires no license key and is available on npm.
npm install @reogrid/lite
The Pro edition adds the 109-function formula library, xlsx export, the full set of cell types, and more.