sheetjs_sheetjs/docbits/54_shobject.md
SheetJS c88f83940c RTF write stub
- Empty WS on RTF read, rudimentary write
- reshape XLS VBA blob
- CI adding back old nodejs versions
- refresh tests and docs
2017-10-02 04:15:36 -04:00

3.4 KiB

Worksheet Object

In addition to the base sheet keys, worksheets also add:

  • ws['!cols']: array of column properties objects. Column widths are actually stored in files in a normalized manner, measured in terms of the "Maximum Digit Width" (the largest width of the rendered digits 0-9, in pixels). When parsed, the column objects store the pixel width in the wpx field, character width in the wch field, and the maximum digit width in the MDW field.

  • ws['!rows']: array of row properties objects as explained later in the docs. Each row object encodes properties including row height and visibility.

  • ws['!merges']: array of range objects corresponding to the merged cells in the worksheet. Plain text formats do not support merge cells. CSV export will write all cells in the merge range if they exist, so be sure that only the first cell (upper-left) in the range is set.

  • ws['!protect']: object of write sheet protection properties. The password key specifies the password for formats that support password-protected sheets (XLSX/XLSB/XLS). The writer uses the XOR obfuscation method. The following keys control the sheet protection -- set to false to enable a feature when sheet is locked or set to true to disable a feature:

Worksheet Protection Details (click to show)
key feature (true=disabled / false=enabled) default
selectLockedCells Select locked cells enabled
selectUnlockedCells Select unlocked cells enabled
formatCells Format cells disabled
formatColumns Format columns disabled
formatRows Format rows disabled
insertColumns Insert columns disabled
insertRows Insert rows disabled
insertHyperlinks Insert hyperlinks disabled
deleteColumns Delete columns disabled
deleteRows Delete rows disabled
sort Sort disabled
autoFilter Filter disabled
pivotTables Use PivotTable reports disabled
objects Edit objects enabled
scenarios Edit scenarios enabled
  • ws['!autofilter']: AutoFilter object following the schema:
type AutoFilter = {
  ref:string; // A-1 based range representing the AutoFilter table range
}

Chartsheet Object

Chartsheets are represented as standard sheets. They are distinguished with the !type property set to "chart".

The underlying data and !ref refer to the cached data in the chartsheet. The first row of the chartsheet is the underlying header.

Macrosheet Object

Macrosheets are represented as standard sheets. They are distinguished with the !type property set to "macro".

Dialogsheet Object

Dialogsheets are represented as standard sheets. They are distinguished with the !type property set to "dialog".