V4 V5

Where XLSX (OOXML) support stands, feature by feature. Legend: ○ supported, △ partial, × not supported.

Cells and data

FeatureReadWriteNotes
Numbers, text, booleans, errors○○
Dates (1900 and 1904 systems)○○Files using either system can be read
Shared strings○○
Inline strings○○
Rich strings (<r>)○○
Formulas△○On load, Excel’s cached values are used without re-evaluating
Shared formulas×—Expansion is not supported
Array formulas and dynamic arrays××The engine does not support them

Formatting

FeatureReadWriteNotes
Fonts (name, size, bold, italic, underline, strikethrough)○○
Text and background colors○○
Alignment (horizontal, vertical, wrap, indent, rotation)○○
Number formats (numFmt)○○Fractions and scientific notation are unsupported by the format engine
Borders○○
Style interning○○

Structure

FeatureReadWriteNotes
Merged cells○○
Row heights and column widths○○
Hidden rows and columns○○
Outlines (grouping)○○Level and collapsed state
Defined names (<definedNames>)○○Workbook and sheet scope
Built-in names (_xlnm.*)△△The print area (_xlnm.Print_Area) and print titles (_xlnm.Print_Titles) round-trip as PrintSettings. The rest are unsupported
Multiple sheets○○

Conditional formatting

FeatureReadWriteNotes
cellIs○○
expression○○
The containsText family○△CaseSensitive cannot be expressed in OOXML
colorScale (two- and three-color)○○
dataBar○△Negative color, zero axis and border need the x14 extension, so they are not written
iconSet○○Every standard set
top10○○
aboveAverage○○
duplicateValues / uniqueValues○○
priority / stopIfTrue○○
<dxfs>○○

Drawing and the rest

FeatureReadWriteNotes
Images (drawing)○○PNG / JPEG
Page setup (<pageSetup>)○○Paper, orientation, margins, scale
Header and footer (<headerFooter>)○○Left/center/right × odd, even and first page. Formatting codes (&B and friends) are preserved as text but not drawn
View state (<sheetViews>)○○Frozen panes, gridline/header visibility, zoom. Split (unfrozen) panes are out of scope
Hidden sheets and tab colors○○state="hidden" and <sheetPr><tabColor>
Auto-filter (<autoFilter>)○○The checked-value list (<filters>) and the condition (<customFilters>). Date-group trees and the color/icon/dynamic filters are out of scope, as is the streaming reader
Cell comments (notes)○○comments{n}.xml plus VML and <legacyDrawing>. Threaded comments are out of scope
Data validation (<dataValidations>)○○All eight types × eight operators, allowBlank, the input message and the error alert
The data-validation x14 extension (<extLst>)○×A list whose source is on another sheet, which the classic element cannot express. Read; written back through the classic element
Sheet protection (<sheetProtection>)○○The permission flags and the per-cell locks (<protection locked="0"/>)
Charts××V5 has no chart feature
Shapes and text boxes××Likewise (images are supported)
Pivot tables××
Furigana (<rPh>)××Tied to the PHONETIC function question
Macros (VBA)××No plans to support

ReoGrid’s own features

XLSX has no equivalent concept, so these are lost on export.

FeatureOn exportreogrid-json
Cell types (checkboxes and the rest)become ordinary cells○
Alternating row fills (banded rows)lost○
A data bar’s negative color and zero axislost○

To keep them, use reogrid-json.

Implementation

Reading and writing are done by unvell.ReoGrid.IO.Excel, which depends on no external package. Reading streams through XmlReader.

See XLSX.

Was this article helpful?