Where XLSX (OOXML) support stands, feature by feature. Legend: ○ supported, △ partial, × not supported.
Cells and data
| Feature | Read | Write | Notes |
|---|---|---|---|
| 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
| Feature | Read | Write | Notes |
|---|---|---|---|
| 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
| Feature | Read | Write | Notes |
|---|---|---|---|
| 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
| Feature | Read | Write | Notes |
|---|---|---|---|
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
| Feature | Read | Write | Notes |
|---|---|---|---|
| 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 |
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.
| Feature | On export | reogrid-json |
|---|---|---|
| Cell types (checkboxes and the rest) | become ordinary cells | ○ |
| Alternating row fills (banded rows) | lost | ○ |
| A data bar’s negative color and zero axis | lost | ○ |
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.