This is a preview of the V5 documentation. Content may still change until the official release on August 19, 2026.
V4 V5

Reading and writing XLSX (OOXML) is handled by unvell.ReoGrid.IO.Excel. It depends on no external packages (neither the Open XML SDK nor EPPlus is used).

Everything is bundled with the One packages.

Reading and writing

using unvell.ReoGrid.Core;
using unvell.ReoGrid.IO.Excel;

Workbook loaded = XlsxReader.Read("book.xlsx");
XlsxWriter.Write(wb, "out.xlsx");

// ストリームからも読める
using var stream = File.OpenRead("book.xlsx");
Workbook fromStream = XlsxReader.Read(stream);

XlsxWriter.Write has a stream overload as well.

Streaming reads

Reading is streamed through XmlReader directly into the sparse store. Memory usage is proportional to the number of cells that actually exist (not the sheet’s declared dimensions).

Lazy loading for huge files

// 巨大ファイルはシート単位の遅延ロードで開く
using var virtualBook = XlsxReader.OpenVirtual("large.xlsx", SheetLoadMode.OnDemand);
ModeBehavior
OnDemandBuilds each sheet the first time it is displayed
BackgroundBuilds the active sheet first, then prefetches the rest in the background

VirtualWorkbook is IDisposable. It holds on to the underlying stream, so dispose it when you are done.

How formulas are handled

Formulas are not re-evaluated on load. The cached values saved by Excel are used as-is.

var wb = XlsxReader.Read("book.xlsx");

// Excel のキャッシュ値をそのまま読むため、ロード時に再評価はしない。
// 自前で計算し直したい場合だけ明示的に呼ぶ。
foreach (var sheet in wb.Worksheets)
	sheet.Recalculate();

There is a reason for this design: even for files containing functions that V5 does not implement, the values Excel calculated are displayed as-is. Re-evaluating them would turn them into #NAME?.

What is supported

FeatureReadWrite
Values (numbers, strings, booleans, dates, errors)YesYes
Shared strings, inline strings, rich stringsYesYes
Styles (font, color, alignment, wrapping)YesYes
Number formatsYesYes
BordersYesYes
Merged cellsYesYes
Row heights, column widths, hidden stateYesYes
1900 / 1904 date systemsYesYes
Conditional formatting (<conditionalFormatting> / <dxfs>)YesYes
Defined names (<definedNames>)YesYes
Outlines (grouping)YesYes
Images (drawing)YesYes
Page setup (<pageSetup>)YesYes
FormulasYes (cached values preserved)Yes

Not supported

FeatureNotes
Auto filter (<autoFilter>)Row visibility is preserved, but the filter settings are lost
Shared formula expansion
Cell commentsV5 has no comment feature itself
Charts and shapesSame as above (images are supported)
Cell typesXLSX has no corresponding concept, so they become plain cells
Built-in names (such as _xlnm.Print_Area)Print areas are handled via PrintSettings
Data bar negative colors, zero axis, and bordersRequires the OOXML x14 extensions
View state such as freeze panes and zoomThe view is separate from the model and is not persisted
cellStyleXfs (xfId) style inheritanceNot expanded on read
Was this article helpful?