MS
MS
MS
Tools. The Open Specifications documentation does not require the use of Microsoft programming
tools or programming environments in order for you to develop an implementation. If you have access
to Microsoft programming tools and environments, you are free to take advantage of them. Certain
Open Specifications documents are intended for use in conjunction with publicly available standards
specifications and network programming art and, as such, assume that the reader either is familiar
with the aforementioned material or has immediate access to it.
1 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Revision Summary
Revision Revision
Date History Class Comments
6/29/2010 2.04 Editorial Changed language and formatting in the technical content.
2 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Revision Revision
Date History Class Comments
technical content.
3 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Table of Contents
1 Introduction .......................................................................................................... 28
1.1 Glossary ......................................................................................................... 28
1.2 References ...................................................................................................... 51
1.2.1 Normative References ................................................................................. 51
1.2.2 Informative References ............................................................................... 52
1.3 Overview ........................................................................................................ 53
1.3.1 stream Byte Ordering .................................................................................. 53
1.3.2 Organization of This Documentation .............................................................. 53
1.4 Relationship to Protocols and Other Structures .................................................... 54
1.5 Applicability Statement ..................................................................................... 54
1.6 Versioning and Localization ............................................................................... 54
1.7 Vendor-Extensible Fields ................................................................................... 55
2 Structures ............................................................................................................. 56
2.1 File Structure................................................................................................... 56
2.1.1 Compound File ........................................................................................... 56
2.1.2 Stream ...................................................................................................... 56
2.1.3 Substream ................................................................................................. 56
2.1.4 Record ...................................................................................................... 56
2.1.5 Collection of Records ................................................................................... 57
2.1.6 Future Record ............................................................................................ 57
2.1.6.1 Chart ................................................................................................... 58
2.1.6.2 PivotTable ............................................................................................ 58
2.1.7 Storages and Streams ................................................................................. 58
2.1.7.1 Component Object Stream (\001CompObj) .............................................. 58
2.1.7.2 Control Stream (Ctls) ............................................................................ 59
2.1.7.3 Data Spaces Storage (\006DataSpaces)................................................... 59
2.1.7.4 Document Summary Information Stream (\005DocumentSummaryInformation)
.......................................................................................................... 59
2.1.7.5 Embedding Storage (MBD...) .................................................................. 59
2.1.7.6 Encryption Stream (encryption) .............................................................. 59
2.1.7.7 Link Storage (LNK...) ............................................................................. 59
2.1.7.8 List Data Stream (List Data) ................................................................... 60
2.1.7.8.1 Attributes ....................................................................................... 61
2.1.7.8.2 Elements ........................................................................................ 61
2.1.7.8.2.1 LISTNAME ................................................................................. 62
2.1.7.8.2.2 VIEWGUID ................................................................................ 62
2.1.7.8.2.3 LISTWEB .................................................................................. 62
2.1.7.8.2.4 ROOTFOLDER ............................................................................ 62
2.1.7.8.2.5 LISTSCHEMA ............................................................................. 62
2.1.7.8.2.6 VIEWSCHEMA ............................................................................ 63
2.1.7.8.2.7 LISTDATA ................................................................................. 63
2.1.7.8.2.8 UPDATE .................................................................................... 63
2.1.7.8.2.9 LISTDATAFTR ............................................................................ 64
2.1.7.9 Office Data Store Storage (MsoDataStore) ............................................... 64
2.1.7.10 Office Toolbars Stream (XCB) ................................................................. 64
2.1.7.11 OLE Stream (\001Ole) ........................................................................... 65
2.1.7.12 Pivot Cache Storage (_SX_DB_CUR)........................................................ 65
2.1.7.13 Protected Content Stream (\009DRMContent) .......................................... 65
2.1.7.14 Revision Stream (Revision Log) .............................................................. 65
2.1.7.15 Signatures Stream (_signatures) ............................................................ 66
2.1.7.16 Summary Information Stream (\005SummaryInformation) ........................ 66
2.1.7.17 User Names Stream (User Names) .......................................................... 67
2.1.7.18 VBA Storage (_VBA_PROJECT_CUR) ........................................................ 67
2.1.7.19 Viewer Content Stream (\009DRMViewerContent) ..................................... 67
4 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.1.7.20 Workbook Stream (Workbook) ................................................................ 67
2.1.7.20.1 Chart Sheet Substream .................................................................... 67
2.1.7.20.2 Dialog Sheet Substream ................................................................... 69
2.1.7.20.3 Globals Substream .......................................................................... 69
2.1.7.20.4 Macro Sheet Substream ................................................................... 71
2.1.7.20.5 Worksheet Substream ...................................................................... 71
2.1.7.20.6 Common Productions ....................................................................... 73
2.1.7.21 XML Signatures Storage (_xmlsignatures) ................................................ 75
2.1.7.22 XML Stream (XML) ................................................................................ 75
2.1.7.22.1 Elements ........................................................................................ 76
2.1.7.22.1.1 MapInfo .................................................................................... 77
2.1.7.22.1.2 Schema .................................................................................... 77
2.1.7.22.1.3 Map ......................................................................................... 77
2.1.7.22.1.4 DataBinding .............................................................................. 78
2.1.7.22.2 Simple Types .................................................................................. 78
2.1.7.22.2.1 ST_DataBindingLoadMode ........................................................... 78
2.1.7.22.2.2 ST_XmlMapBoolean.................................................................... 79
2.1.7.22.2.3 ST_XmlMapId ............................................................................ 79
2.1.7.22.2.4 ST_XmlString65535 ................................................................... 79
2.1.7.22.2.5 ST_XmlString256 ....................................................................... 79
2.2 Conceptual Overview ........................................................................................ 79
2.2.1 Cell Table .................................................................................................. 79
2.2.1.1 Retrieval of Last-Calculated Cell Values Without Loading Cell Table ............. 80
2.2.2 Formulas ................................................................................................... 80
2.2.2.1 Operator Tokens ................................................................................... 81
2.2.2.2 Operand Tokens.................................................................................... 81
2.2.2.2.1 Value Class ..................................................................................... 81
2.2.2.2.2 Reference Class............................................................................... 82
2.2.2.3 Control Tokens ..................................................................................... 82
2.2.2.4 Display Tokens ..................................................................................... 82
2.2.2.5 Mem Tokens ......................................................................................... 82
2.2.2.6 Formula Elements ................................................................................. 82
2.2.3 Charts ....................................................................................................... 82
2.2.3.1 Chart Sheet .......................................................................................... 83
2.2.3.2 Chart Data Cache .................................................................................. 84
2.2.3.3 Chart ................................................................................................... 85
2.2.3.4 Pivot Chart ........................................................................................... 86
2.2.3.5 Axis Group ........................................................................................... 86
2.2.3.6 Axis..................................................................................................... 88
2.2.3.7 Chart Group ......................................................................................... 90
2.2.3.8 Legend ................................................................................................ 91
2.2.3.9 Series .................................................................................................. 93
2.2.3.10 Data Point ............................................................................................ 94
2.2.3.11 Data Label ........................................................................................... 94
2.2.3.12 Trendline ............................................................................................100
2.2.3.13 Error Bar.............................................................................................100
2.2.3.14 Data Table ..........................................................................................101
2.2.3.15 Attached Label.....................................................................................102
2.2.3.16 SPRC ..................................................................................................103
2.2.3.17 Chart Area ..........................................................................................103
2.2.4 Metadata ..................................................................................................103
2.2.4.1 Metadata Types ...................................................................................104
2.2.4.2 Cell Metadata ......................................................................................104
2.2.4.3 Value Metadata ....................................................................................104
2.2.4.4 Metadata Block ....................................................................................105
2.2.4.5 MDX Metadata .....................................................................................105
2.2.4.5.1 MDX Tuple Metadata .......................................................................106
2.2.4.5.2 MDX Set Metadata ..........................................................................106
5 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.4.5.3 MDX Member Property Metadata ......................................................106
2.2.4.5.4 MDX KPI Metadata ..........................................................................106
2.2.5 PivotTables ...............................................................................................106
2.2.5.1 PivotTable Records ...............................................................................107
2.2.5.1.1 Usage of SXAddl Records .................................................................107
2.2.5.1.1.1 Class .......................................................................................107
2.2.5.1.1.1.1 SxcView Class .....................................................................108
2.2.5.1.1.1.2 SxcField Class .....................................................................109
2.2.5.1.1.1.3 SxcHierarchy Class ..............................................................109
2.2.5.1.1.1.4 SxcCache Class ...................................................................110
2.2.5.1.1.1.5 SxcCacheField Class.............................................................111
2.2.5.1.1.1.6 SxcQsi Class .......................................................................111
2.2.5.1.1.1.7 SxcQuery Class ...................................................................112
2.2.5.1.1.1.8 SxcGrpLevel Class ...............................................................112
2.2.5.1.1.1.9 SxcGroup Class ...................................................................112
2.2.5.1.1.1.10 SxcCacheItem Class ............................................................113
2.2.5.1.1.1.11 SxcSXrule Class ..................................................................113
2.2.5.1.1.1.12 SxcSXfilt Class ....................................................................114
2.2.5.1.1.1.13 SxcSXDH Class ...................................................................114
2.2.5.1.1.1.14 SxcAutoSort Class ...............................................................114
2.2.5.1.1.1.15 SxcSXMgs Class ..................................................................115
2.2.5.1.1.1.16 SxcSXMg Class ....................................................................115
2.2.5.1.1.1.17 SxcField12 Class .................................................................115
2.2.5.1.1.1.18 SxcSXCondFmts Class ..........................................................116
2.2.5.1.1.1.19 SxcSXCondFmt Class ...........................................................116
2.2.5.1.1.1.20 SxcSXFilters12 Class ............................................................116
2.2.5.1.1.1.21 SxcSXFilter12 Class .............................................................117
2.2.5.2 Data Functionality Level ........................................................................117
2.2.5.3 PivotCache ..........................................................................................117
2.2.5.3.1 PivotCache Functionality Level .........................................................118
2.2.5.3.2 Source Data...................................................................................118
2.2.5.3.2.1 Multiple Consolidation Ranges ....................................................119
2.2.5.3.3 Associated PivotTable views .............................................................121
2.2.5.3.4 OLAP PivotCache ............................................................................121
2.2.5.3.4.1 OLAP Data Model ......................................................................121
2.2.5.3.5 Cache Fields ..................................................................................122
2.2.5.3.6 Cache Items ..................................................................................123
2.2.5.3.7 Grouping .......................................................................................125
2.2.5.3.8 Calculated Fields ............................................................................131
2.2.5.3.9 Calculated Items ............................................................................132
2.2.5.3.10 OLAP Grouping ...............................................................................132
2.2.5.3.11 OLAP Calculated Members ...............................................................132
2.2.5.3.12 Cache Records ...............................................................................133
2.2.5.4 PivotTable View ...................................................................................134
2.2.5.4.1 Associated PivotCache .....................................................................134
2.2.5.4.2 OLAP PivotTable view ......................................................................134
2.2.5.4.3 Pivot Fields ....................................................................................134
2.2.5.4.3.1 Pivot Field Sorting .....................................................................135
2.2.5.4.4 Pivot Items ....................................................................................136
2.2.5.4.5 Pivot Hierarchies ............................................................................136
2.2.5.4.5.1 Association of Pivot Hierarchies and Pivot Fields and Cache Fields ...137
2.2.5.4.5.2 Measures .................................................................................138
2.2.5.4.5.3 KPIs ........................................................................................138
2.2.5.4.5.4 Named Sets .............................................................................138
2.2.5.4.6 Member Properties .........................................................................138
2.2.5.4.7 Manual Filters ................................................................................139
2.2.5.4.7.1 Non-OLAP Manual Filters ............................................................139
2.2.5.4.7.2 OLAP Manual Filters ..................................................................139
6 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.4.8 Filtering by Criteria .........................................................................140
2.2.5.4.8.1 Advanced Filters .......................................................................140
2.2.5.4.8.1.1 Label Filters ........................................................................141
2.2.5.4.8.1.2 Date Filters .........................................................................141
2.2.5.4.8.1.3 Value Filters........................................................................142
2.2.5.4.8.2 Simple Filters ...........................................................................142
2.2.5.4.9 PivotTable Axes ..............................................................................142
2.2.5.4.9.1 Page Axis .................................................................................142
2.2.5.4.9.1.1 Non-OLAP Page Filtering .......................................................143
2.2.5.4.9.1.2 OLAP Page Filtering .............................................................143
2.2.5.4.9.2 Row Axis ..................................................................................144
2.2.5.4.9.3 Column Axis .............................................................................145
2.2.5.4.9.4 Nesting ....................................................................................145
2.2.5.4.9.4.1 Collapsing ..........................................................................146
2.2.5.4.9.4.2 Subtotalling ........................................................................147
2.2.5.4.9.5 Data Axis .................................................................................149
2.2.5.4.9.5.1 Data Items .........................................................................149
2.2.5.4.9.5.2 Data Field ...........................................................................149
2.2.5.4.10 PivotTable Layout ...........................................................................149
2.2.5.4.10.1 Location and Body ....................................................................150
2.2.5.4.10.1.1 Row Area ...........................................................................152
2.2.5.4.10.1.2 Column Area .......................................................................153
2.2.5.4.10.1.3 Page Area ...........................................................................153
2.2.5.4.10.1.4 Data Area ...........................................................................154
2.2.5.4.10.2 Truncation ...............................................................................154
2.2.5.4.10.3 Pivot Lines ...............................................................................154
2.2.5.4.10.4 Pivot Line Entries ......................................................................155
2.2.5.4.11 PivotTable Rules .............................................................................156
2.2.6 Styles ......................................................................................................157
2.2.6.1 XFs ....................................................................................................157
2.2.6.1.1 Cell XFs .........................................................................................157
2.2.6.1.2 Cell Styles .....................................................................................157
2.2.6.1.2.1 Cell Style XFs ...........................................................................158
2.2.6.1.2.2 Normal Style ............................................................................158
2.2.6.2 Differential Formatting (DXFs) ...............................................................158
2.2.6.2.1 Conditional Formatting ....................................................................158
2.2.6.2.2 Table Style Elements ......................................................................159
2.2.6.2.3 Table Block-Level Formatting ...........................................................159
2.2.6.2.4 PivotTable Areas.............................................................................159
2.2.6.2.5 Sorting and Filtering .......................................................................159
2.2.6.3 Table Styles ........................................................................................159
2.2.6.4 Format Conflicts...................................................................................159
2.2.7 External References ...................................................................................160
2.2.7.1 External Reference Consumers ..............................................................160
2.2.7.2 Supporting Link ...................................................................................160
2.2.7.3 External Workbook ...............................................................................161
2.2.7.4 External Defined Name .........................................................................161
2.2.7.5 External Cell Cache ..............................................................................161
2.2.7.6 DDE Data Source .................................................................................161
2.2.7.7 DDE Data Item ....................................................................................161
2.2.7.8 OLE Data Source ..................................................................................161
2.2.7.9 OLE Data Item .....................................................................................161
2.2.8 External Connections .................................................................................162
2.2.8.1 Connection Name .................................................................................162
2.2.8.2 External Connection Files ......................................................................162
2.2.8.3 OLE DB Connections .............................................................................162
2.2.8.3.1 OLAP Connections ..........................................................................162
2.2.8.4 ODBC Connections ...............................................................................163
7 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.8.5 Web Connections .................................................................................163
2.2.8.6 Text Import Connections .......................................................................163
2.2.8.7 ADO Recordset Connections ..................................................................163
2.2.8.8 DAO Recordset Connections ..................................................................163
2.2.9 Password Verifier Algorithm ........................................................................163
2.2.10 Encryption (Password to Open) ...................................................................164
2.2.11 Shared Workbooks .....................................................................................165
2.2.11.1 User Log .............................................................................................167
2.2.11.2 Revision Logs ......................................................................................167
2.2.11.3 Revision Records..................................................................................167
2.2.11.4 Insertion / Deletion of Rows / Columns Revision ......................................167
2.2.11.5 Move Cells Revision ..............................................................................168
2.2.11.6 Change Cells Revision ...........................................................................168
2.2.11.7 Sort Map .............................................................................................168
2.2.12 Shared Feature .........................................................................................168
2.3 Record Enumeration ........................................................................................168
2.3.1 By Name ..................................................................................................169
2.3.2 By Number ...............................................................................................180
2.4 Records .........................................................................................................191
2.4.1 AlRuns .....................................................................................................191
2.4.2 Area.........................................................................................................191
2.4.3 AreaFormat ...............................................................................................192
2.4.4 Array .......................................................................................................197
2.4.5 AttachedLabel ...........................................................................................198
2.4.6 AutoFilter .................................................................................................199
2.4.7 AutoFilter12 ..............................................................................................201
2.4.8 AutoFilterInfo ............................................................................................204
2.4.9 AxcExt .....................................................................................................204
2.4.10 AxesUsed .................................................................................................207
2.4.11 Axis .........................................................................................................207
2.4.12 AxisLine ...................................................................................................208
2.4.13 AxisParent ................................................................................................209
2.4.14 Backup .....................................................................................................209
2.4.15 Bar ..........................................................................................................209
2.4.16 BCUsrs .....................................................................................................210
2.4.17 Begin .......................................................................................................210
2.4.18 BigName ..................................................................................................211
2.4.19 BkHim ......................................................................................................211
2.4.20 Blank .......................................................................................................212
2.4.21 BOF .........................................................................................................212
2.4.22 BookBool ..................................................................................................214
2.4.23 BookExt....................................................................................................215
2.4.24 BoolErr .....................................................................................................216
2.4.25 BopPop.....................................................................................................216
2.4.26 BopPopCustom ..........................................................................................218
2.4.27 BottomMargin ...........................................................................................219
2.4.28 BoundSheet8 ............................................................................................220
2.4.29 BRAI ........................................................................................................221
2.4.30 BuiltInFnGroupCount ..................................................................................222
2.4.31 CalcCount .................................................................................................223
2.4.32 CalcDelta ..................................................................................................223
2.4.33 CalcIter ....................................................................................................223
2.4.34 CalcMode ..................................................................................................223
2.4.35 CalcPrecision .............................................................................................224
2.4.36 CalcRefMode .............................................................................................224
2.4.37 CalcSaveRecalc .........................................................................................224
2.4.38 CatLab .....................................................................................................225
2.4.39 CatSerRange .............................................................................................225
8 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.40 CbUsr .......................................................................................................227
2.4.41 CellWatch .................................................................................................227
2.4.42 CF ...........................................................................................................228
2.4.43 CF12 ........................................................................................................229
2.4.44 CFEx ........................................................................................................232
2.4.45 Chart .......................................................................................................233
2.4.46 Chart3d ....................................................................................................234
2.4.47 Chart3DBarShape ......................................................................................236
2.4.48 ChartFormat .............................................................................................236
2.4.49 ChartFrtInfo ..............................................................................................237
2.4.50 ClrtClient ..................................................................................................238
2.4.51 CodeName ................................................................................................239
2.4.52 CodePage .................................................................................................239
2.4.53 ColInfo .....................................................................................................240
2.4.54 Compat12.................................................................................................241
2.4.55 CompressPictures ......................................................................................241
2.4.56 CondFmt ..................................................................................................242
2.4.57 CondFmt12 ...............................................................................................242
2.4.58 Continue...................................................................................................243
2.4.59 ContinueBigName ......................................................................................243
2.4.60 ContinueFrt ...............................................................................................244
2.4.61 ContinueFrt11 ...........................................................................................244
2.4.62 ContinueFrt12 ...........................................................................................245
2.4.63 Country ....................................................................................................245
2.4.64 CrErr ........................................................................................................247
2.4.65 CRN .........................................................................................................247
2.4.66 CrtLayout12 ..............................................................................................248
2.4.67 CrtLayout12A ............................................................................................250
2.4.68 CrtLine .....................................................................................................252
2.4.69 CrtLink .....................................................................................................253
2.4.70 CrtMlFrt ....................................................................................................253
2.4.71 CrtMlFrtContinue .......................................................................................254
2.4.72 CUsr ........................................................................................................254
2.4.73 Dat ..........................................................................................................254
2.4.74 DataFormat ..............................................................................................255
2.4.75 DataLabExt ...............................................................................................255
2.4.76 DataLabExtContents...................................................................................256
2.4.77 Date1904 .................................................................................................257
2.4.78 DBCell ......................................................................................................257
2.4.79 DbOrParamQry ..........................................................................................258
2.4.80 DbQuery ...................................................................................................258
2.4.81 DBQueryExt ..............................................................................................260
2.4.82 DCon .......................................................................................................262
2.4.83 DConBin ...................................................................................................264
2.4.84 DConn ......................................................................................................265
2.4.85 DConName ...............................................................................................270
2.4.86 DConRef ...................................................................................................271
2.4.87 DefaultRowHeight ......................................................................................272
2.4.88 DefaultText ...............................................................................................272
2.4.89 DefColWidth ..............................................................................................273
2.4.90 Dimensions ...............................................................................................273
2.4.91 DocRoute..................................................................................................274
2.4.92 DropBar ...................................................................................................276
2.4.93 DropDownObjIds .......................................................................................277
2.4.94 DSF .........................................................................................................277
2.4.95 Dv ...........................................................................................................277
2.4.96 DVal ........................................................................................................280
2.4.97 DXF .........................................................................................................281
9 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.98 DxGCol .....................................................................................................282
2.4.99 End ..........................................................................................................282
2.4.100 EndBlock ..................................................................................................282
2.4.101 EndObject .................................................................................................284
2.4.102 EntExU2 ...................................................................................................285
2.4.103 EOF .........................................................................................................285
2.4.104 Excel9File .................................................................................................285
2.4.105 ExternName ..............................................................................................285
2.4.106 ExternSheet ..............................................................................................287
2.4.107 ExtSST .....................................................................................................288
2.4.108 ExtString ..................................................................................................288
2.4.109 Fbi ...........................................................................................................289
2.4.110 Fbi2 .........................................................................................................290
2.4.111 Feat .........................................................................................................291
2.4.112 FeatHdr ....................................................................................................292
2.4.113 FeatHdr11 ................................................................................................293
2.4.114 Feature11 .................................................................................................293
2.4.115 Feature12 .................................................................................................295
2.4.116 FileLock ....................................................................................................295
2.4.117 FilePass ....................................................................................................296
2.4.118 FileSharing ...............................................................................................297
2.4.119 FilterMode ................................................................................................297
2.4.120 FnGroupName ...........................................................................................297
2.4.121 FnGrp12 ...................................................................................................297
2.4.122 Font .........................................................................................................298
2.4.123 FontX .......................................................................................................300
2.4.124 Footer ......................................................................................................301
2.4.125 ForceFullCalculation ...................................................................................301
2.4.126 Format .....................................................................................................302
2.4.127 Formula....................................................................................................309
2.4.128 Frame ......................................................................................................310
2.4.129 FrtFontList ................................................................................................311
2.4.130 FrtWrapper ...............................................................................................311
2.4.131 GelFrame..................................................................................................312
2.4.132 GridSet ....................................................................................................314
2.4.133 GUIDTypeLib .............................................................................................314
2.4.134 Guts.........................................................................................................314
2.4.135 HCenter....................................................................................................315
2.4.136 Header .....................................................................................................315
2.4.137 HeaderFooter ............................................................................................319
2.4.138 HFPicture ..................................................................................................320
2.4.139 HideObj ....................................................................................................322
2.4.140 HLink .......................................................................................................322
2.4.141 HLinkTooltip ..............................................................................................322
2.4.142 HorizontalPageBreaks.................................................................................323
2.4.143 IFmtRecord ...............................................................................................323
2.4.144 Index .......................................................................................................323
2.4.145 InterfaceEnd .............................................................................................324
2.4.146 InterfaceHdr .............................................................................................324
2.4.147 Intl ..........................................................................................................324
2.4.148 Label........................................................................................................325
2.4.149 LabelSst ...................................................................................................325
2.4.150 Lbl ...........................................................................................................325
2.4.151 LeftMargin ................................................................................................328
2.4.152 Legend .....................................................................................................328
2.4.153 LegendException .......................................................................................329
2.4.154 Lel ...........................................................................................................330
2.4.155 Line .........................................................................................................330
10 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.156 LineFormat ...............................................................................................331
2.4.157 List12.......................................................................................................332
2.4.158 LPr...........................................................................................................333
2.4.159 LRng ........................................................................................................334
2.4.160 MarkerFormat ...........................................................................................334
2.4.161 MDB.........................................................................................................336
2.4.162 MDTInfo ...................................................................................................336
2.4.163 MDXKPI ....................................................................................................338
2.4.164 MDXProp ..................................................................................................339
2.4.165 MDXSet ....................................................................................................339
2.4.166 MDXStr ....................................................................................................340
2.4.167 MDXTuple .................................................................................................341
2.4.168 MergeCells ................................................................................................341
2.4.169 Mms ........................................................................................................342
2.4.170 MsoDrawing ..............................................................................................342
2.4.171 MsoDrawingGroup .....................................................................................342
2.4.172 MsoDrawingSelection .................................................................................343
2.4.173 MTRSettings..............................................................................................343
2.4.174 MulBlank ..................................................................................................344
2.4.175 MulRk.......................................................................................................344
2.4.176 NameCmt .................................................................................................345
2.4.177 NameFnGrp12 ...........................................................................................346
2.4.178 NamePublish .............................................................................................347
2.4.179 Note ........................................................................................................347
2.4.180 Number ....................................................................................................348
2.4.181 Obj ..........................................................................................................348
2.4.182 ObjectLink ................................................................................................351
2.4.183 ObjProtect ................................................................................................351
2.4.184 ObNoMacros..............................................................................................352
2.4.185 ObProj......................................................................................................352
2.4.186 OleDbConn ...............................................................................................352
2.4.187 OleObjectSize............................................................................................353
2.4.188 Palette .....................................................................................................353
2.4.189 Pane ........................................................................................................353
2.4.190 ParamQry .................................................................................................354
2.4.191 Password ..................................................................................................354
2.4.192 PhoneticInfo..............................................................................................355
2.4.193 PicF .........................................................................................................355
2.4.194 Pie ...........................................................................................................356
2.4.195 PieFormat .................................................................................................357
2.4.196 PivotChartBits ...........................................................................................357
2.4.197 PlotArea ...................................................................................................358
2.4.198 PlotGrowth................................................................................................358
2.4.199 Pls ...........................................................................................................358
2.4.200 PLV ..........................................................................................................359
2.4.201 Pos ..........................................................................................................359
2.4.202 PrintGrid ...................................................................................................361
2.4.203 PrintRowCol ..............................................................................................361
2.4.204 PrintSize ...................................................................................................362
2.4.205 Prot4Rev ..................................................................................................362
2.4.206 Prot4RevPass ............................................................................................363
2.4.207 Protect .....................................................................................................363
2.4.208 Qsi...........................................................................................................363
2.4.209 Qsif..........................................................................................................366
2.4.210 Qsir .........................................................................................................367
2.4.211 QsiSXTag ..................................................................................................369
2.4.212 Radar .......................................................................................................371
2.4.213 RadarArea ................................................................................................371
11 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.214 RealTimeData............................................................................................372
2.4.215 RecalcId ...................................................................................................373
2.4.216 RecipName ...............................................................................................373
2.4.217 RefreshAll .................................................................................................374
2.4.218 RichTextStream .........................................................................................374
2.4.219 RightMargin ..............................................................................................376
2.4.220 RK ...........................................................................................................376
2.4.221 Row .........................................................................................................377
2.4.222 RRAutoFmt ...............................................................................................378
2.4.223 RRDChgCell ..............................................................................................379
2.4.224 RRDConflict...............................................................................................383
2.4.225 RRDDefName ............................................................................................384
2.4.226 RRDHead ..................................................................................................386
2.4.227 RRDInfo ...................................................................................................388
2.4.228 RRDInsDel ................................................................................................389
2.4.229 RRDInsDelBegin ........................................................................................390
2.4.230 RRDInsDelEnd ...........................................................................................390
2.4.231 RRDMove ..................................................................................................390
2.4.232 RRDMoveBegin ..........................................................................................391
2.4.233 RRDMoveEnd ............................................................................................391
2.4.234 RRDRenSheet............................................................................................391
2.4.235 RRDRstEtxp ..............................................................................................392
2.4.236 RRDTQSIF ................................................................................................393
2.4.237 RRDUserView ............................................................................................394
2.4.238 RRFormat .................................................................................................395
2.4.239 RRInsertSh ...............................................................................................395
2.4.240 RRSort .....................................................................................................396
2.4.241 RRTabId ...................................................................................................397
2.4.242 SBaseRef ..................................................................................................397
2.4.243 Scatter .....................................................................................................398
2.4.244 SCENARIO ................................................................................................399
2.4.245 ScenarioProtect .........................................................................................400
2.4.246 ScenMan ..................................................................................................400
2.4.247 Scl ...........................................................................................................401
2.4.248 Selection ..................................................................................................401
2.4.249 SerAuxErrBar ............................................................................................402
2.4.250 SerAuxTrend .............................................................................................403
2.4.251 SerFmt .....................................................................................................404
2.4.252 Series ......................................................................................................405
2.4.253 SeriesList..................................................................................................406
2.4.254 SeriesText ................................................................................................406
2.4.255 SerParent .................................................................................................406
2.4.256 SerToCrt ...................................................................................................407
2.4.257 Setup .......................................................................................................407
2.4.258 ShapePropsStream ....................................................................................412
2.4.259 SheetExt ..................................................................................................413
2.4.260 ShrFmla ...................................................................................................414
2.4.261 ShtProps ..................................................................................................414
2.4.262 SIIndex ....................................................................................................415
2.4.263 Sort .........................................................................................................416
2.4.264 SortData...................................................................................................417
2.4.265 SST .........................................................................................................419
2.4.266 StartBlock.................................................................................................420
2.4.267 StartObject ...............................................................................................425
2.4.268 String.......................................................................................................426
2.4.269 Style ........................................................................................................426
2.4.270 StyleExt ...................................................................................................427
2.4.271 SupBook ...................................................................................................428
12 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.272 Surf .........................................................................................................430
2.4.273 SXAddl Records .........................................................................................431
2.4.273.1 Continue_SxaddlSxString ......................................................................431
2.4.273.2 SXAddl ...............................................................................................431
2.4.273.3 SXAddl_SXCAutoSort_SXDEnd ...............................................................432
2.4.273.4 SXAddl_SXCAutoSort_SXDId .................................................................432
2.4.273.5 SXAddl_SXCCache_SXDEnd ..................................................................433
2.4.273.6 SXAddl_SXCCache_SXDId .....................................................................433
2.4.273.7 SXAddl_SXCCache_SXDInfo12...............................................................433
2.4.273.8 SXAddl_SXCCache_SXDInvRefreshReal ..................................................434
2.4.273.9 SXAddl_SXCCache_SXDVer10Info ..........................................................434
2.4.273.10 SXAddl_SXCCache_SXDVerSXMacro .......................................................435
2.4.273.11 SXAddl_SXCCache_SXDVerUpdInv .........................................................436
2.4.273.12 SXAddl_SXCCacheField_SXDCaption.......................................................436
2.4.273.13 SXAddl_SXCCacheField_SXDEnd ............................................................436
2.4.273.14 SXAddl_SXCCacheField_SXDId ..............................................................437
2.4.273.15 SXAddl_SXCCacheField_SXDIfdbMempropMap .........................................437
2.4.273.16 SXAddl_SXCCacheField_SXDIfdbMpMapCount..........................................438
2.4.273.17 SXAddl_SXCCacheField_SXDProperty .....................................................438
2.4.273.18 SXAddl_SXCCacheField_SXDPropName ...................................................439
2.4.273.19 SXAddl_SXCCacheField_SXDSxrmitmCount .............................................439
2.4.273.20 SXAddl_SXCCacheItem_SXDEnd ............................................................440
2.4.273.21 SXAddl_SXCCacheItem_SXDId ..............................................................440
2.4.273.22 SXAddl_SXCCacheItem_SXDItmMpMapCount ..........................................440
2.4.273.23 SXAddl_SXCCacheItem_SXDItmMpropMap ..............................................441
2.4.273.24 SXAddl_SXCCacheItem_SXDSxrmitmDisp ...............................................441
2.4.273.25 SXAddl_SXCField_SXDEnd ....................................................................442
2.4.273.26 SXAddl_SXCField_SXDId .......................................................................442
2.4.273.27 SXAddl_SXCField_SXDVer10Info ............................................................442
2.4.273.28 SXAddl_SXCField12_SXDAutoshow.........................................................443
2.4.273.29 SXAddl_SXCField12_SXDEnd .................................................................443
2.4.273.30 SXAddl_SXCField12_SXDId ...................................................................444
2.4.273.31 SXAddl_SXCField12_SXDISXTH .............................................................444
2.4.273.32 SXAddl_SXCField12_SXDMemberCaption ................................................445
2.4.273.33 SXAddl_SXCField12_SXDVer12Info ........................................................445
2.4.273.34 SXAddl_SXCField12_SXDVerUpdInv .......................................................446
2.4.273.35 SXAddl_SXCGroup_SXDEnd ..................................................................446
2.4.273.36 SXAddl_SXCGroup_SXDGrpInfo .............................................................447
2.4.273.37 SXAddl_SXCGroup_SXDId .....................................................................448
2.4.273.38 SXAddl_SXCGroup_SXDMember ............................................................448
2.4.273.39 SXAddl_SXCGrpLevel_SXDEnd ...............................................................449
2.4.273.40 SXAddl_SXCGrpLevel_SXDGrpLevelInfo ..................................................449
2.4.273.41 SXAddl_SXCGrpLevel_SXDId .................................................................450
2.4.273.42 SXAddl_SXCHierarchy_SXDDisplayFolder ................................................450
2.4.273.43 SXAddl_SXCHierarchy_SXDEnd..............................................................451
2.4.273.44 SXAddl_SXCHierarchy_SXDFilterMember ................................................451
2.4.273.45 SXAddl_SXCHierarchy_SXDFilterMember12 .............................................452
2.4.273.46 SXAddl_SXCHierarchy_SXDIconSet ........................................................453
2.4.273.47 SXAddl_SXCHierarchy_SXDId ................................................................453
2.4.273.48 SXAddl_SXCHierarchy_SXDInfo12 ..........................................................454
2.4.273.49 SXAddl_SXCHierarchy_SXDKPIGoal ........................................................455
2.4.273.50 SXAddl_SXCHierarchy_SXDKPIStatus .....................................................455
2.4.273.51 SXAddl_SXCHierarchy_SXDKPITime .......................................................455
2.4.273.52 SXAddl_SXCHierarchy_SXDKPITrend ......................................................456
2.4.273.53 SXAddl_SXCHierarchy_SXDKPIValue ......................................................456
2.4.273.54 SXAddl_SXCHierarchy_SXDKPIWeight ....................................................457
2.4.273.55 SXAddl_SXCHierarchy_SXDMeasureGrp ..................................................457
2.4.273.56 SXAddl_SXCHierarchy_SXDParentKPI .....................................................458
13 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.57 SXAddl_SXCHierarchy_SXDProperty .......................................................458
2.4.273.58 SXAddl_SXCHierarchy_SXDSXSetParentUnique ........................................460
2.4.273.59 SXAddl_SXCHierarchy_SXDUserCaption ..................................................460
2.4.273.60 SXAddl_SXCHierarchy_SXDVerUpdInv ....................................................460
2.4.273.61 SXAddl_SXCQsi_SXDEnd.......................................................................461
2.4.273.62 SXAddl_SXCQsi_SXDId .........................................................................461
2.4.273.63 SXAddl_SXCQuery_SXDEnd ..................................................................461
2.4.273.64 SXAddl_SXCQuery_SXDReconnCond ......................................................462
2.4.273.65 SXAddl_SXCQuery_SXDSrcConnFile .......................................................463
2.4.273.66 SXAddl_SXCQuery_SXDSrcDataFile ........................................................463
2.4.273.67 SXAddl_SXCQuery_SXDXMLSource ........................................................463
2.4.273.68 SXAddl_SXCSXCondFmt_SXDEnd ...........................................................464
2.4.273.69 SXAddl_SXCSXCondFmt_SXDSXCondFmt................................................464
2.4.273.70 SXAddl_SXCSXCondFmts_SXDEnd .........................................................465
2.4.273.71 SXAddl_SXCSXCondFmts_SXDId ...........................................................466
2.4.273.72 SXAddl_SXCSXDH_SXDEnd ...................................................................466
2.4.273.73 SXAddl_SXCSXDH_SXDId .....................................................................467
2.4.273.74 SXAddl_SXCSXDH_SXDSxdh .................................................................467
2.4.273.75 SXAddl_SXCSXfilt_SXDEnd....................................................................468
2.4.273.76 SXAddl_SXCSXfilt_SXDId ......................................................................469
2.4.273.77 SXAddl_SXCSXfilt_SXDSXfilt .................................................................469
2.4.273.78 SXAddl_SXCSXfilt_SXDSXItm ................................................................470
2.4.273.79 SXAddl_SXCSXFilter12_SXDCaption .......................................................471
2.4.273.80 SXAddl_SXCSXFilter12_SXDEnd.............................................................472
2.4.273.81 SXAddl_SXCSXFilter12_SXDId ...............................................................472
2.4.273.82 SXAddl_SXCSXFilter12_SXDSXFilter .......................................................472
2.4.273.83 SXAddl_SXCSXFilter12_SXDSXFilterDesc ................................................474
2.4.273.84 SXAddl_SXCSXFilter12_SXDSXFilterValue1 .............................................474
2.4.273.85 SXAddl_SXCSXFilter12_SXDSXFilterValue2 .............................................474
2.4.273.86 SXAddl_SXCSXFilter12_SXDXlsFilter .......................................................475
2.4.273.87 SXAddl_SXCSXFilter12_SXDXlsFilterValue1 .............................................475
2.4.273.88 SXAddl_SXCSXFilter12_SXDXlsFilterValue2 .............................................476
2.4.273.89 SXAddl_SXCSXFilters12_SXDEnd ...........................................................476
2.4.273.90 SXAddl_SXCSXFilters12_SXDId .............................................................477
2.4.273.91 SXAddl_SXCSXMg_SXDEnd ...................................................................477
2.4.273.92 SXAddl_SXCSXMg_SXDId .....................................................................477
2.4.273.93 SXAddl_SXCSXMg_SXDUserCaption .......................................................478
2.4.273.94 SXAddl_SXCSXMgs_SXDEnd ..................................................................478
2.4.273.95 SXAddl_SXCSXMgs_SXDId ....................................................................478
2.4.273.96 SXAddl_SXCSXMgs_SXDMGrpSXDHMap ..................................................479
2.4.273.97 SXAddl_SXCSXrule_SXDEnd ..................................................................480
2.4.273.98 SXAddl_SXCSXrule_SXDId ....................................................................480
2.4.273.99 SXAddl_SXCSXrule_SXDSXrule ..............................................................480
2.4.273.100 SXAddl_SXCView_SXDCalcMember ...................................................483
2.4.273.101 SXAddl_SXCView_SXDCalcMemString ...............................................485
2.4.273.102 SXAddl_SXCView_SXDCompactColHdr ..............................................485
2.4.273.103 SXAddl_SXCView_SXDCompactRwHdr ..............................................486
2.4.273.104 SXAddl_SXCView_SXDEnd ...............................................................486
2.4.273.105 SXAddl_SXCView_SXDId .................................................................487
2.4.273.106 SXAddl_SXCView_SXDSXPIIvmb ......................................................487
2.4.273.107 SXAddl_SXCView_SXDTableStyleClient .............................................488
2.4.273.108 SXAddl_SXCView_SXDVer10Info ......................................................488
2.4.273.109 SXAddl_SXCView_SXDVer12Info ......................................................490
2.4.273.110 SXAddl_SXCView_SXDVerUpdInv .....................................................492
2.4.274 SxBool .....................................................................................................493
2.4.275 SXDB .......................................................................................................493
2.4.276 SXDBB .....................................................................................................494
2.4.277 SXDBEx ....................................................................................................494
14 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.278 SXDI ........................................................................................................495
2.4.279 SXDtr .......................................................................................................497
2.4.280 SxDXF ......................................................................................................497
2.4.281 SxErr .......................................................................................................498
2.4.282 SXEx ........................................................................................................498
2.4.283 SXFDB......................................................................................................501
2.4.284 SXFDBType ...............................................................................................504
2.4.285 SxFilt .......................................................................................................504
2.4.286 SxFmla .....................................................................................................505
2.4.287 SxFormat .................................................................................................506
2.4.288 SXFormula ................................................................................................506
2.4.289 SXInt .......................................................................................................506
2.4.290 SxIsxoper .................................................................................................507
2.4.291 SxItm ......................................................................................................507
2.4.292 SxIvd .......................................................................................................508
2.4.293 SXLI ........................................................................................................509
2.4.294 SxName ...................................................................................................509
2.4.295 SxNil ........................................................................................................510
2.4.296 SXNum .....................................................................................................510
2.4.297 SXPair ......................................................................................................510
2.4.298 SXPI ........................................................................................................511
2.4.299 SXPIEx .....................................................................................................512
2.4.300 SXRng ......................................................................................................512
2.4.301 SxRule .....................................................................................................514
2.4.302 SxSelect ...................................................................................................516
2.4.303 SXStreamID ..............................................................................................518
2.4.304 SXString ...................................................................................................518
2.4.305 SXTbl .......................................................................................................518
2.4.306 SxTbpg.....................................................................................................519
2.4.307 SXTBRGIITM .............................................................................................520
2.4.308 SXTH .......................................................................................................520
2.4.309 Sxvd ........................................................................................................523
2.4.310 SXVDEx ....................................................................................................527
2.4.311 SXVDTEx ..................................................................................................530
2.4.312 SXVI ........................................................................................................531
2.4.313 SxView .....................................................................................................533
2.4.314 SXViewEx .................................................................................................535
2.4.315 SXViewEx9 ...............................................................................................536
2.4.316 SXViewLink ...............................................................................................537
2.4.317 SXVS .......................................................................................................538
2.4.318 Sync ........................................................................................................538
2.4.319 Table .......................................................................................................538
2.4.320 TableStyle ................................................................................................540
2.4.321 TableStyleElement .....................................................................................541
2.4.322 TableStyles ...............................................................................................544
2.4.323 Template ..................................................................................................545
2.4.324 Text .........................................................................................................545
2.4.325 TextPropsStream .......................................................................................550
2.4.326 Theme .....................................................................................................552
2.4.327 Tick .........................................................................................................552
2.4.328 TopMargin ................................................................................................555
2.4.329 TxO .........................................................................................................556
2.4.330 TxtQry .....................................................................................................558
2.4.331 Uncalced ..................................................................................................560
2.4.332 Units ........................................................................................................560
2.4.333 UserBView ................................................................................................560
2.4.334 UserSViewBegin ........................................................................................564
2.4.335 UserSViewBegin_Chart ...............................................................................567
15 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.336 UserSViewEnd ...........................................................................................569
2.4.337 UsesELFs ..................................................................................................569
2.4.338 UsrChk .....................................................................................................569
2.4.339 UsrExcl .....................................................................................................570
2.4.340 UsrInfo .....................................................................................................571
2.4.341 ValueRange ..............................................................................................571
2.4.342 VCenter ....................................................................................................574
2.4.343 VerticalPageBreaks ....................................................................................574
2.4.344 WebPub ....................................................................................................574
2.4.345 Window1 ..................................................................................................577
2.4.346 Window2 ..................................................................................................578
2.4.347 WinProtect ................................................................................................580
2.4.348 WOpt .......................................................................................................581
2.4.349 WriteAccess ..............................................................................................582
2.4.350 WriteProtect ..............................................................................................583
2.4.351 WsBool .....................................................................................................583
2.4.352 XCT .........................................................................................................584
2.4.353 XF ...........................................................................................................584
2.4.354 XFCRC ......................................................................................................585
2.4.355 XFExt .......................................................................................................585
2.4.356 YMult .......................................................................................................586
2.5 Structures ......................................................................................................587
2.5.1 AddinUdf ..................................................................................................587
2.5.2 AF12CellIcon .............................................................................................587
2.5.3 AF12Criteria ..............................................................................................588
2.5.4 AF12DateInfo ............................................................................................588
2.5.5 AFDOper...................................................................................................589
2.5.6 AFDOperBoolErr ........................................................................................590
2.5.7 AFDOperRk ...............................................................................................591
2.5.8 AFDOperStr ..............................................................................................591
2.5.9 AutoFmt8 .................................................................................................592
2.5.10 Bes ..........................................................................................................593
2.5.11 Bold .........................................................................................................594
2.5.12 BookExt_Conditional11 ...............................................................................594
2.5.13 BookExt_Conditional12 ...............................................................................594
2.5.14 Boolean ....................................................................................................595
2.5.15 BorderStyle...............................................................................................595
2.5.16 BuiltInStyle ...............................................................................................596
2.5.17 CachedDiskHeader .....................................................................................596
2.5.18 Cch255.....................................................................................................597
2.5.19 Cell ..........................................................................................................597
2.5.20 CellXF ......................................................................................................597
2.5.21 CFColor ....................................................................................................601
2.5.22 CFDatabar ................................................................................................601
2.5.23 CFExAveragesTemplateParams ....................................................................603
2.5.24 CFExDateTemplateParams ..........................................................................603
2.5.25 CFExDefaultTemplateParams .......................................................................604
2.5.26 CFExFilterParams .......................................................................................604
2.5.27 CFExNonCF12 ...........................................................................................605
2.5.28 CFExTemplateParams .................................................................................607
2.5.29 CFExTextTemplateParams...........................................................................608
2.5.30 CFFilter ....................................................................................................608
2.5.31 CFFlag ......................................................................................................609
2.5.32 CFGradient ...............................................................................................610
2.5.33 CFGradientInterpItem ................................................................................610
2.5.34 CFGradientItem .........................................................................................611
2.5.35 CFMStateItem ...........................................................................................612
2.5.36 CFMultistate ..............................................................................................612
16 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.37 CFrtId ......................................................................................................613
2.5.38 CFT ..........................................................................................................614
2.5.39 CFVO .......................................................................................................615
2.5.40 ChartNumNillable.......................................................................................616
2.5.41 Col...........................................................................................................616
2.5.42 Col_NegativeOne .......................................................................................616
2.5.43 Col12 .......................................................................................................617
2.5.44 Col256U ...................................................................................................617
2.5.45 ColByte ....................................................................................................617
2.5.46 ColByteU ..................................................................................................618
2.5.47 ColElfU .....................................................................................................618
2.5.48 ColorICV ...................................................................................................618
2.5.49 ColorTheme ..............................................................................................619
2.5.50 ColRelNegU ...............................................................................................619
2.5.51 ColRelU ....................................................................................................620
2.5.52 ColSlco8U .................................................................................................620
2.5.53 ColU.........................................................................................................620
2.5.54 Colx .........................................................................................................621
2.5.55 CondDataValue..........................................................................................621
2.5.56 CondFmtStructure .....................................................................................621
2.5.57 ConnGrbitDbt ............................................................................................622
2.5.58 ConnGrbitDbtAdo .......................................................................................622
2.5.59 ConnGrbitDbtOledb ....................................................................................623
2.5.60 ConnGrbitDbtWeb ......................................................................................624
2.5.61 ControlInfo ...............................................................................................625
2.5.62 CrtLayout12Mode ......................................................................................625
2.5.63 DataFunctionalityLevel ...............................................................................626
2.5.64 DataSourceType ........................................................................................626
2.5.65 DateAsNum...............................................................................................626
2.5.66 DateUnit ...................................................................................................626
2.5.67 DCol ........................................................................................................627
2.5.68 DColByteU ................................................................................................627
2.5.69 DConFile ...................................................................................................627
2.5.70 DConnConnectionOleDb ..............................................................................628
2.5.71 DConnConnectionWeb ................................................................................629
2.5.72 DConnId ...................................................................................................629
2.5.73 DConnParamBinding ..................................................................................630
2.5.74 DConnParamBindingValByte ........................................................................630
2.5.75 DConnParamBindingValInt ..........................................................................630
2.5.76 DConnParamBindingValString ......................................................................630
2.5.77 DConnParamBindingValType .......................................................................631
2.5.78 DConnParameter .......................................................................................631
2.5.79 DConnStringSequence ................................................................................632
2.5.80 DConnUnicodeStringSegmented ..................................................................632
2.5.81 DJoin .......................................................................................................633
2.5.82 DRw .........................................................................................................633
2.5.83 DRwByteU ................................................................................................633
2.5.84 Duce ........................................................................................................633
2.5.85 DuceRadical ..............................................................................................634
2.5.86 DuceStacked .............................................................................................635
2.5.87 Ducr ........................................................................................................635
2.5.88 DucrConditionalLbl .....................................................................................636
2.5.89 DucrConditionalNoLbl .................................................................................637
2.5.90 DwQsiFuture .............................................................................................637
2.5.91 DXFALC ....................................................................................................638
2.5.92 DXFBdr.....................................................................................................639
2.5.93 DXFFntD ...................................................................................................640
2.5.94 DXFId ......................................................................................................641
17 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.95 DXFN .......................................................................................................641
2.5.96 DXFN12 ....................................................................................................644
2.5.97 DXFN12List ...............................................................................................645
2.5.98 DXFN12NoCB ............................................................................................645
2.5.99 DXFNum ...................................................................................................645
2.5.100 DXFNumIFmt ............................................................................................646
2.5.101 DXFNumUsr ..............................................................................................646
2.5.102 DXFPat .....................................................................................................646
2.5.103 DXFProt ....................................................................................................647
2.5.104 EnhancedProtection ...................................................................................647
2.5.105 ExternDdeLinkNoOper ................................................................................648
2.5.106 ExternDocName ........................................................................................648
2.5.107 ExternOleDdeLink ......................................................................................649
2.5.108 ExtProp ....................................................................................................649
2.5.109 ExtRst ......................................................................................................650
2.5.110 FactoidData ..............................................................................................651
2.5.111 Feat11CellStruct ........................................................................................651
2.5.112 Feat11FdaAutoFilter ...................................................................................651
2.5.113 Feat11FieldDataItem ..................................................................................652
2.5.114 Feat11Fmla ...............................................................................................659
2.5.115 Feat11RgInvalidCells ..................................................................................659
2.5.116 Feat11RgSharepointIdChange .....................................................................659
2.5.117 Feat11RgSharepointIdDel ...........................................................................660
2.5.118 Feat11TotalFmla ........................................................................................660
2.5.119 Feat11WSSListInfo ....................................................................................660
2.5.120 Feat11XMap ..............................................................................................663
2.5.121 Feat11XMapEntry ......................................................................................663
2.5.122 Feat11XMapEntry2.....................................................................................664
2.5.123 FeatFormulaErr2 ........................................................................................664
2.5.124 FeatProtection ...........................................................................................664
2.5.125 FeatSmartTag ...........................................................................................665
2.5.126 FFErrorCheck ............................................................................................666
2.5.127 FillPattern .................................................................................................666
2.5.128 FillStylePropertiesForShapePropsStreamChecksum ........................................667
2.5.129 FontIndex .................................................................................................677
2.5.130 FontInfo ...................................................................................................677
2.5.131 FontScheme ..............................................................................................678
2.5.132 FormatRun................................................................................................678
2.5.133 FormulaValue ............................................................................................678
2.5.134 FrtFlags ....................................................................................................679
2.5.135 FrtHeader .................................................................................................680
2.5.136 FrtHeaderOld ............................................................................................680
2.5.137 FrtRefHeader.............................................................................................680
2.5.138 FrtRefHeaderNoGrbit ..................................................................................681
2.5.139 FrtRefHeaderU...........................................................................................681
2.5.140 FtCbls ......................................................................................................682
2.5.141 FtCblsData ................................................................................................682
2.5.142 FtCf .........................................................................................................683
2.5.143 FtCmo ......................................................................................................683
2.5.144 FtEdoData.................................................................................................686
2.5.145 FtGboData ................................................................................................687
2.5.146 FtGmo ......................................................................................................687
2.5.147 FtLbsData .................................................................................................688
2.5.148 FtMacro ....................................................................................................690
2.5.149 FtNts ........................................................................................................691
2.5.150 FtPictFmla.................................................................................................691
2.5.151 FtPioGrbit .................................................................................................692
2.5.152 FtRbo .......................................................................................................694
18 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.153 FtRboData ................................................................................................694
2.5.154 FtSbs .......................................................................................................695
2.5.155 FullColorExt ..............................................................................................696
2.5.156 GradStop ..................................................................................................696
2.5.157 HiddenMemberSet .....................................................................................697
2.5.158 HideObjEnum ............................................................................................697
2.5.159 HorizAlign .................................................................................................698
2.5.160 HorzBrk ....................................................................................................698
2.5.161 Icv ...........................................................................................................698
2.5.162 IcvChart ...................................................................................................702
2.5.163 IcvFont .....................................................................................................702
2.5.164 IcvXF .......................................................................................................702
2.5.165 IFmt ........................................................................................................702
2.5.166 InteriorColorPropertiesForShapePropsStreamChecksum ..................................703
2.5.167 ISSTInf ....................................................................................................704
2.5.168 IXFCell .....................................................................................................704
2.5.169 KPIProp ....................................................................................................704
2.5.170 KPISets ....................................................................................................705
2.5.171 LbsDropData .............................................................................................705
2.5.172 LEMMode ..................................................................................................706
2.5.173 LinePropertiesForShapePropsStreamChecksum ..............................................707
2.5.174 List12BlockLevel ........................................................................................708
2.5.175 List12DisplayName ....................................................................................710
2.5.176 List12TableStyleClientInfo ..........................................................................711
2.5.177 LongRGB ..................................................................................................711
2.5.178 LongRGBA ................................................................................................712
2.5.179 LPWideString ............................................................................................712
2.5.180 MDir.........................................................................................................712
2.5.181 MDTInfoIndex ...........................................................................................713
2.5.182 MDXStrIndex ............................................................................................713
2.5.183 MOper ......................................................................................................713
2.5.184 NilChartNum .............................................................................................714
2.5.185 NoteRR.....................................................................................................714
2.5.186 NoteSh .....................................................................................................715
2.5.187 ObjFmla ...................................................................................................716
2.5.188 ObjId .......................................................................................................717
2.5.189 ObjLinkFmla ..............................................................................................717
2.5.190 ODBCType ................................................................................................718
2.5.191 OfficeArtClientAnchorChart .........................................................................718
2.5.192 OfficeArtClientAnchorHF .............................................................................719
2.5.193 OfficeArtClientAnchorSheet .........................................................................720
2.5.194 OfficeArtClientData ....................................................................................721
2.5.195 OfficeArtClientTextbox ................................................................................722
2.5.196 PaneType .................................................................................................722
2.5.197 PARAMQRY_Fixed ......................................................................................723
2.5.198 Parsed Expressions ....................................................................................724
2.5.198.1 ArrayParsedFormula .............................................................................724
2.5.198.2 BErr ...................................................................................................724
2.5.198.3 CellParsedFormula ...............................................................................725
2.5.198.4 Cetab .................................................................................................725
2.5.198.5 CFParsedFormula .................................................................................754
2.5.198.6 CFParsedFormulaNoCCE ........................................................................754
2.5.198.7 CFVOParsedFormula .............................................................................754
2.5.198.8 ChartParsedFormula .............................................................................755
2.5.198.9 DVParsedFormula.................................................................................755
2.5.198.10 ExtNameParsedFormula ........................................................................756
2.5.198.11 ExtPtgArea3D ......................................................................................757
2.5.198.12 ExtPtgAreaErr3D ..................................................................................757
19 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.13 ExtPtgErr ............................................................................................757
2.5.198.14 ExtPtgRef3D ........................................................................................758
2.5.198.15 ExtPtgRefErr3D ....................................................................................758
2.5.198.16 ExtSheetPair .......................................................................................758
2.5.198.17 Ftab ...................................................................................................759
2.5.198.18 Ilel .....................................................................................................786
2.5.198.19 ListParsedArrayFormula ........................................................................787
2.5.198.20 ListParsedFormula ................................................................................787
2.5.198.21 NameParsedFormula ............................................................................787
2.5.198.22 ObjectParsedFormula............................................................................788
2.5.198.23 ParameterParsedFormula ......................................................................788
2.5.198.24 PivotParsedFormula ..............................................................................789
2.5.198.25 Ptg .....................................................................................................789
2.5.198.26 PtgAdd ...............................................................................................792
2.5.198.27 PtgArea ..............................................................................................792
2.5.198.28 PtgArea3d ...........................................................................................793
2.5.198.29 PtgAreaErr ..........................................................................................793
2.5.198.30 PtgAreaErr3d .......................................................................................794
2.5.198.31 PtgAreaN ............................................................................................794
2.5.198.32 PtgArray .............................................................................................795
2.5.198.33 PtgAttrBaxcel ......................................................................................795
2.5.198.34 PtgAttrChoose .....................................................................................796
2.5.198.35 PtgAttrGoto .........................................................................................796
2.5.198.36 PtgAttrIf .............................................................................................797
2.5.198.37 PtgAttrSemi.........................................................................................797
2.5.198.38 PtgAttrSpace .......................................................................................797
2.5.198.39 PtgAttrSpaceSemi ................................................................................798
2.5.198.40 PtgAttrSpaceType ................................................................................798
2.5.198.41 PtgAttrSum .........................................................................................799
2.5.198.42 PtgBool ...............................................................................................799
2.5.198.43 PtgConcat ...........................................................................................799
2.5.198.44 PtgDataType .......................................................................................799
2.5.198.45 PtgDiv ................................................................................................800
2.5.198.46 PtgElfCol .............................................................................................800
2.5.198.47 PtgElfColS ...........................................................................................800
2.5.198.48 PtgElfColSV .........................................................................................801
2.5.198.49 PtgElfColV ...........................................................................................801
2.5.198.50 PtgElfLel .............................................................................................801
2.5.198.51 PtgElfRadical .......................................................................................802
2.5.198.52 PtgElfRadicalLel ...................................................................................802
2.5.198.53 PtgElfRadicalS .....................................................................................803
2.5.198.54 PtgElfRw .............................................................................................803
2.5.198.55 PtgElfRwV ...........................................................................................804
2.5.198.56 PtgEq .................................................................................................804
2.5.198.57 PtgErr .................................................................................................804
2.5.198.58 PtgExp ................................................................................................804
2.5.198.59 PtgExtraArray ......................................................................................805
2.5.198.60 PtgExtraElf ..........................................................................................805
2.5.198.61 PtgExtraMem .......................................................................................806
2.5.198.62 PtgFunc ..............................................................................................806
2.5.198.63 PtgFuncVar .........................................................................................806
2.5.198.64 PtgGe .................................................................................................807
2.5.198.65 PtgGt..................................................................................................807
2.5.198.66 PtgInt .................................................................................................807
2.5.198.67 PtgIsect ..............................................................................................808
2.5.198.68 PtgLe..................................................................................................808
2.5.198.69 PtgLt ..................................................................................................808
2.5.198.70 PtgMemArea ........................................................................................808
20 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.71 PtgMemErr ..........................................................................................809
2.5.198.72 PtgMemFunc........................................................................................809
2.5.198.73 PtgMemNoMem ....................................................................................810
2.5.198.74 PtgMissArg ..........................................................................................810
2.5.198.75 PtgMul ................................................................................................810
2.5.198.76 PtgName .............................................................................................811
2.5.198.77 PtgNameX ...........................................................................................811
2.5.198.78 PtgNe .................................................................................................812
2.5.198.79 PtgNum ..............................................................................................812
2.5.198.80 PtgParen .............................................................................................812
2.5.198.81 PtgPercent ..........................................................................................813
2.5.198.82 PtgPower ............................................................................................813
2.5.198.83 PtgRange ............................................................................................813
2.5.198.84 PtgRef ................................................................................................813
2.5.198.85 PtgRef3d .............................................................................................814
2.5.198.86 PtgRefErr ............................................................................................814
2.5.198.87 PtgRefErr3d .........................................................................................815
2.5.198.88 PtgRefN ..............................................................................................815
2.5.198.89 PtgStr.................................................................................................815
2.5.198.90 PtgSub ...............................................................................................816
2.5.198.91 PtgSxName .........................................................................................816
2.5.198.92 PtgTbl.................................................................................................816
2.5.198.93 PtgUminus ..........................................................................................817
2.5.198.94 PtgUnion .............................................................................................817
2.5.198.95 PtgUplus .............................................................................................817
2.5.198.96 RevExtern ...........................................................................................818
2.5.198.97 RevItab ..............................................................................................818
2.5.198.98 RevLblName ........................................................................................819
2.5.198.99 RevName ............................................................................................820
2.5.198.100 RevNamePly ..................................................................................821
2.5.198.101 RevNameTabid ...............................................................................821
2.5.198.102 RevSheetName ..............................................................................821
2.5.198.103 RgbExtra .......................................................................................822
2.5.198.104 Rgce .............................................................................................823
2.5.198.105 RgceArea ......................................................................................826
2.5.198.106 RgceAreaRel ..................................................................................827
2.5.198.107 RgceElfLoc .....................................................................................827
2.5.198.108 RgceElfLocExtra .............................................................................828
2.5.198.109 RgceLoc ........................................................................................828
2.5.198.110 RgceLoc8 ......................................................................................828
2.5.198.111 RgceLocRel ....................................................................................828
2.5.198.112 SerAr ............................................................................................829
2.5.198.113 SerBool .........................................................................................829
2.5.198.114 SerErr ...........................................................................................830
2.5.198.115 SerNil ...........................................................................................830
2.5.198.116 SerNum ........................................................................................830
2.5.198.117 SerStr ...........................................................................................831
2.5.198.118 SharedParsedFormula .....................................................................831
2.5.198.119 XtiIndex ........................................................................................832
2.5.199 PBT ..........................................................................................................832
2.5.200 PhRuns .....................................................................................................833
2.5.201 Phs ..........................................................................................................833
2.5.202 PictFmlaEmbedInfo ....................................................................................834
2.5.203 PictFmlaKey ..............................................................................................834
2.5.204 PivotCompProp ..........................................................................................835
2.5.205 PositionMode .............................................................................................835
2.5.206 ReadingOrder ............................................................................................835
2.5.207 Ref ..........................................................................................................836
21 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.208 Ref8 .........................................................................................................836
2.5.209 Ref8U.......................................................................................................837
2.5.210 Ref8U2007................................................................................................837
2.5.211 RefU ........................................................................................................838
2.5.212 RevisionType.............................................................................................838
2.5.213 RFX..........................................................................................................839
2.5.214 RichTextStreamChecksumData ....................................................................839
2.5.215 RichTextStreamChecksumFontInformation ....................................................841
2.5.216 RichTextStreamChecksumFontInformationArrayItem ......................................843
2.5.217 RkNumber ................................................................................................843
2.5.218 RkRec ......................................................................................................844
2.5.219 RPHSSub ..................................................................................................844
2.5.220 RRD .........................................................................................................845
2.5.221 RRDDefNameFlags .....................................................................................845
2.5.222 RRLoc ......................................................................................................847
2.5.223 RTDEItem .................................................................................................847
2.5.224 RTDOper ..................................................................................................847
2.5.225 RTDOperStr ..............................................................................................848
2.5.226 Run..........................................................................................................848
2.5.227 Rw ...........................................................................................................848
2.5.228 Rw12 .......................................................................................................849
2.5.229 RwLongU ..................................................................................................849
2.5.230 RwU .........................................................................................................849
2.5.231 Rwx .........................................................................................................849
2.5.232 Script .......................................................................................................850
2.5.233 SD_SetSortOrder .......................................................................................850
2.5.234 SDContainer .............................................................................................850
2.5.235 SecurityDescriptor .....................................................................................851
2.5.236 ShapePropsStreamChecksumData ...............................................................851
2.5.237 SharedFeatureType ....................................................................................852
2.5.238 SheetExtOptional .......................................................................................853
2.5.239 ShortDTR..................................................................................................854
2.5.240 ShortXLUnicodeString ................................................................................854
2.5.241 SLCO8 ......................................................................................................855
2.5.242 SortCond12 ..............................................................................................855
2.5.243 SortItem ..................................................................................................856
2.5.244 SourceType ...............................................................................................857
2.5.245 SQElfFlags ................................................................................................857
2.5.246 SqRef .......................................................................................................857
2.5.247 SqRefU .....................................................................................................858
2.5.248 Stxp .........................................................................................................858
2.5.249 StyleXF ....................................................................................................859
2.5.250 SXAddl_SXDEnd ........................................................................................861
2.5.251 SXAddl_SXDVerUpdInv...............................................................................861
2.5.252 SXAddl_SXString .......................................................................................861
2.5.253 SXAddlHdr ................................................................................................862
2.5.254 SXAxis .....................................................................................................862
2.5.255 SXEZDoper ...............................................................................................862
2.5.256 SxFT ........................................................................................................863
2.5.257 SxIvdCol ..................................................................................................867
2.5.258 SxIvdRw ...................................................................................................867
2.5.259 SXLIItem ..................................................................................................867
2.5.260 SXPI_Item ................................................................................................870
2.5.261 SXVDEx_Opt .............................................................................................870
2.5.262 SXView9Save ............................................................................................871
2.5.263 SXVIFlags .................................................................................................871
2.5.264 TabId .......................................................................................................872
2.5.265 TabIndex ..................................................................................................872
22 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.266 TableFeatureType ......................................................................................872
2.5.267 Tag_Fn_MDX .............................................................................................876
2.5.268 TextPropsStreamChecksumData ..................................................................877
2.5.269 Top10FT ...................................................................................................879
2.5.270 Ts ............................................................................................................879
2.5.271 TxOLastRun ..............................................................................................879
2.5.272 TxORuns...................................................................................................880
2.5.273 TxtWf .......................................................................................................880
2.5.274 Underline ..................................................................................................881
2.5.275 VertAlign ..................................................................................................881
2.5.276 VertBrk ....................................................................................................881
2.5.277 VirtualPath ................................................................................................881
2.5.278 WebPubString ...........................................................................................883
2.5.279 XColorType ...............................................................................................884
2.5.280 XFExtGradient ...........................................................................................884
2.5.281 XFExtNoFRT ..............................................................................................885
2.5.282 XFIndex....................................................................................................885
2.5.283 XFProp .....................................................................................................887
2.5.284 XFPropBorder ............................................................................................889
2.5.285 XFPropColor ..............................................................................................889
2.5.286 XFPropGradient .........................................................................................890
2.5.287 XFPropGradientStop ...................................................................................891
2.5.288 XFProps ....................................................................................................891
2.5.289 XFPropTextRotation ...................................................................................892
2.5.290 XLNameUnicodeString ................................................................................892
2.5.291 XlsFilter_Criteria ........................................................................................893
2.5.292 XlsFilter_Top10 .........................................................................................894
2.5.293 XLUnicodeRichExtendedString .....................................................................895
2.5.294 XLUnicodeString ........................................................................................896
2.5.295 XLUnicodeStringMin2 .................................................................................897
2.5.296 XLUnicodeStringNoCch ...............................................................................897
2.5.297 XLUnicodeStringSegmented ........................................................................897
2.5.298 XLUnicodeStringSegmentedRTD ..................................................................898
2.5.299 XLUnicodeStringSegmentedSXAddl ..............................................................898
2.5.300 XmlTkBackWallThicknessFrt ........................................................................899
2.5.301 XmlTkBaseTimeUnitFrt ...............................................................................899
2.5.302 XmlTkBlob ................................................................................................900
2.5.303 XmlTkBool ................................................................................................900
2.5.304 XmlTkChain ..............................................................................................901
2.5.305 XmlTkColorMappingOverride .......................................................................903
2.5.306 XmlTkDispBlanksAsFrt ................................................................................903
2.5.307 XmlTkDouble.............................................................................................904
2.5.308 XmlTkDWord .............................................................................................904
2.5.309 XmlTkEnd .................................................................................................905
2.5.310 XmlTkEndSurface ......................................................................................905
2.5.311 XmlTkFloorThicknessFrt ..............................................................................905
2.5.312 XmlTkFormatCodeFrt .................................................................................906
2.5.313 XmlTkHeader ............................................................................................906
2.5.314 XmlTkHeightPercent ...................................................................................906
2.5.315 XmlTkLogBaseFrt .......................................................................................907
2.5.316 XmlTkMajorUnitFrt .....................................................................................907
2.5.317 XmlTkMajorUnitTypeFrt ..............................................................................907
2.5.318 XmlTkMaxFrt .............................................................................................908
2.5.319 XmlTkMinFrt..............................................................................................908
2.5.320 XmlTkMinorUnitFrt .....................................................................................909
2.5.321 XmlTkMinorUnitTypeFrt ..............................................................................909
2.5.322 XmlTkNoMultiLvlLbl ....................................................................................910
2.5.323 XmlTkOverlay ...........................................................................................910
23 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.324 XmlTkPerspectiveFrt ..................................................................................911
2.5.325 XmlTkPieComboFrom12Frt ..........................................................................911
2.5.326 XmlTkRAngAxOffFrt ...................................................................................911
2.5.327 XmlTkRotXFrt ............................................................................................912
2.5.328 XmlTkRotYFrt ............................................................................................912
2.5.329 XmlTkShowDLblsOverMax ...........................................................................912
2.5.330 XmlTkSpb .................................................................................................913
2.5.331 XmlTkStart ...............................................................................................913
2.5.332 XmlTkStartSurface .....................................................................................913
2.5.333 XmlTkString ..............................................................................................914
2.5.334 XmlTkStyle ...............................................................................................914
2.5.335 XmlTkSymbolFrt ........................................................................................914
2.5.336 XmlTkThemeOverride .................................................................................915
2.5.337 XmlTkTickLabelPositionFrt...........................................................................915
2.5.338 XmlTkTickLabelSkipFrt ...............................................................................916
2.5.339 XmlTkTickMarkSkipFrt ................................................................................916
2.5.340 XmlTkToken ..............................................................................................916
2.5.341 XmlTkTpb .................................................................................................917
2.5.342 Xnum .......................................................................................................917
2.5.343 XORObfuscation ........................................................................................917
2.5.344 XTI ..........................................................................................................917
2.6 XCB Structures ...............................................................................................919
2.6.1 CTBWRAPPER ............................................................................................919
2.6.2 CTBS........................................................................................................919
2.6.3 CTB .........................................................................................................920
2.6.4 TBC .........................................................................................................921
2.6.5 TBCCmd ...................................................................................................922
2.7 Algorithms .....................................................................................................923
2.7.1 Application Data For VtHyperlink .................................................................923
3 Structure Examples ............................................................................................. 924
3.1 Conditional Formatting.....................................................................................924
3.1.1 Conditional Formatting: CondFmt ................................................................924
3.1.2 Conditional Formatting: CF .........................................................................926
3.2 Defined Name .................................................................................................933
3.2.1 Defined Name: Lbl .....................................................................................933
3.2.2 Defined Name: ExternSheet ........................................................................935
3.2.3 Defined Name: SupBook .............................................................................936
3.3 Table .............................................................................................................936
3.3.1 Table: Feathdr11 .......................................................................................936
3.3.2 Table: Feature11 .......................................................................................937
3.4 Filters ............................................................................................................946
3.4.1 Filters: FilterMode ......................................................................................946
3.4.2 Filters: AutoFilterInfo .................................................................................947
3.4.3 Filters: AutoFilter .......................................................................................947
3.5 External References.........................................................................................948
3.5.1 External References: Formula......................................................................949
3.5.2 External References: String ........................................................................951
3.5.3 External References: SupBook 1 ..................................................................952
3.5.4 External References: XCT ...........................................................................952
3.5.5 External References: CRN ...........................................................................953
3.5.6 External References: SupBook 2 ..................................................................954
3.5.7 External References: ExternSheet ................................................................954
3.6 Column Chart Object .......................................................................................955
3.6.1 Column Chart Object: Chart ........................................................................956
3.6.2 Column Chart Object: Frame .......................................................................956
3.6.3 Column Chart Object: LineFormat ................................................................957
3.6.4 Column Chart Object: AreaFormat ...............................................................958
24 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.6.5 Column Chart Object: Series .......................................................................959
3.6.6 Column Chart Object: BRAI 1 ......................................................................959
3.6.7 Column Chart Object: SeriesText .................................................................961
3.6.8 Column Chart Object: BRAI 2 ......................................................................961
3.6.9 Column Chart Object: BRAI 3 ......................................................................963
3.6.10 Column Chart Object: DataFormat ...............................................................965
3.6.11 Column Chart Object: SerToCrt ...................................................................965
3.6.12 Column Chart Object: ShtProps ...................................................................965
3.6.13 Column Chart Object: DefaultText ...............................................................966
3.6.14 Column Chart Object: Text .........................................................................966
3.6.15 Column Chart Object: FontX .......................................................................968
3.6.16 Column Chart Object: AxesUsed ..................................................................968
3.6.17 Column Chart Object: AxisParent .................................................................969
3.6.18 Column Chart Object: Axis ..........................................................................969
3.6.19 Column Chart Object: CatSerRange .............................................................969
3.6.20 Column Chart Object: Tick ..........................................................................970
3.6.21 Column Chart Object: ChartFormat ..............................................................971
3.6.22 Column Chart Object: Bar ...........................................................................972
3.7 Pie Chart Sheet ...............................................................................................973
3.7.1 Pie Chart Sheet: PrintSize ...........................................................................973
3.7.2 Pie Chart Sheet: Chart ...............................................................................973
3.7.3 Pie Chart Sheet: ShtProps ..........................................................................974
3.7.4 Pie Chart Sheet: AxesUsed .........................................................................974
3.7.5 Pie Chart Sheet: AxisParent ........................................................................975
3.7.6 Pie Chart Sheet: ChartFormat .....................................................................975
3.7.7 Pie Chart Sheet: Pie ...................................................................................975
3.7.8 Pie Chart Sheet: Legend .............................................................................976
3.7.9 Pie Chart Sheet: Pos ..................................................................................977
3.7.10 Pie Chart Sheet: Text .................................................................................978
3.7.11 Pie Chart Sheet: BRAI ................................................................................980
3.7.12 Pie Chart Sheet: Window2 ..........................................................................980
3.8 Formatting .....................................................................................................981
3.8.1 Formatting: Font 1.....................................................................................982
3.8.2 Formatting: Font 2.....................................................................................983
3.8.3 Formatting: Format....................................................................................984
3.8.4 Formatting: XF 1 .......................................................................................985
3.8.5 Formatting: XF 2 .......................................................................................987
3.8.6 Formatting: XF 3 .......................................................................................989
3.8.7 Formatting: XF 4 .......................................................................................991
3.8.8 Formatting: Number 1 ................................................................................993
3.8.9 Formatting: Number 2 ................................................................................994
3.8.10 Formatting: Number 3 ................................................................................995
3.9 Workbook ......................................................................................................995
3.9.1 Workbook: BOF 1 ......................................................................................996
3.9.2 Workbook: RRTabId ...................................................................................997
3.9.3 Workbook: BuiltInFnGroupCount .................................................................998
3.9.4 Workbook: Window1 ..................................................................................998
3.9.5 Workbook: HideObj.................................................................................. 1000
3.9.6 Workbook: Date1904 ............................................................................... 1000
3.9.7 Workbook: CalcPrecision........................................................................... 1000
3.9.8 Workbook: BookBool ................................................................................ 1000
3.9.9 Workbook: Font....................................................................................... 1001
3.9.10 Workbook: Format ................................................................................... 1002
3.9.11 Workbook: XF ......................................................................................... 1003
3.9.12 Workbook: Style ...................................................................................... 1005
3.9.13 Workbook: BoundSheet8 1 ....................................................................... 1006
3.9.14 Workbook: BoundSheet8 2 ....................................................................... 1006
3.9.15 Workbook: BoundSheet8 3 ....................................................................... 1007
25 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.9.16 Workbook: Country .................................................................................. 1007
3.9.17 Workbook: RecalcId ................................................................................. 1008
3.9.18 Workbook: SST ....................................................................................... 1008
3.9.19 Workbook: ExtSST ................................................................................... 1008
3.9.20 Workbook: BookExt ................................................................................. 1009
3.9.21 Workbook: EOF 1 .................................................................................... 1011
3.9.22 Workbook: BOF 2 .................................................................................... 1011
3.9.23 Workbook: Index ..................................................................................... 1012
3.9.24 Workbook: DefaultRowHeight .................................................................... 1013
3.9.25 Workbook: WsBool .................................................................................. 1013
3.9.26 Workbook: Setup..................................................................................... 1014
3.9.27 Workbook: DefColWidth ........................................................................... 1016
3.9.28 Workbook: Dimensions ............................................................................. 1016
3.9.29 Workbook: Row 1 .................................................................................... 1017
3.9.30 Workbook: Row 2 .................................................................................... 1018
3.9.31 Workbook: Row 3 .................................................................................... 1019
3.9.32 Workbook: Row 4 .................................................................................... 1019
3.9.33 Workbook: LabelSst 1 .............................................................................. 1020
3.9.34 Workbook: RK ......................................................................................... 1021
3.9.35 Workbook: LabelSst 2 .............................................................................. 1022
3.9.36 Workbook: Formula ................................................................................. 1023
3.9.37 Workbook: DBCell.................................................................................... 1026
3.9.38 Workbook: Window2 ................................................................................ 1026
3.9.39 Workbook: Selection ................................................................................ 1028
3.9.40 Workbook: PhoneticInfo ........................................................................... 1029
3.9.41 Workbook: EOF 2 .................................................................................... 1030
3.10 PivotTable .................................................................................................... 1030
3.10.1 PivotTable: SXStreamID ........................................................................... 1031
3.10.2 PivotTable: SXVS ..................................................................................... 1031
3.10.3 PivotTable: DConRef ................................................................................ 1032
3.10.4 PivotTable: SXAddl 1 ................................................................................ 1033
3.10.5 PivotTable: SXAddl 2 ................................................................................ 1034
3.10.6 PivotTable: SXAddl 3 ................................................................................ 1035
3.10.7 PivotTable: SxView .................................................................................. 1035
3.10.8 PivotTable: Sxvd 1 ................................................................................... 1039
3.10.9 PivotTable: SXVI 1 ................................................................................... 1040
3.10.10 PivotTable: SXVI 2 ................................................................................... 1041
3.10.11 PivotTable: SXVI 3 ................................................................................... 1041
3.10.12 PivotTable: SXVI 4 ................................................................................... 1042
3.10.13 PivotTable: SXVDEx 1 .............................................................................. 1043
3.10.14 PivotTable: Sxvd 2 ................................................................................... 1044
3.10.15 PivotTable: SXVI 5 ................................................................................... 1046
3.10.16 PivotTable: SXVI 6 ................................................................................... 1046
3.10.17 PivotTable: SXVI 7 ................................................................................... 1047
3.10.18 PivotTable: SXVDEx 2 .............................................................................. 1047
3.10.19 PivotTable: Sxvd 3 ................................................................................... 1048
3.10.20 PivotTable: Sxvd 4 ................................................................................... 1049
3.10.21 PivotTable: SXVDEx 3 .............................................................................. 1051
3.10.22 PivotTable: Sxvd 5 ................................................................................... 1052
3.10.23 PivotTable: SXVDEx 4 .............................................................................. 1053
3.10.24 PivotTable: SxIvd .................................................................................... 1055
3.10.25 PivotTable: SXPI ...................................................................................... 1055
3.10.26 PivotTable: SXDI ..................................................................................... 1056
3.10.27 PivotTable: SXLI 1 ................................................................................... 1056
3.10.28 PivotTable: SXLI 2 ................................................................................... 1062
3.10.29 PivotTable: SXEx ..................................................................................... 1063
3.10.30 PivotTable: QsiSXTag ............................................................................... 1065
3.10.31 PivotTable: SXViewEx9 ............................................................................. 1067
26 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.32 PivotTable: SxAddl 4 ................................................................................ 1067
3.10.33 PivotTable: SxAddl 5 ................................................................................ 1068
3.10.34 PivotTable: SxAddl 6 ................................................................................ 1070
3.10.35 PivotTable: SXDB .................................................................................... 1070
3.10.36 PivotTable: SXDBEx ................................................................................. 1072
3.10.37 PivotTable: SXFDB 1 ................................................................................ 1072
3.10.38 PivotTable: SXString 1 ............................................................................. 1074
3.10.39 PivotTable: SXString 2 ............................................................................. 1074
3.10.40 PivotTable: SXString 3 ............................................................................. 1074
3.10.41 PivotTable: SXFDB 2 ................................................................................ 1075
3.10.42 PivotTable: SXDtr 1 ................................................................................. 1076
3.10.43 PivotTable: SXDtr 2 ................................................................................. 1076
3.10.44 PivotTable: SXFDB 3 ................................................................................ 1077
3.10.45 PivotTable: SXFDB 4 ................................................................................ 1078
3.10.46 PivotTable: SXNum 1 ............................................................................... 1079
3.10.47 PivotTable: SXFDB 5 ................................................................................ 1080
3.10.48 PivotTable: SXDBB 1 ................................................................................ 1081
3.10.49 PivotTable: SXNum 2 ............................................................................... 1081
3.10.50 PivotTable: SXDBB 2 ................................................................................ 1082
3.10.51 PivotTable: SXNum 3 ............................................................................... 1082
3.10.52 PivotTable: EOF ....................................................................................... 1083
4 Security Considerations ..................................................................................... 1084
5 Appendix A: Product Behavior ........................................................................... 1085
6 Change Tracking ................................................................................................ 1095
7 Index ................................................................................................................. 1096
27 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 Introduction
The Excel Binary File Format (.xls) Structure specifies the Excel Binary File Format (.xls). The Excel
Binary File Format (.xls) is a collection of records and structures that specify workbook content,
which can include unstructured or semi-structured tables of numbers, text, or both numbers and text,
formulas, external data connections, charts, and images. Workbook content is typically organized in a
grid based layout, and often includes numeric data, structured data, and formulas.
Sections 1.7 and 2 of this specification are normative. All other sections and examples in this
specification are informative.
1.1 Glossary
3-D Phong shading: A shading algorithm that is used to apply shading to 3-D charts. The
algorithm interpolates color between points on the surface of a chart to give a smooth 3-D
appearance.
A1: A reference style in which each column is identified sequentially from left-to-right with a
letter or series of letters in alphabetical order. Column headings are ordered A-Z, then AA-AZ,
BA-BZ... ZA-ZZ, AAA-AAZ, and so forth. Each row is numbered sequentially from the top down.
absolute reference: A reference to a fixed location on a sheet (1). An absolute reference always
refers to the same range, even if the formula that contains it is moved or copied to a new
location.
accelerator key: Any combination of keys that are pressed simultaneously to run a command.
active pane: The pane that currently has focus or contains the current selection or object.
ActiveX control: A reusable software control, such as a check box or button, that uses ActiveX
technology and provides options to users or runs macros or scripts that automate a task. See
also ActiveX object.
ActiveX Data Objects (ADO): A data access interface that connects to, retrieves, manipulates,
and updates data in Object Linking and Embedding (OLE) database-compliant data sources.
add-in function: A worksheet function that is provided by an add-in, instead of being built-in.
advanced filter: An extended filter option that enables users to specify complex filter criteria and
a destination range for the filter results.
aggregation function: A function, such as sum or average, that appears in the total row of a
table and is used to summarize data.
alternate startup directory: A secondary location that stores files to be opened by an application
when the application starts.
28 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
American National Standards Institute (ANSI) character set: A character set defined by a
code page approved by the American National Standards Institute (ANSI). The term "ANSI" as
used to signify Windows code pages is a historical reference and a misnomer that persists in the
Windows community. The source of this misnomer stems from the fact that the Windows code
page 1252 was originally based on an ANSI draft, which became International Organization for
Standardization (ISO) Standard 8859-1 [ISO/IEC-8859-1]. In Windows, the ANSI character set
can be any of the following code pages: 1252, 1250, 1251, 1253, 1254, 1255, 1256, 1257,
1258, 874, 932, 936, 949, or 950. For example, "ANSI application" is usually a reference to a
non-Unicode or code-page-based application. Therefore, "ANSI character set" is often misused
to refer to one of the character sets defined by a Windows code page that can be used as an
active system code page; for example, character sets defined by code page 1252 or character
sets defined by code page 950. Windows is now based on Unicode, so the use of ANSI
character sets is strongly discouraged unless they are used to interoperate with legacy
applications or legacy data.
ASCII: The American Standard Code for Information Interchange (ASCII) is an 8-bit character-
encoding scheme based on the English alphabet. ASCII codes represent text in computers,
communications equipment, and other devices that work with text. ASCII refers to a single 8-bit
ASCII character or an array of 8-bit ASCII characters with the high bit of each character set to
zero.
attribute hierarchy: A single-level hierarchy that uses only an attribute or a column from a
source, back-end relational database as its hierarchy. An attribute hierarchy typically has the
same name as the attribute and is always associated with the attribute on which it is based. An
all-level member can optionally be enabled for an attribute hierarchy. See also OLAP hierarchy.
AutoComplete: A feature that suggests text automatically based on the first few characters that a
user types.
AutoFilter: A mechanism that can be used to filter tabular data based on user-defined criteria
such as values, strings, and formatting.
AutoFormat: A built-in set of complementary formatting options that can be applied to ranges of
cells and other objects in a document.
AutoRecover: A feature that recovers document and application states in the event of a hardware
or software failure.
AutoShow: A filter option that enables users to display a specified number of the top- or bottom-
most items within a PivotTable field.
background color: A color against which characters, patterns, and graphics are displayed. See
also foreground color.
beta: A pre-released version of a product that is sent to customers and partners for evaluation and
feedback.
BIFF12: A binary file format that is used to save workbooks in Microsoft Office Excel 2007 and
Microsoft Excel 2010.
BIFF2: A binary file format that is used by default to save worksheets in Microsoft Excel 2.1.
BIFF3: A binary file format that is used by default to save worksheets in Microsoft Excel 3.0 for
Windows.
29 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
BIFF4: A binary file format that is used by default to save worksheets in Microsoft Excel 4.0 for
Windows.
BIFF5: A binary file format that is used by default to save workbooks in Microsoft Excel 5.0 for
Windows and Microsoft Excel for Windows 95.
BIFF8: A binary file format that is used to save workbooks in Microsoft Office Excel 2003 and
earlier versions of Microsoft Excel.
big-endian: Multiple-byte values that are byte-ordered with the most significant byte stored in the
memory location with the lowest address.
Binary Interchange File Format (BIFF): The binary file formats that are used to save Excel
workbooks.
block-level formatting: A type of formatting that can be applied to a field or column in a table. It
is applied to all existing records and automatically to new records.
border: A line that can be applied to the outer edge of a cell, shape, object, or chart element. A
border can be variously formatted for style, color, and thickness.
border formatting: A set of properties that, as a whole, specify the appearance of a border, such
as color, line style, and thickness.
bounding rectangle: A frame that encompasses an object. A bounding rectangle is not rotated
and, therefore, always aligns along the x and y axes.
Briefcase: A system folder in Windows that is used to share and synchronize files between
computers.
bubble size: A value that represents the diameter of a bubble in a bubble chart.
build number: A part of a sequential numbering system that is used to differentiate one version of
a software product from another.
built-in name: A member of the group of defined names that are reserved for specific
functionality.
ButtonPopup control: A type of Button control that displays a menu of related commands when
activated.
calculation mode: A setting that determines whether the formulas in a worksheet are
recalculated automatically or manually. See also automatic calculation mode and manual
calculation mode.
camera picture: An image of a range of cells that is generated by using the camera tool. The
image can be linked such that when the data in the source range changes, the image is updated
automatically.
caption: One or more characters that can be used as a label for display purposes or as an
identifier.
cascading style sheet (CSS): An extension to HTML that enables authors and users of HTML
documents to attach style sheets to those documents, as described in [CSS-LEVEL1] and [CSS-
LEVEL2]. A style sheet includes typographical information about the appearance of a page,
including the font for text on the page.
30 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
category: (1) A custom string that is used to group one or more documents.
(2) A subdivision of items into useful groups such as geographical regions. For example,
categories that represent geographical regions could be North, South, East, and West.
category label: A label that appears on the horizontal (x) axis of a chart and identifies the
categories of the source data.
cell: A box that is formed by the intersection of a row and a column in a worksheet or a table. A
cell can contain numbers, strings, and formulas, and various formats can be applied to that
data.
cell reference: A set of coordinates that a cell occupies on a worksheet. For example, "B3" is the
reference of a cell that appears at the intersection of column "B" and row "3".
cell value: The text or numeric content of a cell, or the results of a formula. A cell value does not
include a formula expression, cell formatting, or other metadata.
centered alignment: A formatting setting that specifies how content is positioned within the
horizontal, vertical, or both horizontal and vertical space within a cell, object, or page. When
centered, content is equidistant from the edges of the cell, object, or page.
character set: A mapping between the characters of a written language and the values that are
used to represent those characters to a computer.
chart area: A region in a chart object that is used to position chart elements, render axes, and
plot data.
chart sheet: A single logical container that is used to create and store charts in a workbook.
checksum: A value that is the summation of a byte stream. By comparing the checksums
computed from a data item at two different times, one can quickly assess whether the data
items are identical.
class identifier (CLSID): A GUID that identifies a software component; for instance, a DCOM
object class or a COM class.
class module: A module that contains the definition for a new object. Each instance of a class
creates a new object, and procedures that are defined in the module become properties and
methods of the object.
client area: In an application, the display area that is used to create data, such as drawing or
typing functions. The client area does not include toolbars, menus, or status bars.
code page: An ordered set of characters of a specific script in which a numerical index (code-point
value) is associated with each character. Code pages are a means of providing support for
character sets and keyboard layouts used in different countries. Devices such as the display
and keyboard can be configured to use a specific code page and to switch from one code page
(such as the United States) to another (such as Portugal) at the user's request.
collapsed outline state: A state in which the content that is nested within an outline is not
displayed.
color palette: A collection of colors that is available to format text, shapes, cells, and chart
elements.
31 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
color scale: A specific range of colors that is used to give additional meaning to data by assigning
certain values to colors in the spectrum.
color scheme: A table of color values that enables colors to be referenced by an index value in the
table instead of a color value. See also color palette.
comment: An annotation that is associated with a cell, text, or other object to provide context-
specific information or reviewer feedback.
compact axis: A state in which PivotTable members from different levels in a hierarchy are
displayed in a single column.
Component Object Model (COM): An object-oriented programming model that defines how
objects interact within a single process or between processes. In COM, clients have access to an
object through interfaces implemented on the object. For more information, see [MS-DCOM].
conditional formatting: A mechanism that changes the appearance of a user interface element
based on the evaluation of a rule or expression.
connection string: A series of arguments, delimited by a semicolon, that defines the location of a
database and how to connect to it.
consolidation range: A range of source data that is used in a data consolidation process.
cube: A set of data that is organized and summarized into a multidimensional structure that is
defined by a set of dimensions (1) and measures.
cube function: A function that is used to extract and display Online Analytical Processing (OLAP)
data sets and values.
custom color palette: A set of user-defined colors that is available for formatting.
custom filter: A filter that contains preconfigured expressions in which users can optionally enter
a string to filter data.
custom list: A user-defined list or enumeration that can be used to sort data in a worksheet.
custom rollup: An aggregation calculation that is customized for a dimension level, dimension
member, or measure. A custom rollup contains a custom formula or operator, overrides the
aggregate functions of a cube's measures, and is defined on a hierarchy.
custom view: A collection of display and print settings that users can name and save. Users can
switch between custom views to change settings quickly.
Data Access Objects (DAO): A programming interface that can be used to access and
manipulate database objects.
data consolidation: The process of combining tabular data from various worksheets into a single
list.
32 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
data marker: A customizable symbol or shape that identifies a data point on a line, scatter, or
radar chart. A data marker can be formatted with various sizes and colors.
data provider: A known data source that is specific to a target type and that provides data to a
collector type.
data recovery: A process in which files are repaired through error correction or restored from
backup media.
data region: A region of a table that encompasses the range of cells that contains the table
records. A data region does not include the header row, insert row, or total row of a table.
data source: A database, web service, disk, file, or other collection of information from which data
is queried or submitted. Supported data sources vary based on application and data provider.
data table: (1) A range of cells that is designated to perform what-if analysis for formulas, based
on various input values.
(2) A grid that can be added to some charts and contains the numeric data that is plotted in the
chart.
data validation: The process of testing the accuracy of data; a set of rules that specify the type
and range of data that users can enter.
DDE link: A connection between a Dynamic Data Exchange (DDE) source document and a
destination document.
DDE server: An application that responds to a Dynamic Data Exchange (DDE) request from a
DDE client application.
DDE topic: A general classification of information about a Dynamic Data Exchange (DDE)
server within which multiple, specific data items related to the topic can be exchanged.
defined name: A word or string of characters in a formula that represents a cell, range of cells,
formula, or constant value.
descending order: A sort order in which text strings are arranged in reverse alphabetical order,
numerical values are arranged from largest to smallest, and dates and times are arranged from
newest to oldest.
diagonal-down: A cell border formatting that displays a line diagonally from the top left corner
of a cell to the bottom right corner.
diagonal-up: A cell border formatting that displays a line diagonally from the bottom left corner
of a cell to the top right corner.
dialog sheet: A single logical container that is used to create a custom dialog box.
display folder: A folder into which attributes, measures, calculated members, and key
performance indicators can be organized to facilitate browsing.
display units: An axis-formatting option that determines how numeric units are displayed on a
value axis.
33 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
distributed alignment: A formatting setting that spreads text evenly, both vertically and
horizontally, between the edges of a cell, object, or page. Distributed alignment is used
primarily with East Asian languages. See also justify distributed.
document library: A type of list that is a container for documents and folders.
double accounting: An underline style that places two lines beneath the formatted text. Double
accounting is frequently used to indicate totals.
drawing: A collection of drawing objects, such as shapes, curves, or WordArt, that are viewed
together as a single image.
drawing group: A collection of images that are designated by the user as a single group of
images and manipulated as a single drawing object.
drawing object: A shape, curve, line, WordArt, or other type of graphical object that can be
inserted into a document.
drillthrough: A query that is used to retrieve individual records that were used to calculate an
aggregate value.
drop lines: A set of supplemental lines on an area chart or a line chart. Drop lines increase the
legibility of a chart by connecting each data point in a series to the category axis.
embedded object: An object that is created by using one application and is hosted in a document
that was created by using another application. Embedding an object, rather than inserting or
pasting it, ensures that the object retains its original format. Users can double-click an
embedded object and edit it with the toolbars and menus from the application that was used to
create it. See also Object Linking and Embedding (OLE).
Excel Linked Library (XLL): A Dynamic Link Library (DLL) that is authored to function as an
add-in for Microsoft Excel.
Excel macro (XLM): A programming language that provides development capability in Microsoft
Excel. XLM was superseded by Microsoft Visual Basic for Applications (VBA).
expand/collapse button: A user interface control that is used to determine which hierarchical
level is displayed in an outline, or in row and column groupings.
external link: A reference to a cell, range, defined name, or other object in another worksheet or
workbook.
fill: A color, pattern, or other attribute that is used to format the background of a cell, shape, or
chart element. See also fill color and fill pattern.
fill alignment: A setting that repeats a cell value to fill the horizontal space of a cell. If the cell
value exceeds the horizontal width of the cell, the value is truncated.
fill color: A color that is used to fill the background of a cell, shape, or chart element.
34 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fill pattern: A repetitive design that users can add to the background of a cell, shape, or chart
element.
filter: A mechanism by which a set of data is scoped to display only those entries that meet
specified logical criteria.
filtering state: A setting that indicates whether a filter value or filter date value is included as part
of the criteria that is used to define the filter for an AutoFilter.
fit to page: A printing option that scales a document to print on a specified number of pages.
floor: An extension of the horizontal axis, or the area created by the inclusion of the z axis, in a 3-
D chart to create a three-dimensional effect. See also wall.
folder: A file system construct. File systems organize a volume's data by providing a hierarchy of
objects, which are referred to as folders or directories, that contain files and can also contain
other folders.
font: An object that defines the graphic design, or formatting, of a collection of numbers, symbols,
and letters. A font specifies the style (such as bold and strikeout), size, family (a typeface such
as Times New Roman), and other qualities to describe how the collection is drawn.
font family: A set of fonts that all have common stroke width and serif characteristics. For
example, Times Roman and Times Roman Italic are members of the same font family.
forecast: The process of projecting values forward or backward in a series, based on trends in
existing data.
foreground color: A color that is used to display text, patterns, and other objects that appear in
front of or on top of the background color.
form: A structured document with controls and spaces that are reserved for entering and
displaying information. Forms can contain special coding for actions such as submitting and
querying data.
format string: A string that contains the number formatting information to apply to data, such as
decimal position, percentage indicator, or currency symbol.
formatting run: A set of formatting properties that are applied to a text run.
formula bar: A user interface element that appears at the top of a worksheet and is used to
display and edit cell content.
formula error checking: A mechanism that identifies invalid worksheet data, formulas, or
formatting and then proposes corrections.
friendly name: A name for a user or object that can be read and understood easily by a human.
35 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
frozen: See frozen panes.
frozen panes: Portions of a worksheet that remain static and do not scroll when the worksheet is
displayed in split pane view. See also split pane.
full screen view: A document view that expands the display of a document to fill the computer
screen. The view hides menus, toolbars, and taskbars.
function: A code module that takes a value as input, performs an operation, and returns the
results to a worksheet.
function category: A group of worksheet functions that are part of the same broad usage area,
such as Finance or Statistical. A function category can be built-in or user-defined.
general alignment: A default formatting setting for the horizontal alignment of cell content in a
worksheet. Text is positioned to the left and numbers are positioned to the right.
globally unique identifier (GUID): A term used interchangeably with universally unique
identifier (UUID) in Microsoft protocol technical documents (TDs). Interchanging the usage of
these terms does not imply or require a specific algorithm or mechanism to generate the value.
Specifically, the use of this term does not imply or require that the algorithms described in
[RFC4122] or [C706] must be used for generating the GUID. See also universally unique
identifier (UUID).
gradient fill: A type of fill that applies gradient formatting to the background of a cell or an object.
gradient stop: A marker on a gradient spectrum that denotes where a specific color is introduced
in gradient formatting.
graph object: An object that represents a chart and the datasheet that contains the data for that
chart.
GraphicDropDown control: A type of DropDown control that can display custom graphics in a list
of options.
gridline: A line that is drawn on a worksheet or table for use as a visual aid to distinguish between
cells.
gutter: An area above a column heading and to the left of a row heading. A gutter typically
displays outline symbols that are used to expand and collapse groups of cells.
hash: A fixed-size result that is obtained by applying a one-way mathematical function, which is
sometimes referred to as a hash algorithm, to an arbitrary amount of data. If the input data
changes, the hash also changes. The hash can be used in many operations, including
authentication and digital signing.
header row: A row in a table, typically the first row, that contains labels for columns in the table.
hidden: A condition of an object that prevents it from being displayed in rendered output.
hidden cell: A cell that does not appear in a worksheet view because it is contained within a
hidden row or a hidden column.
hidden column: A column that does not appear in a worksheet view because its width is set to 0
(zero). A column can be hidden if an outline is collapsed.
hidden protection: A cell protection property that prevents formulas, but not values, from
appearing in a cell when a worksheet is protected.
36 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hidden row: A row that does not appear in a worksheet view because its height is set to "0"
(zero). A row can be hidden if the data is filtered or an outline is collapsed.
hierarchy: A logical tree structure that organizes the members of a dimension such that each
member has one parent member and zero or more child members.
high-low lines: Supplemental lines that are added to a line chart and connect the maximum data
points of one series with the minimum data points of another series for each category (2).
High-low lines are typically used on stock charts.
horizontal alignment: A formatting setting that specifies how content is positioned within the
horizontal space of a cell, object, or page. Content can be aligned along the left or right edge, or
distributed evenly across the horizontal space.
icon: A graphical image used to supplement alphanumeric text in the visual identification of an
object on a computer monitor. Icons are typically small, relative to the size of the area on
which they are displayed.
icon set: A collection of icons that can be used to comment and classify data into categories.
indentation level: A measure of the distance between the position of content that is in a cell and
the logical left side of the cell. An indentation level is equal to three spaces.
ink: A process of entering text in handwritten form. Instead of converting handwritten text to
typed text, ink is converted to an object and displayed exactly as it was written.
inner rectangle: In a cell that is formatted with a rectangular gradient, a rectangle that is formed
by the leftmost, rightmost, topmost, and bottommost lines of pixels in which the initial color of
the gradient is completely dissipated. See also rectangular gradient.
input cell: A cell in which each input value from a data table is substituted.
input language: A pairing of input language and input method. The pairing determines what
language is currently being entered and how. The input language is usually determined by the
keyboard language that is currently active in the operating system. Users can install keyboard
layouts and Input Method Editors (IMEs) for several languages, and then switch between them
at appropriate times to indicate the input language.
Input Method Editor (IME): An application that is used to enter characters in written Asian
languages by using a standard 101-key keyboard. An IME consists of both an engine that
converts keystrokes into phonetic and ideographic characters and a dictionary of commonly used
ideographic words.
insert row: A placeholder row at the bottom of a table. It is used to enter new records.
international macro sheet: A macro sheet that displays English function names and operates
with U.S. English locale settings, regardless of product locale, user locale, or system locale.
iterative calculation: A calculation mode in which calculations are performed until a specific
numeric condition is met or a maximum number of iterations is reached.
37 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
justify distributed: A special, distributed-alignment setting that evenly distributes the last line of
text in a cell. The setting is primarily used for East Asian languages. See also distributed
alignment.
key performance indicator (KPI): A predefined measure that is used to track performance
against a strategic goal, objective, plan, initiative, or business process. A visual cue is frequently
used to communicate performance against the measure.
language code identifier (LCID): A 32-bit number that identifies the user interface human
language dialect or variation that is supported by an application or a client computer.
leader line: A line that connects a data label to its corresponding data point. The primary purpose
of a leader line is to increase legibility.
left-to-right: A reading order in which characters in words are read from left to right, and words
are read from left to right in sentences.
legend entry: An item in a chart legend that identifies a single series or category (2).
license key: An array of bytes that enables access to a control according to the usage policies for
that control.
line style: A style, including width and dash type, that is applied to and alters the appearance of a
line or border.
linear gradient: A type of gradient fill in which the color of a cell or other object gradually
changes horizontally, vertically, or diagonally from one edge of the object to the other.
linked object: An object that is inserted into a document and continues to exist in a separate
source file. If the object in the source file changes, the object in the document is updated
automatically to reflect those changes.
list: A container within a SharePoint site that stores list items. A list has a customizable schema
that is composed of one or more fields.
list view: A named collection of settings for querying and displaying items in a SharePoint list.
There are two types of views: Personal, which can be used only by the user who created the
view; and Public, which can be used by all users who have permission to access to the site.
little-endian: Multiple-byte values that are byte-ordered with the least significant byte stored in
the memory location with the lowest address.
local name: A defined name whose scope is limited to a specific sheet instead of the entire
workbook.
locale: A collection of rules and data that are specific to a language and a geographical area. A
locale can include information about sorting rules, date and time formatting, numeric and
monetary conventions, and character classification.
localization: The process of adapting an application or documentation, including text and non-text
elements, to meet the language, cultural, and political expectations and requirements of a
specific geographic country or region.
locked: The condition of a cell, worksheet, or other object that restricts edits or modifications to it
by users.
38 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
locked protection: A cell-protection property that restricts the editing of cell content when a
worksheet is protected.
logical left: A position that is relative to the language orientation of a document. Logical left
means left, except in a right-to-left language where it means right. Also referred to as leading
edge.
logical right: A position that is relative to the language orientation of a document. Logical right
means right, except in a right-to-left language where it means left. Also referred to as trailing
edge.
logical top-left: A position that is relative to the language orientation of a document. Logical top-
left is the upper-left corner of a range or object when in left-to-right mode. It is the upper-right
corner when in right-to-left mode.
logical top-right: A position that is relative to the language orientation of a document. Logical
top-right is the upper-right corner of a range or object when in left-to-right mode. It is the
upper-left corner when in right-to-left mode.
long file name: A folder or file name that is longer than the 8.3 file name standard, which permits
as many as eight characters followed by a period and a file name extension of three characters.
macro: A set of instructions that are recorded or written, and then typically saved to a file. When a
macro is run, all of the instructions are performed automatically.
macro sheet: A single, logical container that is used to store and run Excel 4.0 macro formulas.
major gridline: A horizontal or vertical line that is in the plot area of a chart and corresponds to
the major scaling unit on an axis.
major scheme: A font scheme that is used for primary text elements, such as headings and titles,
in a theme.
major tick mark: A tick mark that corresponds to a major scaling unit on an axis.
Mandarin phonetic symbols: A phonetic system for transcribing Chinese through the use of an
alphabet that includes characters for all possible sounds in the spoken Mandarin language.
manifest: A file that stores metadata about an expansion pack, such as the name of the expansion
pack, the files and resources that are included in the expansion pack, and the dependencies that
it has on other files and components.
MD5: A one-way, 128-bit hashing scheme that was developed by RSA Data Security, Inc., as
described in [RFC1321].
MDX unique name: A unique identifier for a multidimensional expression (MDX) member or value
in a given Online Analytical Processing (OLAP) cube, for example "[Customer].[Customer
Geography].[Country].&[Australia]".
measure: In a cube, a set of values that are typically numeric and are based on a column in the
fact table of the cube. Measures are the central values that are aggregated and analyzed.
measure group: A collection of related measures in a cube that derive from a single fact table,
typically in a data source view.
member property: An attribute on a data item within a specific dimension in an Online Analytical
Processing (OLAP) database.
39 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
merge conflict: A problem that occurs if two users are editing the same cell or other type of
object in a workbook while changes are being merged in a shared workbook.
merged cell: A single cell that is created by combining two or more adjacent cells.
messaging system service provider: A business that supplies email and other messaging
services to individuals, businesses, and other organizations.
metafile: A file that stores an image as graphical objects, such as lines, circles, and polygons,
instead of pixels. A metafile preserves an image more accurately than pixels when an image is
resized.
Microsoft Office Web Components: A set of controls that can be used to create data analysis
and reporting solutions.
minimal save: A process that saves only critical workbook data to disk when errors are detected
during a file save operation.
minor gridline: A horizontal or vertical line that is in the plot area of a chart and corresponds to
the minor scaling unit on an axis.
minor scheme: A font scheme that is used for secondary text elements, such as body text, in a
theme.
minor tick mark: A tick mark that corresponds to a minor scaling unit on an axis.
module: A collection of routines and data structures that performs a specific task or implements a
specific abstract data type. Modules usually consist of two parts, a module header and a module
body. A module header is a set of name/value attribute pairs that specify the linguistic
characteristics of the module. A module body is the VBA source code, a set of declarations
followed by procedures. VBA supports two types of modules, procedural modules and class
modules.
moving average: A type of trendline that is calculated based on the most recent period of data
points in a series.
narrow katakana: A non-cursive character set that is used to write non-Japanese words
phonetically in Japanese. Narrow katakana characters are represented with a single byte. Also
referred to as half-width katakana.
natural language formula: A syntax for referring to tabular data in formulas by using column
and row labels instead of cell references.
natural language label: A value of a cell or cells that identifies a range in a natural language
formula. A label is typically the same as a column or row header in tabular data.
ninched: A condition in which a group of selected cells or objects do not share a specific property.
For example, if a selection has three cells and only two of the cells share the same color
formatting, the color formatting of the selection is in a ninched state.
Normal view: A document view that displays text formatting and a simplified page layout of a
document. The Normal view hides some layout elements such as the header and footer.
Referred to as Draft view in Microsoft Office Word 2007 and Microsoft Word 2010.
40 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
number format: A property of a cell or other type of object that determines how numerical data is
displayed or interpreted. For example, a currency number format affixes the proper currency
symbol to the number.
obfuscation key: A secret shared key combined with a cryptographic hash function that is
intended to prevent a reversal of an encoding process. See also XOR obfuscation.
Object Linking and Embedding (OLE): A technology for transferring and sharing information
between applications by inserting a file or part of a file into a compound document. The inserted
file can be either embedded or linked. See also embedded object and linked object.
object model: A collection of object-oriented APIs that represent data structures and are designed
to promote software interoperability.
OCXDropDown control: A type of DropDown control that displays a list of the ActiveX controls
that are available within that application.
Office data connection (ODC) file: A file that stores information about a connection to a data
source, such as an Access database, worksheet, or text file. This file facilitates data source
administration.
OLAP calculated member: An OLAP member whose value is calculated at run time.
OLAP cube: A data structure that aggregates Online Analytical Processing (OLAP) measures
by OLAP levels and OLAP hierarchies. An OLAP cube combines several OLAP hierarchies,
such as time, geography, and product lines, with OLAP measures, such as sales or inventory
figures.
OLAP level: Within an OLAP hierarchy, a set of data that is organized into a lower or higher level
of detail, such as Year, Quarter, Month, and Day levels in a Time hierarchy.
OLAP measure: A set of numeric values in an OLAP cube that is used in aggregation and
analysis.
OLAP measure group: A collection of related OLAP measures in an OLAP cube. An OLAP cube
can contain multiple measure groups.
OLAP member: An item that is in an OLAP level. For example, a Canada member in a Country
level of a Geography hierarchy.
OLAP member property: A relationship between two OLAP hierarchies, such as a Population
member property of a Country member.
OLAP named set: A collection of OLAP tuples that have the same dimensionality. Also referred
to as OLAP set.
OLAP set: A collection of OLAP tuples with the same dimensionality. Also referred to as OLAP
named set.
OLAP tuple: An ordered collection of members that are from different dimensions of an OLAP
cube. A single member is a special case of a tuple.
OLE compound file: A form of structured storage, as described in [MS-CFB]. A compound file
allows independent storages and streams to exist within a single file.
41 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
OLE DB: A set of interfaces that are based on the Component Object Model (COM) programming
model and expose data from a variety of sources. These interfaces support the amount of
Database Management System (DBMS) functionality that is appropriate for a data store and
they enable a data store to share data.
OLE link: A connection between an Object Linking and Embedding (OLE) object and its OLE
server. See also DDE link.
OLE object: An object that supports the Object Linking and Embedding (OLE) protocol.
OLE server: An application or DLL that supplies a linked or embedded OLE object to another
application.
one-variable data table: A data table that consists of only one input cell, which is either a row
input cell or a column input cell.
Open Database Connectivity (ODBC): A standard software API method for accessing data that
is stored in a variety of proprietary personal computer, minicomputer, and mainframe
databases. It is an implementation of [ISO/IEC9075-3:2008] and provides extensions to that
standard.
outline effect: A formatting effect in which a line is placed around the edge of a shape or around
each character in a text string.
outline level: The number of levels that a task is indented from the top level of an outline; the
order associated with an outline.
outline state: A setting that specifies whether an outline is currently outline expanded or outline
collapsed.
out-of-memory: A state of a computer or application when it halts because all of the available
volatile memory has been allocated and none is currently available for reallocation.
page break: A divider that breaks a worksheet into separate pages for printing. Page breaks are
inserted automatically based on the paper size, margin settings, scaling options, and the
positions of any page breaks that are inserted manually.
Page Break Preview view: A worksheet view that displays the areas to be printed and the
locations of page breaks.
Page Layout view: A sheet view that displays a sheet as it would appear on a printed page,
including margins, header and footer elements, and pagination.
palette color: A specific color among those that are available on the active color palette.
pane: A portion of a software window that has a distinct function and is bounded by and separated
from other portions of the window by vertical or horizontal bars.
Pane control: A type of toolbar control that hosts a window within itself. The hosted window is not
constrained by the layout and control type options of a basic toolbar or a menu toolbar.
42 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
parameterized query: A query that contains parameters. It applies to Open Database
Connectivity (ODBC) and web queries. For example, a web query that retrieves stock quotes
from a webpage can prompt users for a parameter, such as a stock symbol.
phonetic guide: A set of supplemental phonetic symbols that appears above text in Japanese and
other East Asian languages. A phonetic guide is displayed automatically and can be edited by
the user.
phonetic information: A series of characters that appear above text in a cell and provide
information that helps users pronounce the text.
phonetic string: A series of characters that appear above a string and provide information that
helps users pronounce the string. Phonetic strings are typically used in East Asian languages.
phonetic text run: A series of characters that are within a phonetic string.
PivotChart filter pane: A user interface element that displays a list of active fields in a PivotChart
view and is used to apply filters to those fields.
PivotTable field list: A user interface element that displays a list of all of the fields in a PivotTable
report. It can be used to populate a PivotTable report and to manipulate the fields.
placeholder: A character or symbol that is used in place of an actual value, text, or object. The
actual value that the placeholder represents is unknown or unavailable at the current time, or is
not displayed for security reasons.
plot area: A portion of a chart area that contains the plotted data and axes.
point: A unit of measurement for fonts and spacing. A point is equal to 1/72 of an inch.
Popup control: A built-in or custom control on a menu bar or toolbar that displays a menu of
related commands when clicked.
post method: A method of submitting form data in the header of an HTTP request.
precision as displayed: A calculation setting that permanently changes stored values in cells
from full precision (15 digits) to the currently displayed format, including the number of decimal
places.
primary pie: The main chart in a bar of pie or pie of pie chart. A primary pie chart has one pie
slice (data point) that is a grouping of data points.
print area: A collection of one or more ranges of cells that are designated to be printed. If a
worksheet includes a print area, only the content inside the print area is printed.
print settings: The settings that specify how a file is printed in a specific print job, such as duplex
or landscape orientation. Printer settings are settings that can differ from printer to printer but
apply to every print job of a given printer. Print settings are values that typically vary between
print jobs.
print titles: The rows or columns that appear on each page when a page is printed. Print titles are
typically used to print column headers above tabular data that spans several printed pages.
ProgID: An identifier that is used by the Windows registry to uniquely identify an object and is in
the form OLEServerName.ObjectName, for example, "Excel.Sheet" or "PowerPoint.Slide."
property stream: A series of object properties that is used in processes such as checksum
calculations.
43 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
protected: A property that is applied manually to a file or a portion of a file, with or without a
password, and that helps prevent users from accidentally or deliberately changing, moving, or
deleting data.
protection: A mechanism that helps restrict users from making unwanted changes to the data or
structure of a workbook.
published: A condition of portions of a workbook that are marked as being available to the user
when that workbook is processed by a protocol server.
query: A formalized instruction to a data source to either extract data or perform a specified
action. A query can be in the form of a query expression, a method-based query, or a
combination of the two. The data source can be in different forms, such as a relational database,
XML document, or in-memory object. See also search query.
query table: A two-dimensional table that presents data from an external data source.
R1C1: A reference style in which each row and each column has a numeric heading that is
numbered sequentially from top to bottom and left to right, respectively. "R" stands for row and
"C" stands for column.
range: An addressable region that is in a workbook. A range typically consists of zero or more cells
and represents a single, contiguous rectangle of cells on a single sheet.
reading order: The positioning of characters in words and the positioning of words in sentences.
This can be left-to-right or right-to-left.
read-only recommended: A file sharing property that displays an alert when a file is being
opened. The text of the alert recommends that the user open the file with read-only permission.
real-time data (RTD): Data that is pushed into a worksheet from an RTD server and is updated
continually. Real-time data is frequently used to track stock prices or inventory levels in real
time.
reconnect condition: A condition that specifies whether to connect to a database again after a
connection expires.
rectangular gradient: A type of gradient fill in which the color of a cell or other object gradually
changes with each successive inner rectangle of pixels.
red-green-blue-alpha (RGBA): A color model that describes color information in terms of the red
(R), green (G), blue (B), and alpha (A) intensities that comprise a color.
reference style: A system that is used in formulas to specify cells or ranges of cells. A reference
style specifies a cell in a two-dimensional table by identifying the row and column that contain
that cell or range of cells.
refresh: A process that retrieves values from a data source and populates a workbook with those
values.
relative reference: A reference to a location on a sheet that is relative to the cell that contains
the reference. A relative reference can be stored as a cell reference or as an offset.
relative security descriptor: A security descriptor that contains all associated security
information in a contiguous block of memory.
44 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
result cell: A cell that contains the results of the calculation of changing cells in a scenario.
revision history: A list of data that describes document updates, such as when and by whom a
document was modified.
revision record: Any of the records in the revision stream of a shared workbook that stores
user edits to the workbook and other tracked information.
right-to-left: A reading and display order that is optimized for right-to-left languages.
routing slip: Information that specifies how a document is to be distributed from a document
originator and processed by one or more recipients. It also specifies subject and message body
text that is associated with the document routing process and routing status or workflow
information.
row outline: A mechanism for grouping and nesting the rows in a worksheet.
RTD server: A Component Object Model (COM) Automation server that is used by the real-time
data (RTD) function to retrieve data in real time. The RTD server can exist as an ActiveX DLL or
as an executable (.exe) file that runs on the same local computer or on a remote server.
RTD topic: A discrete combination of parameters that is used to request data from a real-time
data (RTD) server.
ruler: A user interface element that enables users to adjust page margins and to measure and
align objects in a document.
safe load: A process of loading a file in which additional error checking is performed and various
corruption patterns in the file are detected and repaired.
scenario: A named set of input values (changing cells) that can be substituted in a worksheet
model.
Scenario Manager: A process for creating and managing different sets of input values for
calculation models in a worksheet.
secondary bar/pie: A secondary chart in a bar of pie or pie of pie chart that displays the detailed
data of the grouped data point in the primary pie chart. The secondary bar/pie chart takes the
form of a stacked bar chart or a pie chart that is connected to the primary pie chart with series
lines.
security descriptor: A data structure containing the security information associated with a
securable object. A security descriptor identifies an object's owner by its security identifier
(SID). If access control is configured for the object, its security descriptor contains a
discretionary access control list (DACL) with SIDs for the security principals who are allowed or
denied access. Applications use this structure to set and query an object's security status. The
security descriptor is used to guard access to an object as well as to control which type of
auditing takes place when the object is accessed. The security descriptor format is specified in
[MS-DTYP] section 2.4.6; a string representation of security descriptors, called SDDL, is
specified in [MS-DTYP] section 2.5.1.
selection: An item or set of items, such as cells, shapes, objects, and chart elements, that has
focus in a document.
45 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
series line: A supplemental line on a stacked column, stacked bar, pie of pie, or bar of pie chart
that connects each data point in a series with the next data point to increase legibility.
server name: The name of a server, as specified in the operating system settings for that server.
shade: A color that is mixed with black. A 10-percent shade is one part of the original color and
nine parts black.
shadow effect: A formatting effect that makes a font or object appear to be elevated from the
page or screen surface, and therefore casts a shadow.
shape: A collection of qualifiers, such as names, and quantifiers, such as coordinates, that is used
to represent a geometric object. A shape can be contained in a document, file structure, run-
time structure, or other medium.
shared workbook: A workbook that is configured to enable multiple users on a network to view
and make changes to it at the same time. Each user who saves the workbook sees the changes
that are made by other users.
sheet: (1) A part of an Excel workbook. There are four types of sheets: worksheet, macro
sheet, dialog sheet, and chart sheet. Multiple sheets are stored together within a workbook.
(2) A worksheet. The term sheet frequently refers to a worksheet because worksheets are the
most common type of sheet.
sheet view: A collection of display settings, such as which cells are shown, and the zoom level for
a sheet window.
shrink to fit: The process of adjusting the font size of text in a cell to fit the current height and
width of the cell.
single accounting: An underline style that places one line beneath the text. Single accounting can
be used to indicate subtotals.
single sign-on (SSO) identifier: A string that represents the definition of user credentials that
permit a user to access a network. See also single sign-on (SSO).
smart document: A file that is programmed to assist the user as the user creates or updates the
document. Several types of files, such as forms and templates, can also function as smart
documents.
smart tag: A feature that adds the ability to recognize and label specific data types, such as
people's names, within a document and displays an action button that enables users to perform
common tasks for that data type.
smart tag actions button: A user interface control that displays a menu of actions that are
associated with a specific smart tag.
smart tag indicator: A triangular symbol that appears in the bottom right corner of a cell and
indicates that the cell contains a smart tag.
sort: A process that arranges cells in ascending or descending order, based on cell content.
sort order: A specific arrangement of cells that is based on cell content. The order can be
ascending or descending.
46 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
sort range: A range of cells that will be or has been sorted.
source data: The data that is used as the basis for charts, PivotTable reports, and other data
visualization features.
split pane: A pane that consists of two or more discrete areas of a window. Each area displays
content and scrolls independently from other areas of the window. See also frozen panes.
SplitButtonPopup control: A type of Button control that performs an action when clicked, and
can also display a menu of related commands when the user clicks a drop-down arrow that
appears on the button.
SplitDropDown control: A type of Button control that performs a default action when clicked, and
can also expand to display a list of other possible actions when the user clicks a drop-down
arrow that appears on the button.
startup directory: The directory from which an application opens data files when the application
starts.
storage: An element of a compound file that is a unit of containment for one or more storages and
streams, analogous to directories in a file system, as described in [MS-CFB].
strikethrough formatting: A formatting option in which characters are crossed out by horizontal
line.
stripe band: One or more adjacent columns or rows that are in a table and have the same stripe
formatting.
stroke order: A sort order that arranges items in a sort range according to the number of strokes
that is used to write each glyph. Stroke order is used when sorting text that is written in some
East Asian languages.
Structured Query Language (SQL): A database query and programming language that is widely
used for accessing, querying, updating, and managing data in relational database systems.
style: A set of formatting options that is applied to text, tables, charts, and other objects in a
document.
subtotal column: A column that uses a summary or subtotal function to display the total of detail
items in a PivotTable field.
template: A file that contains pre-defined formatting including layout, text and graphics. It serves
as the basis for new documents that have a similar look or purpose. See also form template
(Microsoft InfoPath) and site template (SharePoint Products and Technologies).
text importation: A process that incorporates textual data into a workbook, either by opening a
text file or through an external link.
text query: A query that is used to import data from text files.
47 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
text run: A string of characters that represents a discrete span of text with the same formatting
properties.
text style: A formatting option, such as bold or italic, that can be applied to a font.
theme: A set of unified design elements, such as colors, fonts, graphics, and styles, that define the
appearance of a website, document, or data visualization.
time hierarchy: A specialized Online Analytical Processing (OLAP) hierarchy that can be organized
into lower and higher levels of detail, such as Year, Quarter, Month, and Day.
toolbar control: An object that appears on a toolbar and enables user interaction or input,
typically to initiate an action, display information, or set values.
toolbar view: A visual state of a toolbar that depends on the current state of the application. Valid
toolbar views are docked, floating, and not visible.
ToolTip: A small pop-up window that provides brief context-sensitive help when users point to an
item. Also referred to as ScreenTip.
top N filter: A filter that matches the top or bottom N items or N% of items in a specified column.
total row: A row in a list or table that provides a selection of aggregate functions that are useful
for working with numerical data.
transfer protocol: A protocol that governs the transfer of files, Internet messages, and webpages
between networked computers. On the Open Systems Interconnection (OSI) Basic Reference
Model, these are application layer protocols. Examples of transfer protocols are Hypertext
Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), and File Transfer Protocol (FTP).
transition formula entry: A worksheet option that enables users to enter formulas that use IBM
Lotus 1-2-3 syntax.
trendline: A line that is added to a chart to show the trend of multiple data points in a series. A
trendline is used to facilitate regression analysis.
tuple: An ordered grouping of members from different dimensions or hierarchies. A single member
is a special case of a tuple and can be used as an expression. Every hierarchy does not have to
be represented in a tuple.
twip: A unit of measurement that is used in typesetting and desktop publishing. It equals one-
twentieth of a printer's point, or 1/1440 of an inch.
two-variable data table: A data table that consists of two input cells, a row input cell and a
column input cell.
type library: A binary file that describes the methods, properties, and data structure of a
component.
UNC volume: A storage device that is accessible by network protocols and addressed in the
standard Universal Naming Convention format, for example, "\\Server Name\Share Name".
unfrozen pane: A portion of a worksheet that continues to scroll and function normally in split
pane view. See also frozen pane.
Unicode: A character encoding standard developed by the Unicode Consortium that represents
almost all of the written languages of the world. The Unicode standard [UNICODE5.0.0/2007]
48 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
provides three forms (UTF-8, UTF-16, and UTF-32) and seven schemes (UTF-8, UTF-16, UTF-16
BE, UTF-16 LE, UTF-32, UTF-32 LE, and UTF-32 BE).
Uniform Resource Identifier (URI): A string that identifies a resource. The URI is an addressing
mechanism defined in Internet Engineering Task Force (IETF) Uniform Resource Identifier (URI):
Generic Syntax [RFC3986].
Uniform Resource Locator (URL): A string of characters in a standardized format that identifies
a document or resource on the World Wide Web. The format is as specified in [RFC1738].
up-down bar: A vertical bar that highlights the difference between data points in a line chart that
contains more than one data series.
user name: A unique name that identifies a specific user account. The user name of an account is
unique among the other group names and user names within its own domain or workgroup.
user-defined function (UDF): A function that is coded in a VBA module, macro sheet, add-in, or
Excel Linked Library (XLL). A UDF can be used in formulas to return values to a worksheet,
similar to built-in functions.
VBA project: A collection of the modules, class modules, and user forms that are needed to create
an application. Modules, class modules, and user forms can be imported into and exported from
a project.
vertical alignment: A formatting setting that specifies how content is positioned within the
vertical space of a cell, object, or page. Content can be aligned along the top or bottom edge, or
distributed evenly across the vertical space.
Visual Basic for Applications (VBA): A macro-based programming language that derives from
Microsoft Visual Basic and can be used to customize and extend an application. Unlike Visual
Basic, VBA code and macros can be run only from within a host application that supports VBA.
volatile: A condition of a formula in which the formula is calculated every time the workbook is
calculated. This is unlike a non-volatile formula, which is calculated only when dependent values
are changed.
wall: An extension of the background of a 3-D chart to create a three-dimensional effect. See also
floor.
watched cell: A cell whose value is monitored in a separate window while formulas that are
associated with the cell are calculated.
web query: An external data connection that retrieves a table from a website and inserts table
data into a workbook.
wide katakana: A non-cursive character set that is used to write non-Japanese words
phonetically in Japanese. Wide katakana characters are represented with two bytes.
window state: The current positioning state of a window. Windows can be maximized or
minimized, or the window size can be customized by the user.
49 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
workbook: A container for a collection of sheets (1).
workbook parameter: A single cell that is designated to receive input from users.
worksheet: A single logical container for a set of tabular data and other objects in a workbook.
XML map: A feature that is used to import data from databases and applications and to map XML
elements and attributes from the associated XML schema to cells in a worksheet. The revised
XML data can then be exported for interaction with other databases and applications.
XML namespace: A collection of names that is used to identify elements, types, and attributes in
XML documents identified in a URI reference [RFC3986]. A combination of XML namespace and
local name allows XML documents to use elements, types, and attributes that have the same
names but come from different sources. For more information, see [XMLNS-2ED].
XML node: The smallest unit of a valid, complete structure in an XML document. For example, a
node can represent an element, an attribute, or a text string.
XML Path Language (XPath): A language used to create expressions that can address parts of
an XML document, manipulate strings, numbers, and Booleans, and can match a set of nodes in
the document, as specified in [XPATH]. XPath models an XML document as a tree of nodes of
different types, including element, attribute, and text. XPath expressions can identify the nodes
in an XML document based on their type, name, and values, as well as the relationship of a node
to other nodes in the document.
XML schema: A description of a type of XML document that is typically expressed in terms of
constraints on the structure and content of documents of that type, in addition to the basic
syntax constraints that are imposed by XML itself. An XML schema provides a view of a
document type at a relatively high level of abstraction.
XML schema definition (XSD): The World Wide Web Consortium (W3C) standard language that
is used in defining XML schemas. Schemas are useful for enforcing structure and constraining
the types of data that can be used validly within other XML documents. XML schema definition
refers to the fully specified and currently recommended standard for use in authoring XML
schemas.
XOR obfuscation: A type of file encryption that helps protect private data by using an exclusive or
bitwise operation. This is done by adding a mathematical expression that prevents a simple
reverse-engineering process.
XPath expression: An expression that searches an71 XML document and can extract and
manipulate data in elements or attributes within that document.
zoom level: The degree to which a portion of an image, document, or other screen object is made
to appear closer or farther away relative to its default appearance. This value is usually
expressed as a percentage of the default appearance.
MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined
in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.
50 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1.2 References
Links to a document in the Microsoft Open Specifications library point to the correct section in the
most recently published version of the referenced document. However, because individual documents
in the library are not updated at the same time, the section numbers in the documents may not
match. You can confirm the correct section numbering by checking the Errata.
We conduct frequent surveys of the normative references to assure their continued availability. If you
have any issue with finding a normative reference, please contact [email protected]. We will
assist you in finding the relevant information.
[ECMA-376] ECMA International, "Office Open XML File Formats", 1st Edition, ECMA-376, December
2006, http://www.ecma-international.org/publications/standards/Ecma-376.htm
[IEEE754] IEEE, "IEEE Standard for Binary Floating-Point Arithmetic", IEEE 754-1985, October 1985,
http://ieeexplore.ieee.org/servlet/opac?punumber=2355
[MS-OLEDS] Microsoft Corporation, "Object Linking and Embedding (OLE) Data Structures".
[MS-OSHARED] Microsoft Corporation, "Office Common Data Types and Objects Structures".
[RFC1320] Rivest, R., "The MD4 Message-Digest Algorithm", RFC 1320, April 1992,
http://www.ietf.org/rfc/rfc1320.txt
[RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992,
http://www.ietf.org/rfc/rfc1321.txt
[RFC1951] Deutsch, P., "DEFLATE Compressed Data Format Specification version 1.3", RFC 1951, May
1996, http://www.ietf.org/rfc/rfc1951.txt
51 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC
2119, March 1997, http://www.rfc-editor.org/rfc/rfc2119.txt
[RFC2781] Hoffman, P., and Yergeau, F., "UTF-16, an encoding of ISO 10646", RFC 2781, February
2000, http://www.rfc-editor.org/rfc/rfc2781.txt
[RFC3986] Berners-Lee, T., Fielding, R., and Masinter, L., "Uniform Resource Identifier (URI): Generic
Syntax", STD 66, RFC 3986, January 2005, http://www.rfc-editor.org/rfc/rfc3986.txt
[RFC5234] Crocker, D., Ed., and Overell, P., "Augmented BNF for Syntax Specifications: ABNF", STD
68, RFC 5234, January 2008, http://www.rfc-editor.org/rfc/rfc5234.txt
[SCHNEIER] Schneier, B., "Applied Cryptography, Second Edition", John Wiley and Sons, 1996, ISBN:
0471117099, http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471117099.html
[XMLDSig] Bartel, M., Boyer, J., Fox, B., et al., "XML-Signature Syntax and Processing", W3C
Recommendation, February 2002, http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/
[XMLNS] Bray, T., Hollander, D., Layman, A., et al., Eds., "Namespaces in XML 1.0 (Third Edition)",
W3C Recommendation, December 2009, http://www.w3.org/TR/2009/REC-xml-names-20091208/
[XMLSCHEMA1/2] Thompson, H., Beech, D., Maloney, M., and Mendelsohn, N., Eds., "XML Schema
Part 1: Structures Second Edition", W3C Recommendation, October 2004,
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/
[XMLSCHEMA2/2] Biron, P., and Malhotra, A., Eds., "XML Schema Part 2: Datatypes Second Edition",
W3C Recommendation, October 2004, http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/
[MSDN-OSTD] Microsoft Corporation, "Overview of Smart Tag Development [Office 2003 SDK
Documentation]", http://msdn.microsoft.com/en-us/library/aa169328.aspx
[MSFT-XL2000] Microsoft Corporation, "XL2000: Unable to Share Custom Lists", Article ID 212245,
November 2003, http://support.microsoft.com/kb/212245/
52 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1.3 Overview
This document specifies workbook data contained in a compound file as described in [MS-CFB]. The
data is stored in the compound file by using storages, streams (section 2.1.2), and substreams
(section 2.1.3) that contain information about the content and structure of a workbook, including
workbook data such as worksheet definitions. Some storages, streams, and substreams store
information by using binary records (section 2.1.4). The binary record (section 2.1.4) structure and
content are specified in this document. Each binary record contains its record type, information about
the record size, and zero or more type-specific fields depending on the record type, which is specified
in section 2.3. Type-specific fields contain information further specifying the workbook data.
Specifications of the fields for a given record type can be found in section 2.4.
See the File Structure section (section 2.1) for a more detailed overview of specific file architecture
and content.
Some computer architectures number bytes in a binary word from left to right, which is referred to as
big-endian. This documentation uses big-endian bit diagrams. Other architectures number the bytes
in a binary word from right to left, which is referred to as little-endian. The underlying file format
enumerations, objects, and records are little-endian.
Using big-endian and little-endian methods, the number 0x12345678 would be stored as shown in the
following table:
Unless otherwise specified, all data in files of the type specified by this document are stored in little-
endian format.
Section 2 of this document is arranged with overviews of higher-level concepts being followed by more
detailed concepts. Section 2.1 and section 2.2, in particular, specify higher-level concepts that are
required to understand the remainder of the document, and are read before reading the remainder of
section 2.
Section 2.1 specifies the structures and concepts that are used to organize and structure the file itself.
Subsection 2.1.7 further specifies the valid storages, streams (section 2.1.2), and substreams
(section 2.1.3) allowed within files of the type specified by this document.
Section 2.2 specifies higher-level concepts that are normatively described for use in later sections of
this document.
Section 2.3 specifies the record name associated with a given record type. For more information about
record types, see section 2.1.4. These associations are listed by record name as well as by record
type.
Section 2.5 specifies the details of structures used by records and other structures.
53 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Section 3 provides specific examples intended to illustrate the concepts, records, and structures of this
file format.
Section 4 discusses encryption, obfuscation and other security issues relating to files of the type
specified by this document.
Section 5 is a list of version-specific behaviors. It is not intended to be read alone, but rather to be
understood in the context of specifications in section 2. Specifications in section 2 provide links to the
relevant items in Section 5.
The Excel Binary File Format is an OLE compound file as described in [MS-CFB]. It is dependent on
the structures defined in the following references:
[MS-OFFCRYPTO] for the persistence format for document signing, information rights
management, document encryption and obfuscation.
This document specifies a persistence format for workbook content and templates, which can include
unstructured or semi-structured tables of numbers, text, or both numbers and text, formulas, external
data connections, charts and images. This persistence format is applicable for persistence of
documents with a grid-based layout, including those with numeric data, structured data, and formulas.
This persistence format is applicable for use as a stand-alone document, and for containment within
other documents as an embedded object as described in [MS-OLEDS].
This persistence format provides interoperability with applications that create or read documents
conforming to this structure.
Structure Versions: There is only one version of the Excel Binary File Format (.xls) Structure
Specification.
Localization: The following records and structures contain fields that specify locale-dependent
meaning:
54 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The Security Considerations section (section 4), the Password Verifier Algorithm section (section
2.2.9), the Encryption (Password to Open) section (section 2.2.10), and the Macro Sheet Substream
section (section 2.1.7.20.4) also specify processes and data that are locale-dependent. See each
record, structure, and section description for more information.
This persistence format can be extended by storing information in streams and storages not specified
in section 2. Implementations are not required to preserve or remove additional streams or storages
when modifying an existing document.
55 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2 Structures
This section specifies the overall structure of a file that conforms to this specification.
A file of the type specified by this document is an OLE compound file. A compound file (section
2.1.1) contains storages, streams (section 2.1.2), and substreams (section 2.1.3). Each stream or
substream contains a series of binary records (section 2.1.4). Each binary record contains zero or
more structured fields that contain the workbook data.
A file of the type specified by this document MUST be an OLE compound file as specified in [MS-
CFB].
2.1.2 Stream
A file of the type specified by this document consists of storages and streams as specified in [MS-
CFB]. Each binary stream or substream (section 2.1.3) that contains workbook data MUST be
written as a series of binary records (section 2.1.4) as specified in section 2.1.7.
The valid storages, streams, and substreams in a file of the type specified by this document are
specified in section 2.1.7.
A workbook MUST contain the workbook stream (section 2.1.7.20), with at least one sheet (1)
substream (Worksheet Substream (section 2.1.7.20.5), Chart Sheet Substream (section
2.1.7.20.1), Macro Sheet Substream (section 2.1.7.20.4), or Dialog Sheet Substream (section
2.1.7.20.2)) that follows the Globals Substream (section 2.1.7.20.3).
This document uses Augmented Backus-Naur Form (ABNF) as specified in [RFC5234] to specify
the record sequence for streams and substreams that contain binary records.
2.1.3 Substream
The workbook stream (section 2.1.7.20) contains substreams that specify global properties and data
for a workbook and specify the sheets (1) that constitute the workbook. The beginning of each
substream is marked by a BOF record (section 2.4.21) that has a dt field that specifies the type of the
substream. The end of each substream is marked by an EOF record (section 2.4.103).
For more information about these substreams, see section 2.1.7.20 and subsections.
2.1.4 Record
A record is the basic building block used to store information about features in a workbook. Each
binary record is a variable-length sequence of bytes. A binary record consists of three components: a
record type, a record size, and the record data that is specific to that record type.
The record type is a two-byte unsigned integer that specifies what type of information is specified by
the record and how the structure of the record data specific to this record is ordered and structured.
Record type values MUST be a value from the Record Enumeration (section 2.3) or the record MUST
make use of the future record architecture (section 2.1.6).
The record size is a two-byte unsigned integer that specifies the count of bytes that specifies the total
size of the record data. The record size MUST be greater than or equal to 0 and MUST be less than or
equal to 8224.
56 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The record data component contains fields that correspond to a particular record type and comprise
the remainder of the record. The order and structure of the fields for a given record type listed in
section 2.3 are specified in the corresponding section for that record type in section 2.4. The size of
the record data component MUST be equal to the record size. Fields in the record data component can
contain simple values, arrays of values, structures of several fields, arrays of fields, and arrays of
structures.
If the total number of bytes to be written for a given record data component is greater than 8224, a
collection of Continue (section 2.4.58), ContinueFrt (section 2.4.60), ContinueFrt11 (section
2.4.61), or ContinueFrt12 (section 2.4.62) records, as specified in the respective ABNF for that
record, is used to contain the remaining record data. In general, the first 8224 bytes of data is
contained in the record data component of the given record and the remaining data is divided into
blocks of 8224 bytes and contained in the subsequent collection of Continue (section 2.4.58),
ContinueFrt (section 2.4.60), ContinueFrt11 (section 2.4.61), or ContinueFrt12 records, until all
the data is written. See specific record definitions for exceptions. ContinueBigName (section 2.4.59)
and CrtMlFrtContinue (section 2.4.71) are special cases that only apply to a single record type.
A collection of records (section 2.1.4) is a series of related records that are treated as a single set.
Records in a collection do not have to share the same record type. A collection of records can
further contain other collections of records. The beginning of a collection of records is sometimes
indicated by a different type of record, as specified in the record sequence ABNF where the rule that
contains that record is specified. Similarly the end of a collection of records is sometimes indicated
by a different type of record, as specified by the record sequence ABNF where the rule that contains
that record is specified. Each record or collection within the collection can be referred to by index,
and the index count starts over for each collection.
In this document, record A precedes record B when record A is the last record of that type to
appear before record B, in the stream (section 2.1.2) or substream (section 2.1.3) that contains
those records.
In this document, record B follows record A when record A is the last record of that type to appear
before record B, in the stream or substream that contains those records.
The future record architecture enables an application that does not support certain records (section
2.1.4) to open and save the file while ignoring but preserving those records in the file. Records that
contain an FRTHeader (section 2.5.135), FrtHeaderOld (section 2.5.136), FrtRefHeader (section
2.5.137), FrtRefHeaderNoGrbit (section 2.5.138). or FrtRefHeaderU (section 2.5.139) structure,
as specified in this document, are future records and can be treated as such by an application that
implements the future record architecture. Future records that are not supported by an application
can be cached on load and persisted on save, enabling the data to be retained in the file for an
application that does support those records. When loading and caching these unsupported records,
an application can process range references associated with the unsupported records as specified in
the FRTHeader, FrtHeaderOld, FrtRefHeader, FrtRefHeaderNoGrbit, or FrtRefHeaderU
structures. The application can adjust these range references as cells are inserted, deleted or moved
in the sheets (1) to preserve the correctness and validity of these range references associated with
the unsupported records when saving the workbook along with the unsupported records.
For an in-depth discussion of how these structures relate to each other, read the specification for each
structure in section 2.5.
57 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.1.6.1 Chart
There are three types of future records (section 2.1.6) that can appear in the Chart Sheet
Substream (section 2.1.7.20.1).
The first type of future record is specific to a chart (section 2.2.3.3) and is stored by using the
future record architecture as specified in the Future Record section (section 2.1.6). Specifically,
these future records that are specific to charts have a record type that MUST be greater than or
equal to 2048 and MUST be less than or equal to 2303, as specified in section 2.3. These future
records MUST exist in the collection of records (section 2.1.4) specified by the StartBlock records
(section 2.4.266) and EndBlock records (section 2.4.100), unless they exist in the collection of
records specified by the StartObject records (section 2.4.267) and EndObject records (section
2.4.101). The StartBlock records (section 2.4.266) and EndBlock records themselves MUST NOT
appear in the collection of records specified by the StartObject records and EndObject records.
Furthermore, a ChartFrtInfo record (section 2.4.49) MUST precede the first future record that is
specific to a chart in a Chart Sheet Substream.
The second type of future record is stored by wrapping otherwise non-future records in the
FrtWrapper record (section 2.4.130), as specified in section 2.4.130. These records MUST be written
in their entirety (the record type, record size and record data components, as specified in section
2.1.4) in the wrappedRecord field of the FrtWrapper record. These MUST exist in the collection of
records specified by the StartObject records and EndObject records.
The third type of future record is any other future record that is stored by using the future record
architecture as specified in section 2.1.6, not belonging to the first two types.
See the respective record definitions (section 2.4) for details on how these records are written
relative to other future records in the Chart Sheet Substream.
2.1.6.2 PivotTable
PivotTables (section 2.2.5) implement the future record architecture as specified in section 2.1.6.
There are multiple classes of PivotTable records (section 2.2.5.1) represented using the SXAddl
record (section 2.4.273.2). Each record (section 2.1.4) in a class specifies a different piece of
information for the part of the PivotTable (section 2.2.5) to which the SXAddl record applies. For
more information about how the SXAddl record is used, read section 2.2.5.1.1.
This section specifies the storages, streams and substreams of the Excel Binary File Format (.xls)
file. Refer to section 2.1 for an understanding of storages, streams, and substreams.
If the stream is in Binary Interchange File Format (BIFF) format, the record sequence is specified
using ABNF grammar.
The name of this stream MUST be "\001CompObj", where \001 is the character with the value 0x01,
not the string literal "\001".
58 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.1.7.2 Control Stream (Ctls)
An instance of the Control Stream specifies the OLE objects and ActiveX controls that use
stream-based persistence.
The name of this stream MUST be "Ctls". A file MUST contain at most one Control Stream. An object
persisted in this stream MUST have a corresponding Obj record (section 2.4.181) in a worksheet
substream (section 2.1.7.20.5) with a cmo.ot field that equals 8 and a pictFlags.fPrstm field that
equals 1. The pictFmla.lPosInCtlsStm and pictFmla.cbBufInCtlsStrm fields of the Obj record
specify the location of the object data associated with that Obj record.
The name of this storage MUST be "\006DataSpaces", where \006 is the character with the value
0x06, not the string literal "\006". A file MUST contain at most one Data Spaces Storage.
The name of this stream MUST be "\005DocumentSummaryInformation", where \005 is the character
with the value 0x05, not the string literal "\005". A file MUST contain at most one Document Summary
Information Stream.
An instance of the Embedding Storage specifies an embedded OLE object or an ActiveX control
that uses storage-based persistence.
The name of this storage MUST be "MBD" followed by eight hexadecimal digits uniquely identifying the
embedded object. An object persisted in an Embedding Storage MUST have a corresponding Obj
(section 2.4.181) in a worksheet substream (section 2.1.7.20.5), macro sheet substream
(section 2.1.7.20.4), or dialog sheet substream (section 2.1.7.20.2) with a cmo.ot field that equals
8, a pictFlags.fPrstm field that equals 0, and a pictFlags.fDde field that equals 0. The
pictFmla.lPosInCtlsStm field of the Obj record specifies the name of the Embedding Storage that
is associated with that Obj record.
The name of this stream MUST be "encryption". A file MUST contain at most one Encryption Stream.
An instance of the Link Storage specifies a linked OLE object and any default data or presentation
caching established for it.
The name of this storage MUST be "LNK" followed by eight hexadecimal digits uniquely identifying the
linked object. An object persisted in a Link Storage MUST have a corresponding Obj (section
2.4.181) in a worksheet substream (section 2.1.7.20.5), macro sheet substream (section
2.1.7.20.4), or dialog sheet substream (section 2.1.7.20.2) with a cmo.ot field that equals 8, a
pictFlags.fPrstm field that equals 0, and a pictFlags.fDde field that equals 1. Additionally, the
pictFmla.fmla field of the Obj record (section 2.4.181) specifies a formula that refers to an
59 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ExternName (section 2.4.105) with a body field of type ExternOleDdeLink (section 2.5.107) with a
lStgName field that specifies the name of the Link Storage that is associated with that Obj record.
The List Data Stream specifies one or more Web-based data provider data source definitions. Each
data source definition is related to a Web-based data provider list.
The name of the stream MUST be "List Data". A file MUST contain at most one List Data Stream.
Each data source definition is related to a Feature11 record (section 2.4.114) or Feature12 record
(section 2.4.115). The lPosStmCache, cbStmCache and cchStmCache fields of the
TableFeatureType structure (section 2.5.266) specify the relationship between the Feature11
record or Feature12 record and the List Data Stream.
Each data source definition is specified as a compressed stream. The compression algorithm is
specified in [RFC1951]. The stream is specified by the following XML schema:
60 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Deletes" minOccurs="0">
<s:complexType>
<s:sequence>
<s:element ref="rs:data" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="LISTDATAFTR" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
2.1.7.8.1 Attributes
The following table specifies the attributes that can be used in the LIST element:
Attribute Description
Version Web-based data provider server version from which the data was retrieved. MUST
be less than or equal to 20 characters.
2.1.7.8.2 Elements
The following table specifies the XML schema definition (XSD) elements that are specific to the
LIST element:
Element Description
LISTNAME Display name or GUID, as specified by [MS-DTYP], of a Web-based data provider
(section list.
2.1.7.8.2.1)
VIEWGUID GUID, as specified by [MS-DTYP], of a Web-based data provider list view.
(section
2.1.7.8.2.2)
LISTWEB Uniform Resource Identifier (URI) of the Web-based data provider server from
(section which the list was retrieved.
2.1.7.8.2.3)
ROOTFOLDER Path on the Web-based data provider server where the list is located.
(section
2.1.7.8.2.4)
LISTSCHEMA XML schema of the fields of the Web-based data provider list.
(section
2.1.7.8.2.5)
VIEWSCHEMA XML schema of the Web-based data provider list view.
(section
2.1.7.8.2.6)
LISTDATA Specifies the data of the list.
(section
2.1.7.8.2.7)
UPDATE Specifies the inserted, deleted, and updated fields that were modified from the
(section original data source .
2.1.7.8.2.8)
61 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Element Description
LISTDATAFTR Validation footer used to validate the integrity of the data within the stream .
(section
2.1.7.8.2.9)
2.1.7.8.2.1 LISTNAME
The LISTNAME element specifies a list on the Web-based data provider server. It MUST be the
display name or the GUID, as specified by [MS-DTYP], of a list. The LISTNAME element is specified
as follows:
2.1.7.8.2.2 VIEWGUID
The VIEWGUID element specifies a list view on the server. It MUST be the GUID, as specified by
[MS-DTYP], of a list view. The VIEWGUID element is specified as follows:
When the VIEWGUID element is not present or the value of the VIEWGUID element is empty, the
current data source definition within the List Data Stream (section 2.1.7.8) MUST retrieve data
from the default list view of the list on the server.
2.1.7.8.2.3 LISTWEB
The LISTWEB element specifies, as a URI, the name of the Web-based data provider server from
which the list data was retrieved. MUST be a valid URI, as specified by [RFC3986]. The LISTWEB
element is specified as follows:
2.1.7.8.2.4 ROOTFOLDER
The ROOTFOLDER element specifies the path from the LISTWEB URI where the Web-based data
provider list from which the data was retrieved is located. When concatenated to the end of the
LISTWEB field value, the result MUST be a valid URI, as specified by [RFC3986]. The ROOTFOLDER
element is specified as follows:
2.1.7.8.2.5 LISTSCHEMA
The LISTSCHEMA element specifies the fields of the Web-based data provider list from which the
data was retrieved, along with additional information. The additional information includes regional
settings and whether attachments are enabled. The LISTSCHEMA element is specified as follows:
62 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
</s:complexType>
</s:element>
2.1.7.8.2.6 VIEWSCHEMA
The VIEWSCHEMA element specifies the list view of the Web-based data provider list from which
the data was retrieved. The VIEWSCHEMA element is specified as follows:
2.1.7.8.2.7 LISTDATA
The LISTDATA element specifies the data retrieved from the Web-based data provider list. The
LISTDATA element is specified as follows:
<s:element name="LISTDATA">
<s:complexType>
<s:sequence>
<s:element ref="rs:data" />
</s:sequence>
</s:complexType>
</s:element>
The referenced rs:data type is specified in [MS-PRSTFR] section 2.2. Additional information and
examples is also specified in [MS-LISTSWS] section 3.1.4.21.2.2.
2.1.7.8.2.8 UPDATE
The UPDATE element specifies the inserted, deleted, and updated fields that were modified from the
data specified in LISTDATA (section 2.1.7.8.2.7). The definition of the UPDATE element is as
follows:
<s:element name="UPDATE">
<s:complexType>
<s:sequence>
<s:element name="Inserts" minOccurs="0">
<s:complexType>
<s:sequence>
<s:element ref="rs:data" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="Updates" minOccurs="0">
<s:complexType>
<s:sequence>
<s:element ref="rs:data" />
</s:sequence>
</s:complexType>
</s:element>
63 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<s:element name="Deletes" minOccurs="0">
<s:complexType>
<s:sequence>
<s:element ref="rs:data" />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
The UPDATE element is a parent element, which contains 3 optional child elements: Inserts,
Updates and Deletes. Inserts specifies rows that were added locally, and are not synchronized with
the data source. Updates specifies rows that were modified locally, and that are not synchronized
with the data source. Deletes specifies rows that were deleted locally, and that are not synchronized
with the data source. The referenced rs:data type for each of the elements is specified in [MS-
PRSTFR] section 2.2. Additional information and examples is also specified in [MS-LISTSWS] section
3.1.4.21.2.2.
2.1.7.8.2.9 LISTDATAFTR
The LISTDATAFTR element specifies elements used to validate the integrity of the data within the
stream. It contains a sequence of signed integers which specify the MD5 hash of each rs:data
within the stream. The definition of the LISTDATAFTR element is a follows:
The signed integers specified in the string data MUST be separated by the ";#" separator. There MUST
be an MD5 hash, as specified by [RFC1321], for the LISTDATA element, the UPDATE.Inserts
element, the UPDATE.Updates element and the UPDATE.Deletes element. The MD5 hash MUST
appear in the following order: LISTDATA element, the UPDATE.Inserts element, the
UPDATE.Updates element and the UPDATE.Deletes element. If an element is not present in the
stream, the corresponding MD5 hash MUST NOT be present.
The name of this storage MUST be "MsoDataStore". A file MUST contain at most one Office Data
Store Storage.
The Office Toolbars Stream specifies the custom toolbars attached to the file.
The name of this stream MUST be "XCB". A file MUST contain at most one Office Toolbars Stream.
This stream MUST only contain a single CTBWRAPPER structure (section 2.6.1).
Parts of this stream are specified in [MS-OSHARED] section 2.3.1. Refer to [MS-OSHARED] section 1.3
for a diagram that illustrates an example of the XCB binary stream with its toolbar customization
structures.
Following is the record sequence ABNF for the XCB binary stream:
XCB = CTBWRAPPER
CTBWRAPPER = CTBS 1*CTB
64 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
For more information about the CTBWRAPPER structure, see section 2.6.1. For more information
about the CTBS structure, see section 2.6.2. For more information about the CTB structure, see
section 2.6.3.
The name of this stream MUST be "\001Ole", where \001 is the character with the value 0x01, not
the string literal "\001".
The Pivot Cache Storage specifies zero or more streams, each of which specify a PivotCache
(section 2.2.5.3) for a PivotTable (section 2.2.5). The name of each stream MUST be unique within
the storage, and the name MUST be a four digit hexadecimal number stored as text.
The name of this storage MUST be "_SX_DB_CUR". A file MUST contain at most one Pivot Cache
Storage.
The number of FDB rules that occur MUST be equal to the value of cfdbTot in the SXDB record
(section 2.4.275).
GRPSXOPER = SXOPER
SRCSXOPER = SXOPER
The name of this stream MUST be "\009DRMContent", where \009 is the character with the value
0x09, not the string literal "\009". A file MUST contain at most one Protected Content Stream.
An instance of the Revision Stream specifies the revision logs (section 2.2.11.2) and revision
records (section 2.2.11.3) for a shared workbook (section 2.2.11).
65 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The name of this stream MUST be "Revision Log". A file MUST contain at most one Revision Stream.
The Revision Stream MUST exist if the workbook is a shared workbook (section 2.2.11).
REVISION = RRDInfo FileLock UsrExcl *(HEADER *(RENSHEET / INSDEL / CONFLICT / INSDELSH / CHGCELL
/ MOVE / FORMAT / AUTOFMT / DEFNAME / VIEW / NOTE / TRASHQTFIELD)) EOF
RENSHEET = RRDRenSheet
CONFLICT = RRDConflict
INSDELSH = RRInsertSh
FORMAT = RRFormat
AUTOFMT = RRAutoFmt
DEFNAME = RRDDefName
VIEW = RRDUserView
NOTE = Note
TRASHQTFIELD = RRDTQSIF
The name of this stream MUST be "_signatures". A file MUST contain at most one Signatures
Stream<1>.
When generating the Signature value, as specified in [MS-OFFCRYPTO] section 2.5.1.5, the record
data, as specified in section 2.1.4, of the WriteAccess record (section 2.4.349) in the Globals
Substream (section 2.1.7.20.3) is skipped.
The name of this stream MUST be "\005SummaryInformation", where \005 is the character with the
value 0x05, not the string literal "\005". A file MUST contain at most one Summary Information
Stream.
66 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.1.7.17 User Names Stream (User Names)
The User Names Stream specifies a user log (section 2.2.11.1) for a shared workbook (section
2.2.11).
The name of this stream MUST be "User Names". The presence of the User Names Stream indicates
the workbook is a shared workbook (section 2.2.11). A file MUST contain at most one User
Names Stream.
The name of this storage MUST be "_VBA_PROJECT_CUR". A file MUST contain at most one VBA
Storage.
The name of this stream MUST be "\009DRMViewerContent", where \009 is the character with the
value 0x09, not the string literal "\009". A file MUST contain at most one Viewer Content Stream.
The Workbook Stream specifies global properties and data for a workbook, as well as the sheets
(1) that constitute a workbook.
The name of this stream MUST be "Workbook". A file MUST contain exactly one Workbook Stream,
which consists of several substreams. There MUST be exactly one substream (section 2.1.7.20.3),
and the substream MUST be the first substream to appear in the Workbook Stream, which MUST
be followed by one or more of the following substreams:
The Chart Sheet Substream specifies either a separate chart sheet that contains a single chart, or
an embedded chart object (section 2.2.3.1) contained within a worksheet (section 2.1.7.20.5) or
macro sheet (section 2.1.7.20.4).
If a record in the ABNF grammar for this substream is one of the following: Font (section 2.4.122),
Continue (section 2.4.58), LineFormat (section 2.4.156), AreaFormat (section 2.4.3), SeriesText
(section 2.4.254), DefaultText (section 2.4.88), Text (section 2.4.324), FontX (section 2.4.123),
ObjectLink (section 2.4.182), Frame (section 2.4.128), Begin (section 2.4.17), End (section
2.4.99), PicF (section 2.4.193), Pos (section 2.4.201), AlRuns (section 2.4.1), BRAI (section
2.4.29), Fbi (section 2.4.109), or GelFrame (section 2.4.131), and is in a collection specified by
67 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
StartObject (section 2.4.267) and EndObject (section 2.4.101), that record MUST be replaced by an
FrtWrapper record (section 2.4.130) and the wrappedRecord field of that FrtWrapper record
MUST specify the record that is replaced. StartBlock record (section 2.4.266) and EndBlock record
(section 2.4.100) pairs and ChartFrtInfo (section 2.4.49) are omitted from the ABNF grammar. See
section 2.1.6.1 and the respective record specifications for more information.
CHARTFOMATS = Chart Begin *2FONTLIST Scl PlotGrowth [FRAME] *SERIESFORMAT *SS ShtProps *2DFTTEXT
AxesUsed 1*2AXISPARENT [CrtLayout12A] [DAT] *ATTACHEDLABEL [CRTMLFRT] *([DataLabExt
StartObject] ATTACHEDLABEL [EndObject]) [TEXTPROPS] *2CRTMLFRT End
CRT = ChartFormat Begin (Bar / Line / (BopPop [BopPopCustom]) / Pie / Area / Scatter / Radar /
RadarArea / Surf) CrtLink [SeriesList] [Chart3d] [LD] [2DROPBAR] *4(CrtLine LineFormat)
*2DFTTEXT [DataLabExtContents] [SS] *4SHAPEPROPS End
AI = BRAI [SeriesText]
68 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
DROPBAR = DropBar Begin LineFormat AreaFormat [GELFRAME] [SHAPEPROPS] End
For ABNF rules not listed here, see section 2.1.7.20.6. Within the sequence of records specified by the
CUSTOMVIEW rule (section 2.1.7.20.6) specified in section 2.1.7.20.6, the Selection (section
2.4.248), HorizontalPageBreaks (section 2.4.142), and VerticalPageBreaks (section 2.4.343)
records MUST NOT be present.
There MUST be exactly one Globals Substream in a Workbook Stream (section 2.1.7.20), and the
Globals Substream MUST be the first substream in the Workbook Stream.
69 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
WORKBOOKCONTENT = [WriteProtect] [FilePass] [Template] INTERFACE WriteAccess [FileSharing]
CodePage *2047Lel DSF [Excel9File] RRTabId [ObProj] [ObNoMacros] [CodeName] [FNGROUPS]
*Lbl [OleObjectSize] PROTECTION 1*Window1 Backup HideObj Date1904 CalcPrecision
RefreshAll BookBool FORMATTING *(PIVOTCACHEDEFINITION) [DOCROUTE] *UserBView UsesELFs
1*BUNDLESHEET METADATA [MTRSettings] [ForceFullCalculation] Country *SUPBOOK *LBL *RTD
[RecalcId] *HFPicture *MSODRAWINGGROUP [SHAREDSTRINGS] ExtSST *WebPub [WOpt] [CrErr]
[BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] EOF
BUNDLESHEET = BoundSheet8
70 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXADDLCACHE = SXAddl_SXCCache_SXDId SXAddl_SXCCache_SXDVer10Info [SXAddl_SXCCache_SXDVerSXMacro]
[SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
The Macro Sheet Substream specifies a macro sheet. This substream specifies an international
macro sheet if the Intl record (section 2.4.147) is present.
For ABNF rules not listed here, see section 2.1.7.20.6. Table (section 2.4.319) MUST NOT appear
under this substream.
71 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SCENARIOS = ScenMan *(SCENARIO *Continue)
72 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXADDLCALCMEMBER = (SXAddl_SXCView_SXDCalcMember [SXAddl_SXCView_SXDCalcMemString
*Continue_SxaddlSxString])
For ABNF rules not listed here, see the Common Productions section.
Record sequence fragments that are common to multiple substreams are specified here. If a fragment
cannot be found under its part, look for it in this record sequence<9><10><11> ABNF:
73 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
GLOBALS = CalcMode CalcCount CalcRefMode CalcIter CalcDelta CalcSaveRecalc PrintRowCol PrintGrid
GridSet Guts DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks]
[VerticalPageBreaks]
RECORD12 = HeaderFooter
74 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXADDLDBQUERY = [SXAddl_SXCQuery_SXDXMLSource *Continue_SxaddlSxString]
[SXAddl_SXCQuery_SXDSrcDataFile *Continue_SxaddlSxString] [SXAddl_SXCQuery_SXDSrcConnFile
*Continue_SxaddlSxString] [SXAddl_SXCQuery_SXDReconnCond] SXAddl_SXCQuery_SXDEnd
UNKNOWNFRT = SXAddl
The name of this storage MUST be "_xmlsignatures". A file MUST contain at most one XML
Signatures Storage<12>.
When generating the DigestValue, as specified in [XMLDSig] section 4.3.3.6, the record data, as
specified in the Record section (section 2.1.4), in the WriteAccess record (section 2.4.349) in the
Globals Substream (section 2.1.7.20.3) is skipped.
The name of the stream MUST be "XML". A file MUST contain at most one XML Stream.
The syntax of the structures contained in this part uses XML schema definition (XSD), as specified
in [XMLSCHEMA1/2] and [XMLSCHEMA2/2].
This specification defines and references various XML namespaces using the mechanisms specified in
[XMLNS].
The content of this stream is XML as specified by the following XML schema:
<s:element name="MapInfo">
<s:complexType>
<s:sequence>
<s:element name="Schema" maxOccurs="unbounded">
<s:complexType>
<s:sequence>
<s:any processContents="skip" />
</s:sequence>
<s:attribute name="ID" type="ST_Xstring65535" use="required" />
<s:attribute name="SchemaRef" type="ST_Xstring65535" />
<s:attribute name="Namespace" type="ST_Xstring65535" />
</s:complexType>
</s:element>
<s:element name="Map" maxOccurs="unbounded">
<s:complexType>
<s:sequence>
<s:element name="DataBinding" minOccurs="0">
<s:complexType>
<s:sequence>
<s:any minOccurs="0" processContents="skip" />
</s:sequence>
<s:attribute name="DataBindingName" type="ST_Xstring65535" />
<s:attribute name="FileBinding" type="ST_Xstring65535"
use="required" />
75 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<s:attribute name="FileBindingName" type="ST_Xstring65535" />
<s:attribute name="DataBindingLoadMode"
type="ST_DataBindingLoadMode" use="required" />
</s:complexType>
</s:element>
</s:sequence>
<s:attribute name="ID" type="ST_XmlMapId" use="required" />
<s:attribute name="Name" type="ST_Xstring256" use="required" />
<s:attribute name="RootElement" type="ST_Xstring65535"
use="required" />
<s:attribute name="SchemaID" type="ST_Xstring65535" use="required" />
<s:attribute name="ShowImportExportValidationErrors"
type="ST_XmlMapBoolean" use="required"/>
<s:attribute name="AutoFit" type="ST_XmlMapBoolean" use="required" />
<s:attribute name="Append" type="ST_XmlMapBoolean" use="required" />
<s:attribute name="PreserveSortAFLayout" type="ST_XmlMapBoolean"
use="required" />
<s:attribute name="PreserveFormat" type="ST_XmlMapBoolean"
use="required" />
</s:complexType>
</s:element>
</s:sequence>
<s:attribute name="SelectionNamespaces" type="ST_Xstring65535"
use="required"/>
</s:complexType>
</s:element>
<s:simpleType name="ST_DataBindingLoadMode">
<s:restriction base="s:unsignedInt">
<s:enumeration value="0" />
<s:enumeration value="1" />
<s:enumeration value="2" />
<s:enumeration value="3" />
<s:enumeration value="4" />
</s:restriction>
</s:simpleType>
<s:simpleType name="ST_XmlMapBoolean">
<s:restriction base="s:string">
<s:enumeration value="false" />
<s:enumeration value="true" />
</s:restriction>
</s:simpleType>
<s:simpleType name="ST_XmlMapId">
<s:restriction base="s:unsignedInt">
<s:minInclusive value="1" />
<s:maxInclusive value="2147483647" />
</s:restriction>
</s:simpleType>
<s:simpleType name="ST_Xstring65535">
<s:restriction base="s:string" />
</s:simpleType>
<s:simpleType name="ST_Xstring256">
<s:restriction base="s:string" />
</s:simpleType>
</s:schema>
2.1.7.22.1 Elements
The following table specifies the XSD elements that are specific to the XML Stream (section
2.1.7.22):
76 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Element Description
MapInfo This element specifies a container for all of the XML schemas and XML maps
(section attached to workbook.
2.1.7.22.1.1)
Schema This element specifies an XML schema associated with an XML map.
(section
2.1.7.22.1.2)
Map (section This element specifies an XML map and the behaviors expected during refresh
2.1.7.22.1.3) operations.
DataBinding This element specifies a connection to an XML file data source that is used when
(section the XML map is refreshed.
2.1.7.22.1.4)
2.1.7.22.1.1 MapInfo
The MapInfo element specifies a container for all of the XML schemas and XML maps attached to
workbook.
2.1.7.22.1.2 Schema
The Schema element specifies an XML schema associated with an XML map. The contents of this
element MUST be an XSD, as specified in [XMLSCHEMA1/2] and [XMLSCHEMA2/2].
ID: An ST_Xstring65535 that specifies the unique name for this attached XML schema.
Namespace: An ST_Xstring65535 that specifies the XML namespace used by the XML schema.
SchemaRef: An ST_Xstring65535 that specifies the other Schema elements in this parent
MapInfo element (section 2.1.7.22.1.1) that contain XML schemas that the XML schema for this
Schema element is dependent on. The value MUST specify the dependent Schema elements by ID
in a space-delimited list. The SchemaRef attribute MUST be absent or the value MUST be empty if
there are no dependencies.
2.1.7.22.1.3 Map
The Map element specifies an XML map and the behaviors expected during refresh operations.
Append: An ST_XmlMapBoolean (section 2.1.7.22.2.2) that specifies whether XML data overwrites
or is appended to the table or range of cells associated with the XML map on refresh.
AutoFit: An ST_XmlMapBoolean that specifies whether columns are resized to fit the XML data after
a refresh operation.
ID: An ST_XmlMapId (section 2.1.7.22.2.3) that specifies the identifier of the XML map.
Name: An ST_Xstring256 (section 2.1.7.22.2.5) that specifies the name of the XML map. Name
MUST be unique for each Map.
77 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
RootElement: An ST_Xstring65535 (section 2.1.7.22.2.4) that specifies the name of the root XML
element.
SchemaID: An ST_Xstring65535 that specifies the name of the XML schema used for the XML map.
SchemaID MUST equal the ID attribute of a Schema element (section 2.1.7.22.1.2) contained within
the parent MapInfo element (section 2.1.7.22.1.1).
2.1.7.22.1.4 DataBinding
The DataBinding element specifies a connection to an XML file data source that is used when the
XML map is refreshed.
FileBinding: An ST_Xstring65535 that specifies the XML file data source used for refresh.
FileBinding MUST NOT be "true" or "false".
FileBindingName: An ST_Xstring65535 that specifies the name for the XML file data source.
FileBindingName MUST be unique for each DataBinding element.
The following table specifies the XSD simple types that are specific to the XML Stream (section
2.1.7.22):
Element Description
ST_DataBindingLoadMode This simple type specifies the method for loading XML data related to a
(section 2.1.7.22.2.1) DataBinding element (section 2.1.7.22.1.4).
ST_XmlMapBoolean This simple type specifies Boolean values.
(section 2.1.7.22.2.2)
ST_XmlMapId (section This simple type is an integral value that specifies the identifier of an XML map
2.1.7.22.2.3) (section 2.1.7.22.1.3) in the XML Stream (section 2.1.7.22).
ST_Xstring65535 (section This simple type is a string that MUST NOT exceed 65,535 Unicode characters.
2.1.7.22.2.4)
ST_Xstring256 (section This simple type is a string that MUST NOT exceed 256 Unicode characters.
2.1.7.22.2.5)
2.1.7.22.2.1 ST_DataBindingLoadMode
The ST_DataBindingLoadMode simple type specifies the method for loading XML data related to a
DataBinding element (section 2.1.7.22.1.4).
78 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
4 Object Model.
2.1.7.22.2.2 ST_XmlMapBoolean
2.1.7.22.2.3 ST_XmlMapId
The ST_XmlMapId simple type is an integral value that specifies the identifier of an XML map
(section 2.1.7.22.1.3) in the XML Stream (section 2.1.7.22). ST_XmlMapId MUST be greater than
or equal to 1 and less than or equal to 2147483647.
2.1.7.22.2.4 ST_XmlString65535
The ST_XmlString65535 simple type is a string that MUST NOT exceed 65,535 Unicode characters.
2.1.7.22.2.5 ST_XmlString256
The ST_XmlString256 simple type is a string that MUST NOT exceed 256 Unicode characters.
This section specifies how higher-level features of the file format are represented by combinations of
records.
Text, formulas, and numerical data within workbooks are primarily stored in the cells that make up
worksheets (section 2.1.7.20.5) and macro sheets (section 2.1.7.20.4). Cells are the fundamental
building blocks that contain data, formulas, and formatting to form the workbook. The data structure
associated with the grid of cells is called the cell table.
The cell table is stored in the sequence of records that conform to the CELLTABLE rule (section
2.1.7.20.6) within the Common Productions ABNF. The cell table consists of a series of row blocks.
From the first row containing data to the last row containing data, every 32 consecutive rows,
including blank rows, comprise a row block.
The number of row blocks in a sheet (1) is specified by the following algorithm that uses fields from
the Dimensions record (section 2.4.90):
if ((rwMac –rwMic) % 32 == 0)
number of row blocks = (rwMac –rwMic) / 32
else
number of row blocks = (rwMac –rwMic) / 32 + 1
79 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Within each row block, a Row record (section 2.4.221) is saved for each row that contains data or row
formatting. For each such row, every cell that contains data or individual cell formatting is
represented by a record. Formatting information for a cell can be derived from individual cell
formatting, row formatting, column formatting, or the default cell format as specified by the XFIndex
structure (section 2.5.282). The order of precedence for formatting is individual cell formatting with
the highest precedence, followed by row formatting, and then column formatting, and then the default
cell format. Cells that do not contain data and do not contain individual formatting are not saved.
Cells are specified by any of the records specified in the CELL rule (section 2.1.7.20.6). Multiple cells
can be represented by one record—for example, a MulBlank record (section 2.4.174) specifies a
series of blank cells. Note that blank cells are only included when they contain individual cell
formatting. Rows are saved in increasing order, and cells are saved in row-major order.
The order of the records that comprise a row block begins with a series of Row records (a maximum
of 32 such records), followed by the records representing the cells, followed by the DBCell record
(section 2.4.78). A cell in the cell table is referred to by its row and column indexes, which are zero-
based. The maximum row index is 65535. The maximum column index is 255.
The bounding box of the non-empty cells is stored in the Dimensions record. Information that applies
to each column is specified in the COLUMNS collection (section 2.1.7.20.6).
The only way to retrieve formulas, formats and other cell data is to read the cell table normally as
defined earlier. However, in certain situations (for example when resolving external references to
values) it is beneficial to retrieve only the last calculated value from a cell, without actually loading the
cell table. To improve the performance of a random read access to the values in the cell table
(section 2.2.1), BIFF provides Index (section 2.4.144) and DBCell (section 2.4.78) records. To find a
particular cell value, an application can perform the following:
1. Read Index records to find one such that the cell row is greater or equal to rwMic and less than
rwMac.
2. Compute the data offset of the required DBCell record according to the description of the Index
record.
3. Read the DBCell record (section 2.4.78) in the obtained position, and compute the data offset of
the cell row according to the following:
1. The file position of the first non-empty Row (section 2.4.221) in a row block is equal to the
file position of the DBCell record ─the dbRtrw field of DBCell record.
2. The file position of the first CELL record (section 2.1.7.20.6) for the first non-empty Row
(section 2.4.221) is equal to the file position of the second Row record (the end of the first
Row record) + rgdb[0]. Other non-empty CELL records for the first row follow this first CELL
record.
3. The file position of the first CELL record for the second non-empty Row is equal to the file
position of the first CELL record for the first Row + rgdb[1]. Other non-empty CELL records
for the 2nd row follow this first CELL record.
4. The file position for the first CELL record for the third non-empty Row is equal to the file
position of the first CELL record for the second Row + rgdb[2].
4. Read cell table data starting from the previously computed position.
Note that if the Row of the CELL record is known, it is possible to calculate the file position of the first
CELL record of that Row first, and then get all the following CELL records without going through the
first Row, the second Row, and so on.
80 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.2 Formulas
A formula is sequence of values, cell references, names, functions, or operators in a cell that together
produce a new value. Formulas are stored in a tokenized representation known as "parsed
expressions." In this section, formula is a synonym for parsed expression. A parsed expression is
converted into a textual formula at runtime for display and user editing. Cell formulas are specified by
the Formula record (section 2.4.127). Array formulas are specified by the Array record (section
2.4.4). Shared formulas are specified by the ShrFmla record (section 2.4.260).
Formulas that are part of a revision as specified in the Shared Workbooks overview (section 2.2.11)
are specified by the pe.rgce field or the peOld.rgce field of the RRDDefName record (section
2.4.225), or by the xpe.rgce field or the xpeOld.rgce field of the RRDChgCell record (section
2.4.223).
A parsed expression contains a sequence of parse tokens, each of which is either an operand token
(section 2.2.2.2), an operator token (section 2.2.2.1), a control token (section 2.2.2.3), a display
token (section 2.2.2.4), or a mem token (section 2.2.2.5). All tokens are stored as Parse Things (Ptg
(section 2.5.198.25)).
With the exception of control tokens (section 2.2.2.3), display tokens (section 2.2.2.4), and mem
tokens (section 2.2.2.5) that are described in subsequent sections, parsed expressions are stored in
Rgce (section 2.5.198.104) using Reverse-Polish notation. Reverse-Polish notation is a logical system
for the specification of mathematical formulas in which operands are followed by operators. Inside an
Rgce, the operands and operators are represented by an array of Ptg structures (section 2.5.198.25)
of variable lengths. The first one or two bytes of a Ptg structure (section 2.5.198.25) contain the
token type that determines which specific Ptg type (section 2.5.198.25) the Ptg is, as specified in the
Ptg structure The remainder of the structure varies according to the token type.
Unary Operator Tokens specify operations that are performed on the previous element in the
grammar specified by Rgce (section 2.5.198.104). For example, PtgPercent (section 2.5.198.81)
divides the last expression on the stack by 100.
Binary Operator Tokens specify operations that are performed on the previous two elements in the
grammar specified by Rgce. For example, PtgIsect (section 2.5.198.67), which intersects the
topmost two expressions on the stack.
Operand Tokens represent values and references that are used by operators and functions. Operands
fall into one of two classes, reference class (section 2.2.2.2.2), or value class (section 2.2.2.2.1),
depending on what result type the formula expects from the operand.
81 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Class is the most common type of operand, and represents a single value or array of values.
When Ptg records (section 2.5.198.25) with reference contents are used by an operator that requires
Value Class operands, the Ptg records can be stored as Value Class operands rather than
reference class (section 2.2.2.2.2) operands. For example, in a formula where the contents of A1 is
added to the integer value 1, the value of cell A1 is pushed onto the stack as a Value Class operand
PtgRef (section 2.5.198.84) because the subsequent PtgAdd operator (section 2.5.198.26) requires
Value Class operands. Arrays are stored in a similar fashion. For example, when adding the array of
values {1,2,3,4,5,6}, the values are stored in a PtgArray operand (section 2.5.198.32).
When operands are stored as Reference Class operands, any references contained in the operand are
not de-referenced and do not return the underlying value or values. They are pushed onto the stack in
reference form.
Control Tokens do not perform operations or push values onto the stack. Conditional Control Tokens
(PtgAttrIf (section 2.5.198.36), PtgAttrChoose (section 2.5.198.34), and PtgAttrGoto (section
2.5.198.35)) are used at runtime to prescribe short-circuit evaluation inside conditional functions and
can be ignored when converting parsed expressions into textual formulas.
Display Tokens, like Control Tokens (section 2.2.2.3), do not perform operations or push values onto
the stack. Display Tokens (PtgParen (section 2.5.198.80 and PtgAttrSpace (section 2.5.198.38))
are used at runtime to represent parentheses and space characters in a formula when parsed
expressions are converted into textual formulas. Display Tokens do not affect the order of operations
of the formula.
Mem Tokens have two purposes: they cache the results of reference class expressions (section
2.2.2.2.2) and they can return the results of reference class expressions (section 2.2.2.2.2) as
value class expressions (section 2.2.2.2.1). Mem Tokens act on binary-reference-expressions
(section 2.5.198.104) that follow them it in a mem-area-expression (section 2.5.198.104).
Some Ptg records (section 2.5.198.25) require extra data that is not stored in the Rgce (section
2.5.198.104). When an Rgcecontains one or more of these Ptg records, the containing formula
structure includes an RgbExtra (section 2.5.198.103) containing the data for those Ptg records. The
size of these components is specified by the RgbExtra structures. The Ptg records do not contain an
offset into the RgbExtra for their data. The Ptg records that require a corresponding structure in
RgbExtra are specified in section 2.5.198.103.
2.2.3 Charts
The following diagram identifies the major aspects of the file format representation of a chart.
82 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 1: High-level structure of a chart
The chart sheet (section 2.2.3.1) specifies a chart (section 2.2.3.3), a graphic that displays data or
the relationships between sets of data in a visual form, and a chart data cache (section 2.2.3.2), a
local copy of the data that is used if the chart data is missing or if links to external data sources are
broken. The chart specifies one or two axis groups (section 2.2.3.5), a set of axes (section 2.2.3.6)
the chart data is plotted against, and the set of series (section 2.2.3.9), trendlines (section
2.2.3.12), and error bars (section 2.2.3.13) specified in the chart. Each axis groups specifies one
to four chart groups (section 2.2.3.7) that specify the type of visualization used to display the data.
Each series, trendline, and error bar specifies a chart group it is associated with.
A chart sheet is a set of data and the chart (section 2.2.3.3) that displays the data. There are two
types of chart sheets: embedded chart sheets, and chart sheets that are not embedded.
A chart sheet that is not embedded is a separate sheet (1) in the workbook that is intended to
display a chart. An embedded chart sheet is the logical container for a chart displayed on a
worksheet.
The chart sheet substream for an embedded chart sheet is contained within a worksheet
substream (section 2.1.7.20.5). A chart sheet that is not embedded is specified by a chart sheet
substream that is not contained in another substream.
The following records and rules specify the significant parts of a chart sheet:
83 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The SheetExt record (section 2.4.259) specifies properties of the sheet (1) containing the chart.
If the chart sheet is embedded, the SheetExt record MUST NOT exist.
The WebPub record (section 2.4.344) specifies properties of a chart sheet that has been
published to the web.
The sequences of records that conform to the PAGESETUP rule (section 2.1.7.20.6) and
BACKGROUND rule (section 2.1.7.20.6) and the HFPicture (section 2.4.138), PrintSize (section
2.4.204), and HeaderFooter (section 2.4.137) records specify information about how the chart
is printed.
The Fbi (section 2.4.109) and Fbi2 (section 2.4.110) records specify properties used for font
scaling on the chart.
The Palette (section 2.4.188) and ClrtClient (section 2.4.50) records specify properties of the
color palettes used in the chart sheet.
The sequence of records that conforms to the PROTECTION rule (section 2.1.7.20.6) and the
WriteProtect record (section 2.4.350) specify protection settings for the chart. If the chart
sheet is embedded, the WriteProtect record MUST NOT exist.
The SXViewLink (section 2.4.316), PivotChartBits (section 2.4.196), and SBaseRef (section
2.4.242) records specify the PivotTable (section 2.2.5) that is the data source for this chart. If
the chart is not a Pivot Chart (section 2.2.3.4) these records MUST be ignored.
The sequence of records that conforms to the OBJECTS rule (section 2.1.7.20.6) and the
MsoDrawingGroup record (section 2.4.171) specify the drawing objects on the chart
The sequence of records that conforms to the CHARTFOMATS rule (section 2.1.7.20.6) specifies
the chart that is contained in the chart sheet.
The sequence of records that conforms to the SERIESDATA rule (section 2.1.7.20.6) specifies the
chart data cache (section 2.2.3.2).
The sequences of records that conform to the WINDOW rule (section 2.1.7.20.6) and
CUSTOMVIEW rule (section 2.1.7.20.6) specify the sheet (1) that contains the chart. If the
chart sheet is not embedded, at least one sequence of records that conform to the WINDOW
rule MUST exist. If the chart sheet is embedded, a sequence of records that conforms to the
WINDOW rule and CUSTOMVIEW rule MUST NOT exist.
The sequence of records that conforms to the CRTMLFRT rule (section 2.1.7.20.6) specifies
future records (section 2.1.6) for the chart sheet.
A chart data cache is a local copy of the data for a chart (section 2.2.3.3). The chart data cache is
used if data is missing or if links to external data sources are broken.
A chart data cache is specified by a sequence of records that conforms to the SERIESDATA rule
(section 2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF.
The following records and rules specify the significant parts of a chart data cache:
The Dimensions record (section 2.4.90) specifies the cells that contain data used by this chart.
The SIIndex record (section 2.4.262) specifies the beginning of a sequence of records that
contains a cache of the data for the sequence of records that conforms to a specific AI rule
(section 2.1.7.20.1) in the series (section 2.2.3.12) and error bars (section 2.2.3.13). The
relationship between the series and the chart data cache is specified as follows:
84 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The first SIIndex record in the chart sheet substream, which MUST contain a numIndex field
equal to 0x0001, corresponds to the second sequence of records that conforms to the AI rule.
The second SIIndex record in the chart sheet substream, which MUST contain a numIndex
field equal to 0x0002, corresponds to the third sequence of records that conforms to the AI rule.
The third SIIndex record in the chart sheet substream, which MUST contain a numIndex field
equal to 0x0003, corresponds to the fourth sequence of records that conforms to the AI rule.
The Number (section 2.4.180), BoolErr (section 2.4.24), Blank (section 2.4.20), and Label
(section 2.4.148) records each specify an individual value stored in the cache. Each column in the
cache corresponds to a series or error bar, where the zero-based index of the column, specified
by the cell.col field in the Number, BoolErr, Blank, or Label records, equals the zero-based
index of the Series record (section 2.4.252) in the collection of Series records that corresponds
to the series or error bar.
The chart data cache MUST contain data that corresponds to a sequence of records that
conforms to the AI rule in a series if the corresponding data is not specified in the chart or on
the same sheet (1) as the chart.
The chart data cache MUST NOT contain data that corresponds to a sequence of records that
conforms to the AI rule in a series if the corresponding data is specified in the chart or on the
same sheet (1) as the chart.
The chart data cache MUST NOT contain data that corresponds to the third or fourth sequence of
records that conforms to the AI rule in an error bar.
If the ebsrc field of the SerAuxErrBar record (section 2.4.249) in an error bar equals 0x04, the
chart data cache MUST contain data that corresponds to the second sequence of records that
conforms to the AI rule in the error bar.
If the ebsrc field of the SerAuxErrBar record in an error bar does not equal 0x04, the chart
data cache MUST NOT contain data that corresponds to the second sequence of records that
conforms to the AI rule in the error bar.
The chart data cache MUST NOT contain data that corresponds to a trendline (section
2.2.3.12).
2.2.3.3 Chart
A chart is a graphic that displays data or the relationships between sets of data in a visual form. A
chart element is an item within the chart such as an axis (section 2.2.3.6), legend (section 2.2.3.8),
series (section 2.2.3.9), data point (section 2.2.3.10), data label (section 2.2.3.11), trendline
(section 2.2.3.12), error bar (section 2.2.3.13), or data table (section 2.2.3.14).
A chart data cache (section 2.2.3.2) is specified by a sequence of records that conforms to the
CHARTFOMATS rule (section 2.1.7.20.1) specified by the chart sheet substream (section
2.1.7.20.1) ABNF.
A chart can contain the following records and rules that specify the parts of the chart:
The Chart record (section 2.4.45) specifies the position and size of the chart area (section
2.2.3.17) for a non-embedded chart.
The sequence of records that conforms to the FONTLIST rule (section 2.1.7.20.1) specifies font
information for the chart.
85 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The Scl record (section 2.4.247) specifies the zoom level of the current view in the window used
to display the chart.
The PlotGrowth record (section 2.4.198) specifies font scaling for the text on the chart.
The sequence of records that conforms to the FRAME rule (section 2.1.7.20.1) specifies
formatting of the chart area (section 2.2.3.17).
The sequence of records that conforms to the SERIESFORMAT rule (section 2.1.7.20.1) specifies
the series, trendlines, and error on the chart.
The sequences of records that conform to the SS rule (section 2.1.7.20.1) specify properties of
the data labels, series, data points, trendlines, and error bars on the chart. These records
MUST NOT exist if the chart sheet substream contains a Series record (section 2.4.252). See
the data label overview for additional restrictions on these collections of records.
The sequences of records that conform to the DFTTEXT rule (section 2.1.7.20.1) and
TEXTPROPS rule (section 2.1.7.20.1) specify default properties of the text in the chart. The
DataLabExt (section 2.4.75), StartObject (section 2.4.267), and EndObject (section 2.4.101)
records MUST NOT exist in these sequences of records that conform to the DFTTEXT rule (section
2.1.7.20.1).
The AxesUsed record (section 2.4.10) and the sequence of records that conforms to the
AXISPARENT rule (section 2.1.7.20.1) specify the axis groups (section 2.2.3.5) of the chart.
The CrtLayout12A record (section 2.4.67) specifies layout information for the plot area.
The sequence of records that conforms to the DAT rule (section 2.1.7.20.1) specifies the data
table for the chart.
The sequence of records that conforms to the ATTACHEDLABEL rule (section 2.1.7.20.1)
specifies the chart title. This sequence of records MUST have an ObjectLink record (section
2.4.182) where the wLinkObj field has a value of 0x0001.
The sequence of records that conforms to the ATTACHEDLABEL rule and is preceded by the
optional DataLabExt record specifies properties of series and data point data labels. This
sequence of records MUST have an ObjectLink record where the wLinkObj field has a value of
0x0004. See the data label overview for additional information and restrictions on this collection
of records.
The sequence of records that conforms to the CRTMLFRT rule (section 2.1.7.20.1) specifies
future records (section 2.1.6) for the chart.
A Pivot Chart is a chart (section 2.2.3.3) that uses a PivotTable (section 2.2.5) as a data source.
The SXViewLink (section 2.4.316), PivotChartBits (section 2.4.196), and SBaseRef (section
2.4.242) records in the chart sheet (section 2.2.3.1) specify the PivotTable.
An axis group is a set of axes (section 2.2.3.6) that specify a coordinate system, a set of chart
groups (section 2.2.3.7) that are plotted using these axes and the plot area that defines where the
axes are rendered on the chart (section 2.2.3.3).
An axis group is specified by a sequence of records that conforms to the AXISPARENT rule (section
2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF.
The following records and rules define the significant parts of an axis group:
86 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The AxisParent record (section 2.4.13) specifies if the axis group is the primary axis group or
the secondary axis group on a chart. Often the axes of the primary axis group are displayed to
the left and bottom sides of the plot area, while axes of the secondary axis group are displayed
on the right and top sides of the plot area.
The Pos record (section 2.4.201) specifies the position and size of the outer plot area. The outer
plot area is the bounding rectangle that includes the axis labels, the axis titles, and data table
(section 2.2.3.14) of the chart. This record MUST be ignored on a secondary axis group.
The sequences of records that conform to the IVAXIS (section 2.1.7.20.1), DVAXIS (section
2.1.7.20.1), and SERIESAXIS (section 2.1.7.20.1) rules in the collection of records that conform
to the AXES rule (section 2.1.7.20.1) specify the axes of the axis group.
The sequences of records that conform to the ATTACHEDLABEL rule (section 2.1.7.20.1) in the
sequence of records that conform to the AXES rule specify the axis titles of the axis group. Each
attached label (section 2.2.3.15) MUST contain an ObjectLink record (section 2.4.182) that
conforms to the following requirements:
The wLinkObj field MUST equal to 0x0002, 0x0003, or 0x0007, indicating which axis the
axis title is associated.
The wLinkObj field MUST specify an axis defined in the current axis group.
The wLinkObj field MUST be unique among the other attached labels that represent axis
titles in the same axis group.
The PlotArea record (section 2.4.197) and the sequence of records that conforms to the FRAME
rule (section 2.1.7.20.1) in the sequence of records that conform to the AXES rule specify the
properties of the inner plot area. The inner plot area is the rectangle bounded by the chart axes.
The PlotArea record (section 2.4.197) MUST NOT exist on a secondary axis group.
The sequences of records that conform to the CRT rule (section 2.1.7.20.1) specify the chart
groups of the axis group.
Because there are many different ways to represent data visually, each representation has specific
requirements about the layout of the data and the way it is plotted. This results in restrictions on the
combinations of chart group types that can be plotted on the same axis group, and the
combinations of chart group types that can be plotted in the same chart.
A single axis group that contains a single chart group that contains a Chart3d record (section
2.4.46).
One or two axis groups that each contain a single bubble chart group.
One or two axis groups that each conform to one of the following restrictions on chart group
type combinations:
Zero or one of each of the following chart group types: area, column, line, and scatter.
Zero or one of each of the following chart group types: bar of pie, doughnut, pie, and pie of
pie.
87 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
In addition to the restrictions on the combinations of chart group types that can be plotted on the
same axis group or chart, there are additional restrictions on the axes of the axis group based on
the chart groups of the axis group.
The axis group MUST NOT contain any axes if the axis group contains a bar of pie, doughnut,
pie, or pie of pie chart group.
The axis group MUST contain a category (2) or date axis if the axis group contains an area,
bar, column, filled radar, line, radar, or surface chart group.
The axis group MUST contain an area, bar, column, filled radar, line, radar, or surface chart
group if the axis group contains a category (2) or date axis.
The axis group MUST contain two value axes if and only if all chart groups are of type bubble
or scatter.
The axis group MUST contain a series axis if and only if the chart group attached to the axis
group is one of the following:
An area chart group with the fStacked field of the Area record (section 2.4.2) equal to 0.
A column chart group with the fStacked field of the Bar record (section 2.4.15) equal to 0
and the fClustered field of the Chart3d record equal to 0.
A line chart group with field fStacked of the Line record (section 2.4.155) equal to 0.
The chart group on the axis group MUST contain a Chart3d record if the axis group contains a
series axis.
2.2.3.6 Axis
An axis is a line that borders the chart (section 2.2.3.3) plot area and provides a frame of reference
for measurement. In addition to the axis line and its properties, the axis also specifies all parts of the
chart that are associated with the axis line, such as the axis labels, major gridlines, minor
gridlines, and the walls and floor of the chart.
An axis is specified by a sequence of records that conforms to either the IVAXIS (section 2.1.7.20.1),
DVAXIS (section 2.1.7.20.1), or SERIESAXIS (section 2.1.7.20.1) rules specified by the chart
sheet substream (section 2.1.7.20.1) ABNF.
Category A sequence of records that conform to A category (2) axis displays a set of category
the IVAXIS that contains an AxcExt (2) labels that are evenly distributed along the
record (section 2.4.9) with field axis in a given order. A category (2) axis
fDateAxis equal to 0. displays arbitrary text values such as "Qtr1",
"Qtr2", and "Qtr3", and cannot display scaled
numerical values.
Date A sequence of records that conform to A date axis displays scaled date or time values
the IVAXIS rule that contains an and can display data points (section 2.2.3.10)
AxcExt record with field fDateAxis located at uneven intervals.
equal to 1.
Series A sequence of records that conform to A series axis displays a set of series (section
the SERIESAXIS rule. 2.2.3.9) names that are evenly distributed along
88 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Type Specified By Description
The following records and rules define the significant parts of an axis:
The CatSerRange (section 2.4.39) and ValueRange (section 2.4.341) records specify the
scaling properties of the axis, the crossing location of the other axis in the axis group (section
2.2.3.5), and the direction of the axis.
The AxcExt record specifies if an axis is of type category (2) or date and specifies properties of a
date axis.
The CatLab record (section 2.4.38) specifies additional properties of the axis labels.
The IFmtRecord record (section 2.4.143) in the sequence of records that conform to the AXS
rule (section 2.1.7.20.1) specifies the number format of the axis labels.
The Tick record (section 2.4.327) in the sequence of records that conform to the AXS rule
specifies properties of the axis labels, and specifies the major tick marks and minor tick
marks of the axis.
The FontX record (section 2.4.123) and the sequence of records that conforms to the
TEXTPROPS rule (section 2.1.7.20.1), in the collection of records that conform to the AXS rule,
specify the font properties of the axis labels.
The AxisLine (section 2.4.12) and LineFormat (section 2.4.156) record pairs and the sequences
of records that conform to the SHAPEPROPS rule (section 2.1.7.20.1), in the sequence of records
that conform to the AXS rule, specify the axis line, major gridlines and minor gridlines of the
axis, and the border lines of the walls and floor of the chart. The omission of the AxisLine and
LineFormat record pair specifying the axis line results in the axis line having default line format
properties. The omission of other AxisLine and LineFormat record pairs results in the
corresponding chart element being omitted from the chart.
The AreaFormat record (section 2.4.3) and the collection of records that conform to the
GELFRAME rule (section 2.1.7.20.1) in the sequence of records that conform to the AXS rule
specifies the fill format for the walls and floor of the chart. If the wType field of the Axis record
(section 2.4.11) in the axis equals 0x0000, these records apply to the walls of the chart. If the
wType field of the Axis record in the axis equals 0x0001, these records apply to the floor of the
chart. If the wType field of the Axis record in the axis equals 0x0002, these records MUST NOT
exist. If the chart sheet substream does not contain a Chart3d record (section 2.4.46), these
records MUST NOT exist.
The sequence of records that conforms to the AXM rule (section 2.1.7.20.1) specifies the display
units and the display units label of a value axis.
89 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.3.7 Chart Group
A chart group is a set of one or more series (section 2.2.3.9) that visually represent data in a
similar manner and are plotted using the same coordinate system. A chart group also includes all
parts of the chart (section 2.2.3.3) that are associated with the set of series and the chart group can
specify default properties for the data points (section 2.2.3.10) and data labels (section 2.2.3.11)
associated with the series.
Basic charts have a single chart group because they contain one or more series of a single type and
all data points are plotted using the same coordinates. Complex charts, such as combination charts
that contain multiple series of different types or multiple series of similar type that are plotted using
different sets of axes (section 2.2.3.6), contain multiple chart groups.
A chart group specifies a collection of series of a common type that share an axis group (section
2.2.3.5) and specifies the chart elements that are common to the collection of series.
A chart group is specified by a sequence of records that conforms to the CRT rule (section
2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF.
Bubble A chart group that contains a Scatter A chart group type that is a variation on a
record (section 2.4.243) with field scatter chart group type in which the data
fBubbles equal to 1. points are represented as bubbles. A bubble
chart group type compares three variables. The
third variable determines the size of the data
point.
Column A chart group that contains a Bar A chart group type in which the data points in
record (section 2.4.15) with field a series are represented as vertical bars.
fTranspose equal to 0.
Doughnut A chart group that contains a Pie A chart group type in which multiple series
record (section 2.4.194) with field are represented as concentric rings and the
pcDonut not equal to 0x0000. data points are represented as segments of the
ring.
Filled radar A chart group that contains a A chart group type that is a variation on a
RadarArea record (section 2.4.213). radar group type in which the data points in a
series are connected by a line and the area
enclosed by the line is filled.
Line A chart group that contains a Line A chart group type in which data points in a
record (section 2.4.155). series are connected by a line.
Pie A chart group that contains a Pie A chart group type that plots data points as
record (section 2.4.194) with field segments (or slices) of a circle.
pcDonut equal to 0x0000.
Pie of pie A chart group that contains a BopPop A chart group type that plots data points as
90 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Type Specified By Description
record (section 2.4.25) with field pst segments (or slices) of two circles, where the
equal to 0x01. secondary circle displays the details of the data
called out from a single segment of the primary
circle.
Radar A chart group that contains a A chart group type in which each data point in
RadarArea record (section 2.4.213). a series is plotted along a separate axis that
starts at the center of the chart and extends
outward.
Scatter A chart group that contains a Scatter A chart group type that displays quantitative
record (section 2.4.243) with field values on both horizontal and vertical axes to
fBubbles equal to 0. represent two variables as a single data point.
Surface A chart group that contains a Surf A chart group type that shows a three
record (section 2.4.272). dimensional surface that connects a set of data
points.
The following records and rules define the significant parts of a chart group:
The SeriesList record (section 2.4.253) specifies the series of the chart. This record MUST NOT
exist in the first chart group in the chart sheet substream. This record MUST exist when not in
the first chart group in the chart sheet substream.
The Chart3d record (section 2.4.46) specifies that the plot area, axis group (section 2.2.3.5),
and chart group are rendered in a 3-D scene, rather than a 2-D scene, and specifies properties of
the 3-D scene. If this record exists in the chart sheet substream, the chart sheet substream
MUST have exactly one chart group. This record MUST NOT exist in a bar of pie, bubble,
doughnut, filled radar, pie of pie, radar, or scatter chart group.
The sequence of records that conforms to the LD rule (section 2.1.7.20.1) specifies the legend
(section 2.2.3.8) on the chart. The sequence of records that conforms to the LD rule (section
2.1.7.20.1) MUST NOT exist in a chart group that is not the first chart group in the chart sheet
substream.
The sequences of records that conform to the DROPBAR rule (section 2.1.7.20.1) specify the up-
down bars on the chart group.
The CrtLine (section 2.4.68) LineFormat (section 2.4.156) record pairs and the sequences of
records that conform to the SHAPEPROPS rule (section 2.1.7.20.1) specify the drop lines, high-
low lines, series lines, and leader lines for the chart.
The sequences of records that conform to the DFTTEXT rule (section 2.1.7.20.1), the
DataLabExtContents record (section 2.4.76), and the sequence of records that conforms to the
SS rule (section 2.1.7.20.1) specify the data label and data point formatting for the chart
group. Refer to the data label overview for details on the chart group data label.
2.2.3.8 Legend
A legend identifies different groupings of information about the chart (section 2.2.3.3). A legend
consists of a set of legend entries. Each legend entry, which consists of a legend key and a text
label, identifies either the data points (section 2.2.3.10) in the chart, the series (section 2.2.3.9)
and trendlines in the chart, or the bands on a surface chart group (section 2.2.3.7).
91 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A legend on a chart can contain three types of content:
A legend can contain legend entries for each of the series and trendlines in the chart:
The legend keys contain the same formatting as the corresponding series or trendline.
The legend text labels contain the name of the corresponding series or trendline.
This type of legend is used when the chart group type is not surface and one of the
following conditions is satisfied:
The chart has a single included series, no data point formatting exceptions on the
included series, and either contains a trendline or contains a ChartFormat record
(section 2.4.48) associated with the included series that has the fVaried field equal to 0
or ignored.
A legend can contain legend entries for each data point in the chart:
The legend keys contain the same formatting as the corresponding data point.
The legend text labels contain the category (2) name or horizontal value of the
corresponding data point.
This type of legend is used when the chart group type is not surface and the conditions for a
legend that contains legend entries for each of the series and trendlines in the chart are not
satisfied.
A legend can contain legend entries for each band on a surface chart group (which is formatted
into different bands based on the value of the surface at any given data point in space):
Each legend entry represents a single band that represents a range of values on a surface
chart group.
The legend keys contain the same formatting as the corresponding band.
The legend text labels contain the value range of the corresponding band.
This type of legend is used when the chart contains a surface chart group.
The following records and rules define the significant parts of a legend:
The Legend record (section 2.4.152) specifies the layout of the legend and specifies if the legend
is automatically positioned.
The Pos record (section 2.4.201), CrtLayout12 record (section 2.4.66), and the sequence of
records that conforms to the CRTMLFRT rule (section 2.1.7.20.1), specify the position of the
legend.
The sequences of records that conform to the ATTACHEDLABEL (section 2.1.7.20.1) and
TEXTPROPS (section 2.1.7.20.1) rules specify the default text formatting for the legend entries.
The Pos record of the attached label (section 2.2.3.15) MUST be ignored. The ObjectLink
record (section 2.4.182) of the attached label MUST NOT exist. A series can specify formatting
exceptions for individual legend entries.
The sequence of records that conforms to the FRAME rule (section 2.1.7.20.1) specifies the fill
and border formatting properties of the legend.
92 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.3.9 Series
A series is of a set of related data points (section 2.2.3.10) that are plotted in a chart (section
2.2.3.3). In addition to specifying the data points of the series and the formatting properties of the
data points, a series can also specify a series name and properties of the data label (section
2.2.3.11) and legend entries that are associated with the series.
A series is defined by a sequence of records that conforms to the SERIESFORMAT rule (section
2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF that contains a
SerToCrt record (section 2.4.256).
A series can either be of type included or excluded. Included series are series that are shown in the
chart. Excluded series are not shown in the chart, but exist as series in the file. A series is an
excluded series if both of the following conditions are satisfied:
The chart group (section 2.2.3.7) type of the series is bar of pie, pie, or pie of pie.
The series is not the first series in the chart sheet substream to be on the chart group and
contain in the second sequence of records that conform to the AI rule (section 2.1.7.20.1) a BRAI
record (section 2.4.29) that contains an ifmt field that specifies a formula (section 2.2.2) that
equals to a row or column that is not excluded from the chart sheet.
This occurs when the chart group is of type bar of pie, pie, or pie of pie, and the chart sheet
contains multiple series, because these chart group types will only display the first series of data on
the chart.
The following records and rules define the significant parts of a series:
The Series record (section 2.4.252) specifies the type and size of the data in the series.
The four sequences of records that conform to the AI rule specify formulas. The meaning of the
formulas are specified as follows:
1. In the first sequence, the value of the formula specifies the name of the series. The
SeriesText record (section 2.4.254) specifies a cache of the name of the series.
A set of coordinates along the vertical value axis (section 2.2.3.6) if the series is in a
bubble or scatter chart group.
A set of coordinates along the value axis if the series is in any other chart group type.
A set of coordinates along a horizontal value axis if the series is in a bubble or scatter
chart group.
A set of category (2) axis labels that are distributed evenly along the category (2) axis
based on their order in the set or a set of dates along a date axis is in any other chart
group type.
4. In the fourth sequence of records, the value of the formula specifies a set of scalar values
used in a bubble chart group to define the size of the bubbles.
The sequence of records that conform to the SS rule (section 2.1.7.20.1) specify the data point
and data label properties for a series or individual data points of the series. If formatting is
not specified for an individual data point, the data point inherits the formatting of the series. If
formatting is not specified for the series, the series inherits the formatting of the chart group
93 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
that contains the series. The yi field of the DataFormat record (section 2.4.74) MUST specify the
zero-based index of the Series record associated with this series in the collection of all Series
records in the current chart sheet substream that contains the series. Refer to the data label
overview for an explanation of the data label and the conditions on this collection of records.
The SerToCrt record (section 2.4.256) specifies the chart group that contains the current
series.
The LegendException record (section 2.4.153) specifies a legend entry in the legend (section
2.2.3.8) that corresponds to the series. If the LegendException record (section 2.4.153)
specifies that the legend entry has non-default formatting, then the attached label (section
2.2.3.15) and the sequence of records that conforms to the TEXTPROPS rule (section 2.1.7.20.1)
that follow the LegendException (section 2.4.153) and Begin (section 2.4.17) records specify
the custom formatting of the legend entry. If the fLabel field of LegendException equals 0, the
attached label MUST NOT exist.
A data point is a value plotted in a chart (section 2.2.3.3) and visually displayed as shapes, such as
bars, columns and markers, as specified by the chart group (section 2.2.3.7) type of the chart.
A data point consists of a set of three values located on the same index of the second to fourth
sequences of records that conform to the AI rule (section 2.1.7.20.1) contained in the series (section
2.2.3.9) of the data point. For example, the set of three values for a data point in a bubble chart
group consists of a coordinate of the data point along the vertical value axis (section 2.2.3.6), the
coordinate of the data point along the horizontal value axis, and the scalar value that defines the
bubble size of the data point.
A data label is a label on a chart (section 2.2.3.3) that is associated with a data point (section
2.2.3.10), or associated with a series (section 2.2.3.9) on an area or filled radar chart group
(section 2.2.3.7). A data label contains information about the associated data point, such as the
description of the data point, a legend key, or custom text.
Inheritance
For any given data point, there is an order of inheritance that determines the contents of a data
label associated with the data point:
Data labels can be specified for a chart group, specifying the default setting for the data labels
associated with the data points on the chart group.
Data labels can be specified for a series, specifying the default setting for the data labels
associated with the data points of the series. This type of data label overrides the data label
properties specified on the chart group for the data labels associated with the data points in a
given series.
Data labels can be specified for a data point, specifying the settings for a data label associated
with a particular data point. This type of data label overrides the data label properties specified
on the chart group and series for the data labels associated with a given data point.
Records
The set of records that specifies a data label, and the requirements that exist on these records, differ
if the data label is specified for a chart group, series, or data point. The set of records that
represent a data label are as follows:
94 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
For a chart group, properties of a data label are specified by the following collections of records
that are specified in the chart group:
1. The sequence of records that conforms to the DFTTEXT rule (section 2.1.7.20.1).
2. The DataLabExtContents record (section 2.4.76) that is not contained in the sequence of
records that conforms to the LD rule (section 2.1.7.20.1) or the sequence of records that
conforms to the DFTTEXT rule.
3. The AttachedLabel record (section 2.4.5) that is contained in the sequence of records that
conforms to the SS rule (section 2.1.7.20.1).
For a series or data point, properties of a data label are specified by the following collections of
records that are specified in the chart:
1. The attached label (section 2.2.3.15) that corresponds to the series or data point. The
attached label that corresponds to a series or data point appears in the chart sheet
substream (section 2.1.7.20.1) after the axis group (section 2.2.3.5) and is specified by the
following properties of the attached label:
1. The wLinkObj field of the ObjectLink record (section 2.4.182) equals 0x0004.
2. The wLinkVar1 field of the ObjectLink record equals the index to the corresponding
series.
3. The wLinkVar2 field of the ObjectLink record equals the index to the corresponding
data point or equals 0xFFFF for a corresponding series.
2. The AttachedLabel record (section 2.4.5) that corresponds to the series or data point. The
AttachedLabel record that corresponds to a series or data point appears in the sequence of
records that conforms to the SS rule that has the following properties:
1. The yi field of the DataFormat record (section 2.4.74) equals the index to the
corresponding series.
2. The xi field of the DataFormat record equals the index to the corresponding data point
or equals 0xFFFF for a corresponding series.
Overrides
Some properties of the records that specify the contents of a data label can overlap and conflict. For
the information that overlaps between these records, there is a set of rules that specifies the
relationships between these records and specifies the fields that need to be ignored in conflict
situations.
In general, properties of the DataLabExtContents record (section 2.4.76) of the data label override
properties of the Text record (section 2.4.324) of the of the data label, which overrides the
properties of the AttachedLabel record of the data label. Details of the relationships between
individual fields are specified in the records.
The following section provides an explanation of how to interpret the data label and when the
different records that specify the data label are relevant to the data label.
When the chart group has a data label, the following algorithm determines the data label
contents. Once the set of records that represents the data label has been established, the data
label information that overlaps across records is respected on the DataLabExtContents record
and ignored on the Text and AttachedLabel records of the data label. In this algorithm, ABNF
rules are used to specify the sequence of records that conform to the rule. In this algorithm,
95 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
"DFTTEXT with id" specifies the sequence of records that conforms to the DFTTEXT rule that
contains a DefaultText record (section 2.4.88) with and id field equal to the value specified.
//Define variables
X equals a DataLabExtContents record
Y equals a DataLabExtContents record
SS equals an to AttachedLabel record
SWAP equals a boolean
//Initialize SWAP
SET SWAP equal to FALSE
//Initialize SS
SET SS equal to AttachedLabel record in the sequence of records that conforms to
the SS rule
//Initialize X
IF DFTTEXT with id field equal to 0 exists
IF DFTTEXT with id field equals to 0 has a DataLabExtContents record
SET X equal to DataLabExtContents record in DFTTEXT with id field equal to
0
ELSE
IF chart group type equals area or filled radar
SET field fSerName of X equal to field fShowLabel of Text record in
DFTTEXT with id field equal to 0
SET field fCatName of X equal to 0
ELSE
SET field fCatName of X equal to field fShowLabel of Text record in
DFTTEXT with id field equal to 0
SET field fSerName of X equal to 0
END IF
SET field fValue of X equal to field fShowValue of Text record in DFTTEXT
with id field equal to 0
SET field fPercent of X equal to field (fShowPercent OR fShowLabelAndPerc)
of Text record in DFTTEXT with id field equal to 0
SET field fBubSizes of X equal to field fShowBubbleSizes of Text record in
DFTTEXT with id field equal to 0
SET field RgchSet of X equal to NULL
END IF
ELSE
SET field fCatName of X equal 1
SET fields fSerName, fValue, fPercent, fBubSizes of X equal to 0
SET field RgchSet of X equal to NULL
END IF
//Initialize Y
IF DFTTEXT with id field equal to 1 exists
IF DFTTEXT with id field equals to 1 has a DataLabExtContents record
SET Y equal to DataLabExtContents record in DFTTEXT with id field equal to
1
ELSE
IF chart group type equals area or filled radar
SET field fSerName of Y equal to field (fShowLabel OR
fShowLabelAndPerc)of Text record in DFTTEXT with id field equal to
1
SET field fCatName of Y equal to 0
ELSE
SET field fCatName of Y equal to field (fShowLabel OR
fShowLabelAndPerc) of Text record in DFTTEXT with id field equal to
1
SET field fSerName of Y equal to 0
END IF
SET field fValue of Y equal to field fShowValue of Text record in DFTTEXT
with id field equal to 1
SET field fPercent of Y equal to field (fShowPercent OR fShowLabelAndPerc)
of Text record in DFTTEXT with id field equal to 1
SET field fBubSizes of Y equal to field fShowBubbleSizes of Text record in
DFTTEXT with id field equal to 1
SET field RgchSet of X equal to NULL
96 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
END IF
ELSE
SET field fValue of Y equal to 1
SET fields fCatName, fSerName, fPercent, fBubSizes of Y equal to 0
SET field RgchSet of X equal to NULL
END IF
//Modify X, Y, and SS
IF (field fCatName of X equals 1) AND (fields fSerName, fValue, fPercent, AND
fBubSizes of X equal 0)
IF (field fShowValue of SS equals 1) AND (fields fShowPercent,
fShowLabelAndPerc, fShowLabel, fShowBubbleSizes, AND fShowSeriesName of
SS equal 0)
IF (field fValue of Y equals 1) AND (fields fSerName, fCatName,
fPercent, OR fBubSizes of Y equal 1)
SET SWAP equals to TRUE
SET field fValue of X equal to 1
SET fields fSerName, fCatName, fPercent, AND fBubSizes of X equal
to 0
SET field fShowValue of SS equal to field fValue of Y
SET field fShowPercent of SS equal to field fSPercent of Y
SET field fShowLabel of SS equal to field fCatName of Y
SET field fShowBubbleSizes of SS equal to field fBubSizes of Y
SET field fShowSeriesName of SS equal to field fSerName of Y
END IF
ELSE
IF ((field fShowPercent of SS equals 1) AND (field fShowBubbleSizes of
SS equals 0)) OR ((field fShowPercent of SS equals 0) AND (field
fShowBubbleSizes of SS equals 1)) AND (fields fShowLabelAndPerc,
fShowLabel, fShowValue, AND fShowSeriesName of SS equal 0)
SET SWAP equals to TRUE
SET field fValue of X equal to 1
SET fields fSerName, fCatName, fPercent, AND fBubSizes of X equal
to 0
SET field fShowValue of SS equal to field fValue of Y
SET field fShowPercent of SS equal to field fSPercent of Y
SET field fShowLabel of SS equal to field fCatName of Y
SET field fShowBubbleSizes of SS equal to field fBubSizes of Y
SET field fShowSeriesName of SS equal to field fSerName of Y
ELSE
IF (field fShowLabel of SS equals 1) AND (fields fShowPercent,
fShowLabelAndPerc, fShowValue, fShowBubbleSizes, AND
fShowSeriesName of SS equal 0)
IF chart group type equals area or filled radar
SET field fSerName of X equal to 1
SET fields fCatName, fValue, fPercent, AND fBubSizes equal
to 0
SET field fShowValue of SS to 1
SET fields fShowPercent, fShowLabelAndPerc, fShowLabel,
fShowBubbleSize, and fShowSeriesName of SS to 0
END IF
SET field fValue of Y equals to 1
SET fields fSerName, fCatName, fPercent, AND fBubSizes of Y
equal to 0
ELSE
IF fields fShowLabel, fShowPercent, fShowLabelAndPerc,
fShowValue, fShowBubbleSizes, AND fShowSeriesName of SS
equal 0
IF chart group type equals area or filled radar
SET fields fShowLabel of SS to 1
SET fields fShowPercent, fShowLabelAndPerc, fShowValue,
fShowBubbleSize, and fShowSeriesName of SS to 0
END IF
SET field fValue of Y equals to 1
SET fields fSerName, fCatName, fPercent, AND fBubSizes of Y
equal to 0
END IF
END IF
97 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
END IF
END IF
ELSE
IF (field fValue of Y equals 1) AND (fields fSerName, fCatName, fPercent,
AND fBubSizes of Y equal 0)
IF fields fShowLabel, fShowPercent, fShowLabelAndPerc, fShowValue,
fShowBubbleSizes, AND fShowSeriesName of SS equal 0
IF (chart group type equals area or filled radar) AND (field
fSerName of X equals 1) AND (fields fCatName, fValue, fPercent,
AND fBubSizes of X equal 0)
SET field fShowSeriesName of SS to 1
SET fields fShowPercent, fShowLabelAndPerc, fShowValue,
fShowBubbleSize, and fShowLabel of SS to 0
ELSE
SET field fCatName of X equals to 1
SET fields fSerName, fValue, fPercent, AND fBubSizes of X equal
to 0
END IF
ELSE
IF (field fShowValue of SS equals 1) AND (fields fShowLabel,
fShowPercent, fShowLabelAndPerc, fShowBubbleSizes, AND
fShowSeriesName of SS equal 0)
SET field fCatName of X equals to 1
SET fields fSerName, fValue, fPercent, AND fBubSizes of X equal
to 0
ELSE
SET field fShowValue of SS equal to field fValue of X
SET field fShowPercent of SS equal to field fSPercent of X
SET field fShowLabel of SS equal to field fCatName of X
SET field fShowBubbleSizes of SS equal to field fBubSizes of X
SET field fShowSeriesName of SS equal to field fSerName of X
END IF
END IF
END IF
END IF
//Determine if X or Y is used
IF (field fShowValue of SS equals 1) AND (fields fShowLabel, fShowPercent,
fShowLabelAndPerc, fShowBubbleSizes, AND fShowSeriesName of SS equal 0)
IF (SWAP equals FALSE)
IF DFTTEXT with id field equal to 1 exists
SET the data label equal to DFTTEXT with id field equal to 1
ELSE
SET the data label equal to the default formatting properties
END IF
SET the DataLabExtContents record of the data label equal to Y
ELSE
IF DFTTEXT with id field equal to 0 exists
SET the data label equal to DFTTEXT with id field equal to 0
ELSE
SET the data label equal to the default formatting properties
END IF
SET the DataLabExtContents record of the data label equal to X
END IF
ELSE
IF (SWAP equals FALSE)
IF DFTTEXT with id field equal to 0 exists
SET the data label equal to DFTTEXT with id field equal to 0
ELSE
SET the data label equal to the default formatting properties
END IF
SET the DataLabExtContents record of the data label equal to X
ELSE
IF DFTTEXT with id field equal to 1 exists
SET the data label equal to DFTTEXT with id field equal to 1
ELSE
SET the data label equal to the default formatting properties
END IF
SET the DataLabExtContents record of the data label equal to Y
98 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
END IF
END IF
The attached label specifies an exception on the data label and indicates that the current data
label differs from the data label inherited from the chart group for a series, or from the chart
group and series for a data point. The attached label of the data label contains a Text record
and can contain a DataLabExtContents record.
On a data label associated with a data point, when the attached label exists and contains a
BRAI record (section 2.4.29) with field formula not equal to 0x0000, the formula field specifies
the contents of the data label.
On a data label associated with a data point, when the attached label exists and contains a
SeriesText record (section 2.4.254) and a BRAI record with field formula equal to 0x0000, the
SeriesText record specifies the contents of the data label.
When the attached label exists and contains a DataLabExtContents record, the data label
information specified by the DataLabExtContents record that overlaps across records is
respected, and the information contained in the Text and AttachedLabel records of the data
label that overlaps is ignored.
When the attached label exists and does not contain a DataLabExtContents record, the data
label specified by the Text record that overlaps across records is respected, and the information
contained in the AttachedLabel record of the data label that overlaps is ignored.
When the data label does not specify an attached label, the AttachedLabel record of the data
label specifies the content properties of the data label.
Restrictions
The following requirements and restrictions exist on different parts of the collections of records that
represent the data label.
The chart group SHOULD<13> contain two sequences of records that conform to the DFTTEXT
rule that have the same records with the same field values.
If the chart group contains a sequence of records that conforms to the DFTTEXT rule the
following restrictions apply:
The fShowValue field of the AttachedLabel record SHOULD<15> equal the fShowValue
field of the Text record in the sequence of records that conforms to the DFTTEXT rule.
99 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.3.12 Trendline
A trendline is a straight or curved line that graphically represents the general trend of the data
points (section 2.2.3.10) of a series (section 2.2.3.9). In addition to specifying the data and
formatting properties of the line, the trendline name and the trendline label can also be specified in
the trendline.
A trendline is defined by a sequence of records that conforms to the SERIESFORMAT rule (section
2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF that contains a
SerAuxTrend record (section 2.4.250).
The following records and rules define the significant parts of a trendline:
The SeriesText record (section 2.4.254) in the first sequence of records that conforms to the AI
rule (section 2.1.7.20.1) specifies a custom trendline name to display in the legend (section
2.2.3.8).
The sequence of records that conforms to the SS rule (section 2.1.7.20.1) specifies the formatting
properties of the trendline. The yi field of the DataFormat record (section 2.4.74) MUST specify
the zero-based index of the Series record (section 2.4.252) associated with this trendline in the
collection of all Series records in the current chart sheet substream. Each trendline MUST
contain zero or one sequences of records that conform to the SS rule.
The SerParent record (section 2.4.255) specifies the series associated with the trendline.
The SerAuxTrend record specifies properties of the trendline, such as the trendline type and
the number of periods to forecast forward and backward, and specifies properties of the content
of the trendline label.
The LegendException record (section 2.4.153) specifies the formatting of the legend entry in
the legend (section 2.2.3.8) that corresponds to the trendline. This record is specified if the
legend entry has been deleted or does not use the default formatting of the legend. When the
legend entry has non-default formatting, the attached label (section 2.2.3.15) that follows the
LegendException record and Begin records (section 2.4.17) specifies the custom formatting of
the legend entry.
All fields except the cValx and cValy fields in the Series record (section 2.4.252) MUST be
ignored. The cValy and cValx fields in the Series records MUST be greater than 0.
The BRAI records (section 2.4.29) in the sequence of records that conforms to the AI rule
(section 2.1.7.20.1) MUST be ignored and the ifmt field of the BRAI records MUST equal 0x0000.
An error bar is a set of lines displayed on a chart (section 2.2.3.3) that indicates a range of
uncertainty in the measurement of each data points (section 2.2.3.10) in a series (section 2.2.3.9).
An error bar is specified by a sequence of records that conforms to the SERIESFORMAT rule
(section 2.1.7.20.1) specified by the chart sheet substream (section 2.1.7.20.1) ABNF that
contains a SerAuxErrBar record (section 2.4.249).
The following records and rules define the significant parts of an error bar:
The sequence of records that conforms to the SS rule (section 2.1.7.20.1) specifies the formatting
properties of the error bar. The yi field of the DataFormat record (section 2.4.74) MUST specify
the zero-based index of the Series record (section 2.4.252) associated with this error bar in the
collection of all Series record in the current chart sheet substream. Each error bar MUST
contain zero or one sequences of records that conform to the SS rule.
100 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The SerParent record (section 2.4.255) specifies the series associated with the error bar.
The SerAuxErrBar record specifies properties of the error bar, including the direction and type
of the error bar.
All fields except the cValx and cValy fields in the Series record MUST be ignored.
The cValx field MUST equal the cValx field of the Series record in the associated series specified
by the SerParent record.
If the ebsrc field of the SerAuxErrBar record equals 0x04 and the sertm field of the
SerAuxErrBar equals 0x01 or 0x02, the cValx field MUST equal the number of values
represented by the formula field of the second BRAI record (section 2.4.29) in the sequence of
records that conforms to the AI rule (section 2.1.7.20.1).
If the ebsrc field of the SerAuxErrBar record equals 0x04 and the sertm field of the
SerAuxErrBar equals 0x03 or 0x04, the cValy field MUST equal the number of values
represented by the formula field of the second BRAI record in the sequence of records that
conforms to the AI rule.
If the ebsrc field of the SerAuxErrBar record does not equal 0x04, the cValy field MUST equal
the cValy field of the Series record in the associated series specified by the SerParent record.
The BRAI records in the first, third, and fourth sequences of records that conform to the AI rule
MUST be ignored and the ifmt field of the BRAI records MUST equal 0x0000.
If the ebsrc field of the SerAuxErrBar record equals 0x04, the ifmt field of the BRAI records
contained in the second collection of records that conform to the AI rule specifies a Formula
(section 2.4.127) that specifies custom values of the error bar.
If the ebsrc field of the SerAuxErrBar record equals 0x04, the BRAI records in the second
sequence of records that conforms to the AI rule MUST be ignored and the ifmt field of the BRAI
records MUST equal 0x0000.
The LegendException record (section 2.4.153) in the chart sheet substream MUST NOT exist.
A data table (2) is a table on a chart (section 2.2.3.3) that contains a row for each series (section
2.2.3.9) and lists the values of each data point (section 2.2.3.10) on the chart.
A data table (2) is specified by a sequence of records that conforms to a DAT rule (section 2.1.7.20.1)
as specified by the chart sheet substream (section 2.1.7.20.1) ABNF.
The following records and rules define the significant parts of a data table (2):
The Dat record (section 2.4.73) specifies if the data table (2) shows legend keys next to the
name of the series and specifies which data table (2) borders are displayed.
The sequences of records that conform to the ATTACHEDLABEL (section 2.1.7.20.1) and
TEXTPROPS (section 2.1.7.20.1) rules in the sequence of records that conforms to the LD rule
(section 2.1.7.20.1) specify the text formatting for the data table (2). The Pos record (section
2.4.201) of the attached label (section 2.2.3.15) MUST be ignored. The ObjectLink record
(section 2.4.182) of the attached label MUST NOT exist.
The sequence of records that conforms to the FRAME rule (section 2.1.7.20.1) in the sequence of
records that conforms to the LD rule specifies the formatting properties of the data table (2).
101 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The following restrictions apply to the collection of records that represents a data table (2):
The fWasDataTable field of the Legend record (section 2.4.152) in the sequence of records that
conforms to the LD rule MUST equal 1.
The Pos record in the sequence of records that conforms to the LD rule MUST be ignored. A data
table (2) is automatically positioned.
The CrtLayout12 record (section 2.4.66) and the sequence of records that conforms to the
CRTMLFRT rule (section 2.1.7.20.1), in the sequence of records that conforms to the LD rule,
MUST NOT exist in a data table (2).
A data table (2) is not displayed on a chart if the chart contains a bar of pie, bubble, doughnut, filled
radar, pie, pie of pie, radar, or scatter chart group (section 2.2.3.7).
An attached label is a generic text element that is used on a chart (section 2.2.3.3). An attached
label can specify properties of an axis (section 2.2.3.6) title, chart title, data label (section
2.2.3.11), data table (section 2.2.3.14), display units label, legend (section 2.2.3.8), legend
entry, trendline (section 2.2.3.12) label, or the default text properties of the entire chart.
The location of the attached label in the chart sheet substream (section 2.1.7.20.1) ABNF and the
properties of the ObjectLink record (section 2.4.182) of the attached label specify the chart
element to which the attached label applies. Refer to the conceptual overviews (section 2.2.3) for
explanation of the meaning of the attached label in each context that it is used.
The Text record (section 2.4.324) and the collection of records that conforms to the TEXTPROPS
rule (section 2.1.7.20.1) specify properties of the text in the attached label. These properties
include text options such as text rotation and reading order. On attached labels that represent
data labels, the Text record also specifies content and layout properties of the data labels.
The Pos (section 2.4.201) and CrtLayout12 (section 2.4.66) records specify the position of the
attached label on the chart. The Pos record MUST be ignored if the attached label represents
the data labels on a series (section 2.2.3.9) or chart group (section 2.2.3.7), a data table, the
default text of the chart, or a legend key.
The FontX (section 2.4.123) and AlRuns (section 2.4.1) records specify the font and rich text
formatting properties of the attached label.
The collection of records that conforms to the AI rule (section 2.1.7.20.1) specifies custom text of
the attached label.
The collection of records that conforms to the FRAME rule (section 2.1.7.20.1) specifies the fill
and border properties of the attached label.
The ObjectLink record specifies the chart element the attached label applies to.
The DataLabExtContents record (section 2.4.76) specifies additional data label properties on
attached labels that represent a data label. Refer to the data label overview for the conditions
when this record can be written. This record MUST NOT exist unless the attached label specifies
properties of a data label. An attached label specifies properties of a data label if the
wLinkObj field of the ObjectLink record is equal to 0x0004 or the attached label is in the
collection of records that conforms to the DFTTEXT rule (section 2.1.7.20.1) in a chart group.
The collection of records that conforms to the CRTMLFRT rule (section 2.1.7.20.1) specifies
future records (section 2.1.6) for the attached label.
102 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.3.16 SPRC
A SPRC is a unit of measurement that is 1/4000th of the height or width of the chart (section
2.2.3.3). If the field is being used to specify a width or horizontal distance, the SPRC is 1/4000th of
the width of the chart. If the field is being used to specify a height or vertical distance, the SPRC is
1/4000th of the height of the chart.
For non-embedded charts, the size of the area is specified by the Chart record (section 2.4.45) in
points. For embedded charts, the chart is treated as a drawing and its size is calculated from the
OfficeArtClientAnchorSheet record (section 2.5.193) that is contained in the MsoDrawing (section
2.4.170) preceding the chart stream. The chart area calculation is as follows:
chart area width in pixels = (dx field of Chart record - 8) * DPI of the display device / 72 for non-
embedded charts.
chart area width in pixels is calculated from individual cell widths/heights that anchor the chart as
indicated by OfficeArtClientAnchorSheet (section 2.5.193) for embedded charts.
If the frt field of the Frame record (section 2.4.128) following the Chart record (section 2.4.45) is
0x0004 and the chart is not embedded, add the shadow size:
chart area width in pixels -= 2 * line width of the display device in pixels
chart area height in pixels = (dy field of Chart record - 8) * DPI of the display device / 72 for non-
embedded charts.
chart area height in pixels is calculated from individual cell widths/heights that anchor the chart as
indicated by OfficeArtClientAnchorSheet (section 2.5.193) for embedded charts.
If the frt field of the Frame record (section 2.4.128) following the Chart record (section 2.4.45) is
0x0004 and the chart is not embedded, add the shadow size:
chart area height in pixels -= 2 * line height of the display device in pixels
2.2.4 Metadata
Metadata is additional data associated with a particular cell or its content. Metadata is recorded in
BIFF8 for future extensibility purpose only.
103 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 2: Metadata
Each type of metadata has an associated collection of metadata records, a unique name, and a set of
predefined properties. Those properties describe whether the metadata remains associated with the
cell or its content during runtime operations (for example, insert, shift, copy/paste, merge, or
unmerge operations), as well as whether the metadata is cell metadata (section 2.2.4.2) or value
metadata (section 2.2.4.3).
Cell metadata is metadata associated with a cell itself. Cell metadata is not represented in BIFF8
format.
Value metadata is metadata associated with the value of a particular cell. Value metadata is
associated with a cell through a formula (section 2.2.2) containing a single special function,
_xlfn.COMPOUNDVALUE, whose single mandatory argument references a metadata block record
(section 2.2.4.4)<18>.
The only value metadata type represented in BIFF8 is MDX metadata (section 2.2.4.5).
104 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.4.4 Metadata Block
Cells are associated with actual metadata values using a metadata mapping table known as a
metadata block. A metadata block contains a collection of indexes to metadata records, along with
the corresponding metadata types (section 2.2.4.1).
The MDTInfo record (section 2.4.162) that specifies the metadata type (section 2.2.4.1) for MDX
metadata MUST have the following values:
Field Value
fGhostRow 0
fGhostCol 0
fEdit 0
fDelete 0
fCopy 1
fPasteAll 1
fPasteFormulas 0
fPasteValues 1
fPasteFormats 0
fPasteComments 0
fPasteDataValidation 0
fPasteBorders 0
fPasteColWidths 0
fPasteNumberFormats 0
fMerge 1
fSplitFirst 1
fSplitAll 0
fRowColShift 1
fClearAll 0
fClearFormats 1
fClearContents 0
fClearComments 1
105 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Field Value
fAssign 1
fCoerce 1
fAdjust 0
fCellMeta 0
stName "XLMDX"
An MDX metadata record references the connection name and the cube function used or referenced
in a cell.
There are four types of MDX metadata records: MDX tuple metadata (section 2.2.4.5.1), MDX set
metadata (section 2.2.4.5.2), MDX member property metadata (section 2.2.4.5.3), and MDX KPI
metadata (section 2.2.4.5.4).
An MDX tuple is the intersection between two or more members (2) from different dimensions
(1).
MDX tuple metadata is used by cube functions returning a member (2) or a value.
An MDX set is an ordered collection of members (2) within the same dimension (1).
MDX set metadata is used by cube functions returning a set or the number of items in a set.
MDX member property metadata references a member (2) name and a property name.
An MDX key performance indicator (KPI) represents the KPI property value of a KPI member
(2).
MDX KPI metadata references a KPI name, a KPI property, and a member (2) name.
2.2.5 PivotTables
A PivotTable is a mechanism for summarizing source data (section 2.2.5.3.2) to get an overview of
the distribution of that data. In a PivotTable, applicable columns of the source data become fields
that can be used to summarize data.
106 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
When the source data of the PivotTable is OLAP source data, OLAP hierarchies and some other
OLAP entities become fields in the PivotTable.
A PivotTable has two major parts, a PivotCache (section 2.2.5.3) and a PivotTable view (section
2.2.5.4). These parts are described in the following sections. There can be multiple PivotTable views
based on a single non-OLAP PivotCache (section 2.2.5.3.4). An OLAP PivotCache MUST have
exactly one associated PivotTable view (section 2.2.5.3.3).
The values produced by a PivotTable are placed in cells of a sheet (2) and these cells make up a
PivotTable report.
The PivotTable structures are not needed to obtain values from a PivotTable report because those
values are available in the sheet (2) cells. The structures are needed for the following purposes:
To show extra information related to a PivotTable report in an application, such as sort and filter
information.
To recalculate a PivotTable view, to incorporate changes such as sorting and filtering made to it,
and to update the corresponding PivotTable report accordingly.
To refresh a PivotCache, to incorporate changes made to the source data, and then recalculate
any PivotTable views associated with the PivotCache and to update the corresponding
PivotTable reports accordingly.
For general information about records see section 2.1. PivotTable (section 2.2.5) uses records from
the Worksheet Substream (section 2.1.7.20.5), the Globals Substream (section 2.1.7.20.3), and
the streams in the Pivot Cache Storage (_SX_DB_CUR) (section 2.1.7.12).
Concepts specified for PivotTables can have multiple sequences of records specifying them. The
sequences can be in different streams or substreams. In these cases additional information is specified
for the concept in the PIVOTFRT9 rule (section 2.1.7.20.5) or by SXAddl records (section
2.4.273.2). See the individual records, the QsiSXTag record (section 2.4.211) and section 2.2.5.1.1
for more information about how the additional information is connected to the concept.
The SXAddl records (section 2.4.273.2) is a record used for storing additional PivotTable view
(section 2.2.5.4), PivotCache (section 2.2.5.3) or query table information of a variety of types.
SXAddl records have an hdr field of type SXAddlHdr (section 2.5.253) that specifies the current
class (section 2.2.5.1.1.1) and the full type of record, see section 2.2.5.1.1.1 for details. The full
record type specifies the meaning of the data field of the SXAddl record.
2.2.5.1.1.1 Class
All SXAddl records (section 2.4.273.2) are grouped into classes. Each SXAddl record has a current
class. An SXAddl record can be in other classes as well. The different classes and their specifications
follow.
Unless the value of the hdr.sxc field of SXAddl is 0x09 and the value of the hdr.sxd field of SXAddl
is 0xFF, the hdr.sxc field of the SXAddl record specifies the current class and MUST be a value from
the following table:
107 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Current Class
SXCHIERARCHY 0x02 SxcHierarchy class (section 2.2.5.1.1.1.3)
SXCCACHE 0x03 SxcCache class (section 2.2.5.1.1.1.4)
SXCCACHEFIELD 0x04 SxcCacheField class (section 2.2.5.1.1.1.5)
SXCQSI 0x05 SxcQsi class (section 2.2.5.1.1.1.6)
SXCQUERY 0x06 SxcQuery class (section 2.2.5.1.1.1.7)
SXCGRPLEVEL 0x07 SxcGrpLevel class (section 2.2.5.1.1.1.8)
SXCGROUP 0x08 SxcGroup class (section 2.2.5.1.1.1.9)
SXCCACHEITEM 0x09 SxcCacheItem class (section 2.2.5.1.1.1.10)
SXCSXRULE 0x0C SxcSXRule class (section 2.2.5.1.1.1.11)
The current class and the hdr.sxd field of SXAddl specify the full type of the record, see the
individual classes for details.
If the value of the hdr.sxc field of SXAddl is 0x09 and the value of the hdr.sxd field of SXAddl is
0xFF, then the current class is specified by SxcCacheField class and the full record type is
SXAddl_SXCCacheItem_SXDEnd (section 2.4.273.20).
Classes can be nested inside other classes in a hierarchical manner as specified by the Globals
Substream (section 2.1.7.20.3) Augmented Backus-Naur Form (ABNF), Worksheet Substream
(section 2.1.7.20.5) ABNF, and Common Productions (section 2.1.7.20.6) ABNF. Properties from the
outer classes apply to the inner classes unless otherwise specified. Records in classes nested inside
other classes, are members (1) of both the inner and outer classes, but their current class is given
by the value of their hdr.sxc field. For example, SXAddl_SXCHierarchy_SXDProperty (section
2.4.273.57) is a member (1) of the SxcView class and the SxcHierarchy class and its current class
is the SxcHierarchy class.
The SxcView class specifies additional information for a PivotTable view (section 2.2.5.4).
The SxcView class is specified by the sequence of records specified by the PIVOTADDL rule (section
2.1.7.20.5).
The PivotTable view that the SxcView class specifies information for is specified by the stName
field of the SXAddl_SXCView_SXDId record (section 2.4.273.105).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCVIEW (0x00), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
108 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
The SxcField class specifies additional information for a pivot field (section 2.2.5.4.3).
The SxcField class is specified by the sequence of records specified by the SXADDLFIELD rule
(section 2.1.7.20.5).
The pivot field that the SxcField class specifies information for is specified by the stName field of
the SXAddl_SXCField SXDId record (section 2.4.273.26).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCFIELD (0x01), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcHierarchy class specifies additional information for a pivot hierarchy (section 2.2.5.4.5).
The pivot hierarchy (section 2.2.5.4.5) that the SxcHierarchy class specifies information for is
specified by the stHierUnq field of the SXAddl_SXCHierarchy_SXDId record (section 2.4.273.47).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCHIERARCHY (0x02), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
109 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDVERUPDINV 0x01 SXAddl_SXCHierarchy_SXDVerUpdInv (section
2.4.273.60)
SXDPROPERTY 0x05 SXAddl_SXCHierarchy_SXDProperty (section
2.4.273.57)
SXDFILTERMEMBER 0x09 SXAddl_SXCHierarchy_SXDFilterMember (section
2.4.273.44)
SXDSXSETPARENTUNIQUE 0x1D SXAddl_SXCHierarchy_SXDSXSetParentUnique
(section 2.4.273.58)
SXDUSERCAPTION 0x1F SXAddl_SXCHierarchy_SXDUserCaption (section
2.4.273.59)
SXDICONSET 0x20 SXAddl_SXCHierarchy_SXDId record (section
2.4.273.47)
SXDMEASUREGRP 0x24 SXAddl_SXCHierarchy_SXDMeasureGrp (section
2.4.273.55)
SXDDISPLAYFOLDER 0x25 SXAddl_SXCHierarchy_SXDDisplayFolder (section
2.4.273.42)
SXDPARENTKPI 0x26 SXAddl_SXCHierarchy_SXDParentKPI (section
2.4.273.56)
SXDKPIVALUE 0x27 SXAddl_SXCHierarchy_SXDKPIValue (section
2.4.273.53)
SXDKPIGOAL 0x28 SXAddl_SXCHierarchy_SXDKPIGoal (section
2.4.273.49)
SXDKPISTATUS 0x29 SXAddl_SXCHierarchy_SXDKPIStatus (section
2.4.273.50)
SXDKPITREND 0x2A SXAddl_SXCHierarchy_SXDKPITrend (section
2.4.273.52)
SXDKPIWEIGHT 0x2B SXAddl_SXCHierarchy_SXDKPIWeight (section
2.4.273.54)
SXDKPITIME 0x2C SXAddl_SXCHierarchy_sxdKPITime (section
2.4.273.51)
SXDFILTERMEMBER12 0x3F SXAddl_SXCHierarchy_sxdFilterMember12 (section
2.4.273.45)
SXDINFO12 0x41 SXAddl_SXCHierarchy_SXDInfo12 (section 2.4.273.48)
SXDEND 0xFF SXAddl_SXCHierarchy_SXDEnd (section 2.4.273.43)
The SxcCache class specifies additional information for a PivotCache (section 2.2.5.3).
The SxcCache class is specified by the sequence of records specified by the SXADDLCACHE rule
(section 2.1.7.20.5).
The PivotCache that the SxcCache class specifies information for is specified by the idCache field of
the SXAddl_SXCCache_SXDId record (section 2.4.273.6).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCCACHE (0x03), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
110 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDVERSXMACRO 0x18 SXAddl_SXCCache_SXDVerSXMacro (section 2.4.273.10)
SXDINVREFRESHREAL 0x34 SXAddl_SXCCache_SXDInvRefreshReal (section 2.4.273.8)
SXDINFO12 0x41 SXAddl_SXCCache_SXDInfo12 (section 2.4.273.7)
SXDEND 0xFF SXAddl_SXCCache_SXDEnd (section 2.4.273.5)
The SxcCacheField class specifies additional information for a cache field (section 2.2.5.3.5).
The cache field that the SxcCacheField class specifies information for is specified by the
stSourceName field of the SXAddl_SXCCacheField_SXDId record (section 2.4.273.14).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCCACHEFIELD (0x04), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcQsi class is specified by the sequence of records specified by the SXADDLQSI rule (section
2.1.7.20.5).
The query table that the SxcQsi class specifies information for is specified by stName field of the
SXAddl_SXCQsi_SXDId record (section 2.4.273.62).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCQSI (0x05), then the hdr.sxd
field of the SXAddl record MUST be a value from the following table which specifies the full record
type:
111 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDEND 0xFF SXAddl_SXCQsi_SXDEnd (section 2.4.273.61)
The SxcQuery class specifies additional information for an external connection (section 2.2.8).
The SxcQuery class is specified by the sequence of records specified by the SXADDLDBQUERY rule
(section 2.1.7.20.6).
The external connection (section 2.2.8) the SxcQuery class specifies information for is specified by
the stURL field of the SXAddl_SXCQuery_SXDXMLSource record (section 2.4.273.67).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCQUERY (0x06), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcGrpLevel class specifies information for an OLAP group level (section 2.2.5.3.10).
The SxcGrpLevel class is specified by the sequence of records specified by the SXADDLGRPLEVEL
rule (section 2.1.7.20.5).
The OLAP group level the SxcGrpLevel class specifies information for is specified by the stUnique
field of the SXAddl_SXCGrpLevel_SXDId record (section 2.4.273.41).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCGRPLEVEL (0x07), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcGroup class specifies information for an OLAP grouping (section 2.2.5.3.10).
The SxcGroup class is specified by the sequence of records specified by the SXADDLGROUP rule
(section 2.1.7.20.5).
112 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The OLAP grouping the SxcGroup class specifies information for is specified by the stName field of
the SXAddl_SXCGroup_SXDId record (section 2.4.273.37).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCGROUP (0x08), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcCacheItem class specifies additional information for a cache item (section 2.2.5.3.6).
The cache item that the SxcCacheItem class specifies information for is specified by the dwItem
field of the SXAddl_SXCCacheItem_SXDId record (section 2.4.273.21).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCCACHEITEM (0x09), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcSXrule class is specified by the sequence of records specified by the SXADDLSXRULE rule
(section 2.1.7.20.5).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCRULE (0x0C), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
113 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDID 0x00 SXAddl_SXCSXrule_SXDId (section 2.4.273.98)
SXDSXRULE 0x13 SXAddl_SXCSXrule_SXDSXrule (section 2.4.273.99)
SXDEND 0xFF SXAddl_SXCSXrule_SXDEnd (section 2.4.273.97)
The SxcSXfilt class specifies information for a PivotTable rule filter (section 2.2.5.4.11).
The SxcSXfilt class is specified by the sequence of records specified by the SXADDLSXFILT rule
(section 2.1.7.20.5).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXFILT (0x0D), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcSXDH class specifies the OLAP dimensions (1) for pivot hierarchies (section 2.2.5.4.5) in
the associated PivotTable view (section 2.2.5.3.3) of the OLAP PivotCache (section 2.2.5.3.4).
MUST NOT be present if the PivotCache (section 2.2.5.3) is a non- OLAP PivotCache.
The SxcSXDH class is specified by the sequence of records specified by the SXADDLSXDH rule
(section 2.1.7.20.3).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXDH (0x10), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcAutoSort class specifies pivot field sorting (section 2.2.5.4.3.1) information for a pivot
field (section 2.2.5.4.3).
The SxcAutoSort class is specified by the sequence of records specified by the SXADDLAUTOSORT
rule (section 2.1.7.20.5).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCAUTOSORT (0x12), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
114 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDID 0x00 SXAddl_SXCAutoSort_SXDId (section 2.4.273.4)
SXDEND 0xFF SXAddl_SXCAutoSort_SXDEnd (section 2.4.273.3)
The SxcSXMgs class is specified by the sequence of records specified by the SXADDLSXMGS rule
(section 2.1.7.20.3).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXMGS (0x13), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcSXMg class is specified by the sequence of records specified by the SXADDLSXMG rule
(section 2.1.7.20.3).
The OLAP measure group that the SxcSXMg class specifies information for is specified by the stName
field of the SXAddl_SXCSXMg_SXDId record (section 2.4.273.92).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXMG (0x14), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
The SxcField12 class specifies additional information for a pivot field (section 2.2.5.4.3).
The SxcField12 class is specified by the sequence of records specified by the SXADDLFIELD12 rule
(section 2.1.7.20.5).
The pivot field that the SxcField12 class specifies information for is specified by stName field of the
SXAddl_SXCField12_SXDId record (section 2.4.273.30).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCFIELD12 (0x17), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
115 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Full record type
SXDID 0x00 SXAddl_SXCField12_SXDId
SXDVERUPDINV 0x01 SXAddl_SXCField12_SXDVerUpdInv (section 2.4.273.34)
SXDMEMBERCAPTION 0x11 SXAddl_SXCField12_SXDMemberCaption (section
2.4.273.32)
SXDVER12INFO 0x19 SXAddl_SXCField12_SXDVer12Info (section 2.4.273.33)
SXDISXTH 0x1C SXAddl_SXCField12_SXDISXTH (section 2.4.273.31)
SXDAUTOSHOW 0x37 SXAddl_SXCField12_SXDAutoshow (section 2.4.273.28)
SXDEND 0xFF SXAddl_SXCField12_SXDEnd (section 2.4.273.29)
The SxcSXCondFmts class specifies information for PivotTable (section 2.2.5) conditional
formatting rules.
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXCONDFMTS (0x1A), then
the hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the
full record type:
The SxcSXCondFmt class specifies information for a PivotTable (section 2.2.5) conditional
formatting rule.
The SxcSXCondFmt class is specified by the sequence of records specified by the SXADDLCONDFMT
rule (section 2.1.7.20.5).
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXCONDFMT (0x1B), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
116 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXFILTERS12 (0x1C), then
the hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the
full record type:
If the hdr.sxc field of an SXAddl record (section 2.4.273.2) equals SXCSXFILTER12 (0x1D), then the
hdr.sxd field of the SXAddl record MUST be a value from the following table which specifies the full
record type:
A data functionality level is a number that represents a set of features and run-time behaviors in
the following areas related to data manipulation and display: PivotTable (section 2.2.5), query
table, and external connections (section 2.2.8).
See section 2.2.5.3.1 for specific details about the data functionality level of a PivotCache (section
2.2.5.3).
2.2.5.3 PivotCache
The PivotCache is a set of structures that contains information about the source data (section
2.2.5.3.2) being summarized in the PivotTable views (section 2.2.5.4) using that PivotCache. The
information includes source data organization, data types, and the values. A PivotCache is specified
by the records conforming to the following rules:
117 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Rule Notes
PIVOTCACHE (section This is in a stream as specified in section 2.1.7.12.
2.1.7.12)
PIVOTCACHEDEFINITION The SXStreamID record (section 2.4.303) specifies the
(section 2.1.7.20.3) associated stream in section 2.1.7.12.
PIVOTFRT9 (section If an associated PivotTable view (section 2.2.5.3.3) is
2.1.7.20.5) specified by the QsiSXTag record (section 2.4.211), then
PivotCache properties specified in this rule apply to this
PivotCache.
The PivotCache functionality level is the data functionality level (section 2.2.5.2) associated
with a PivotCache (section 2.2.5.3). The PivotCache functionality level is used in specification of
restrictions for the PivotCache and associated PivotTable views (section 2.2.5.3.3). It is specified
as follows:
A PivotCache (section 2.2.5.3) can be based on four different types of source data. The type of
source data is specified by the sxvs field of the SXVS record (section 2.4.317).
When the source data type is SHEET as specified by SXVS, the data is read from the range specified
by a DConRef (section 2.4.86), DConName (section 2.4.85), or DConBin (section 2.4.83) record. If
the range is a table, then the PivotCache will have one cache field (section 2.2.5.3.5) for each
column of the table using the column header captions for cache field names, and the data region
values of the table are used as source data values, specified by cache records (section 2.2.5.3.12).
Otherwise the PivotCache has one cache field for each column of the range, using the values in the
first row of the range for cache field names, and all other rows are used as source data values,
specified by cache records.
When the source data type is SCENARIO as specified by SXVS, no new source data is available for
the PivotCache and the PivotCache cannot be refreshed. A snapshot of the source data might be
available in the cache records.
When the source data type is EXTERNAL, as specified by SXVS, the source data is read from an
external data source. There is an associated external connection (section 2.2.8) that is used to
obtain data from the external data source. The external connection is specified by the sequence of
records that conforms to the DQBUERY rule (section 2.1.7.20.3) in the sequence of records that
conforms to the PIVOTCACHEDEFINITION rule (section 2.1.7.20.3) and the combination of other
records as specified in section 2.2.8. For a non-OLAP PivotCache (section 2.2.5.3.4), the source
118 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
data is a rectangular table and the PivotCache (section 2.2.5.3) has one cache field for each
column of the table using the column header captions for cache field names, and the rows of the
table are used as source data values, specified by cache records.
If the source data is external and the external connection is an OLAP Connection (section 2.2.8.3.1)
then the PivotCache MUST be an OLAP PivotCache. For an OLAP PivotCache, the source data is
handled by the data provider specified by the associated OLAP Connection and the PivotCache
MUST NOT have cache records.
When the source data type is CONSOLIDATION as specified by SXVS, the source data is read from
one or more ranges. For more details, see the section 2.2.5.3.2.1.
When a pivot field (section 2.2.5.4.3) is on the page axis (section 2.2.5.4.9.1) of the PivotTable
view (section 2.2.5.4), the pivot field is a server-based page field if the fServerBased field of the
SXVDEx record (section 2.4.310) is equal to 1 and the fServerBased field of the associated SXFDB
record (section 2.4.283) is equal to 1. A server-based page field is a pivot field on the page axis
that causes the query that is used to retrieve source data for populating the PivotCache to be
parameterized. The query is parameterized according to the page filter criteria, as specified in section
2.2.5.4.9.1. This feature can only be used for an ODBC PivotCache.
A multiple consolidation ranges PivotCache (section 2.2.5.3) is used for summarizing multiple
ranges that contain source data in cross-tab format. A multiple consolidation ranges
PivotCache is a collection of ranges and page information that is specified by the sequence of records
that conforms to the SXTBL rule (section 2.1.7.20.3). Each range is specified by one of the
DConName (section 2.4.85), DConBin (section 2.4.83), or DConRef (section 2.4.86) records.
The following figure shows an example of a range in cross-tab format. The first column of the range
contains names of sales people ("George" and "Allan"). The first row in the range contains product
groups ("Cars" and "Bikes"). The remaining cells in the range contain numeric values representing
how many products in a certain product group were sold by each sales person.
119 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 4: Example of eight ranges in cross-tab format
The values in the first column of each range are used to create a cache field (section 2.2.5.3.5) with
a default name specified by the application. Each cache item (section 2.2.5.3.6) of this cache field
corresponds to one of the values in the first column of the range, eliminating duplicates. This cache
field is the first cache field in the collection of sequences of records that conform to the FDB rule
(section 2.1.7.12) in the sequence of records that conforms to the PIVOTCACHE rule.
The values in the first row of each range are used to create a cache field with a default name
specified by the application. Each cache item of this cache field corresponds to one of the values in
the first row of the range, eliminating duplicates. This cache field is the second cache field in the
collection of FDB rules (section 2.1.7.12) in the PIVOTCACHE rule (section 2.1.7.12).
The values in all other cells of each range are used to create a cache field with a default name
specified by the application. Each cache item of this cache field corresponds to one of the values in
the other cells of the range, eliminating duplicates. This cache field is the third cache field in the
collection of FDB rules in PIVOTCACHE rule.
A PivotTable view (section 2.2.5.4) associated with the multiple consolidation ranges PivotCache
is added on creation. The pivot fields (section 2.2.5.4.3) corresponding to the cache fields
described previously are added to the row axis (section 2.2.5.4.9.2), column axis (section
2.2.5.4.9.3), and data axis (section 2.2.5.4.9.5), respectively.
Up to four additional cache fields can optionally exist with default names specified by the application.
The corresponding pivot fields are added to the page axis (section 2.2.5.4.9.1) of the PivotTable
view on creation, enabling the user to summarize data from all or a subset of the ranges. The ranges
to be summarized in the PivotTable (section 2.2.5) are selected by adding a manual filter (section
2.2.5.4.7) to one or more of these pivot fields on the page axis. The number of optional cache
fields created is user-defined and is equal to the cPages field of the SXTbl record (section 2.4.305).
Each optional cache field corresponds to an SXTBRGIITM record.
120 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The first SXTBRGIITM record (section 2.4.307) in the SXTBL collection (section 2.1.7.20.3)
corresponds to the fourth cache field in the collection of FDB rules. Each cache item of this cache
field corresponds to the SXString record (section 2.4.304) in the collection of SXString records
directly following this SXTBRGIITM record.
The second SXTBRGIITM record in the SXTBL collection corresponds to the fifth cache field in the
collection of FDB rules. Each cache item of this cache field corresponds to the SXString record in
the collection of SXString records directly following this SXTBRGIITM record.
The third SXTBRGIITM record in the SXTBL collection corresponds to the sixth cache field in the
collection of FDB rules. Each cache item of this cache field corresponds to the SXString record in
the collection of SXString records directly following this SXTBRGIITM record.
The fourth SXTBRGIITM record in the SXTBL collection corresponds to the seventh cache field in
the collection of FDB rules. Each cache item of this cache field corresponds to the SXString record
in the collection of SXString records directly following this SXTBRGIITM record.
The following figure shows a multiple consolidation ranges PivotTable report (section 2.2.5) with two
pivot fields on the page axis. The PivotTable report is based on the eight ranges in the figure titled
Example of eight ranges in cross-tab format and summarizes the values from all the ranges
because no manual filter (section 2.2.5.4.7) has been applied to any of the pivot fields on the page
axis.
The rgiitem field of the SxTbpg record (section 2.4.306) specifies the relationship between each
range and the SXString records that follow each SXTBRGIITM record.
The set of PivotTable views (section 2.2.5.4) that share an associated PivotCache (section
2.2.5.4.1) are specified to be the associated PivotTable views of that PivotCache (section
2.2.5.3).
A PivotCache MUST have at least one associated PivotTable view, and an OLAP PivotCache (section
2.2.5.3.4) MUST have exactly one associated PivotTable view.
This section provides background information about the underlying data model for OLAP entities.
121 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The principal unit of scope is an OLAP cube. See section 2.2.8 for information about how an OLAP
cube is accessed. Items within an OLAP cube can be addressed by an MDX unique name string.
Within an OLAP cube, there are OLAP hierarchies, OLAP measures and OLAP sets.
An OLAP hierarchy consists of one or more OLAP levels and OLAP member properties. An OLAP
level consists of one or more OLAP members. An OLAP member is an atomic unit of data, for
example customer "Jim Smith", or a grouping of data, for example "customers in the city of Chicago".
OLAP levels contain OLAP members of similar type within an OLAP hierarchy. OLAP members can have
parent and child members in OLAP levels above and below them, for example "Jim Smith" might be a
child of "customers in the city of Chicago". An OLAP member property can be associated with a single
OLAP level or all OLAP levels of an OLAP hierarchy, for example a "Mayor" OLAP member property
might be associated with a "City" OLAP level.
An OLAP tuple is a way of combining multiple OLAP members to reference a particular point in an
OLAP cube, for example "customers in the city of Chicago" and "2008" references data in the OLAP
cube corresponding to the year 2008 and customers in Chicago.
An OLAP measure is a value that is available in the OLAP cube. Usually it is numeric, "Sales" and
"Head Count" are typical examples of OLAP measures. An OLAP measure is an OLAP member in a
measures OLAP hierarchy. For a PivotTable view (section 2.2.5.4), OLAP measures are stored
differently from other OLAP members in this file format.
An OLAP tuple including an OLAP measure can be used to get a value, for example "customers in the
city of Chicago", "2008" and "sales" might reference the value $659,000.
An OLAP named set is a collection of OLAP tuples. OLAP named sets are typically used for specific
analytical needs that require custom logic, for example an OLAP named set might be defined as the
OLAP tuples corresponding to "the top 10 customers by month and sales".
Consider a PivotCache (section 2.2.5.3) based on the following source data (section 2.2.5.3.2):
In this example, four cache fields exist in the PivotCache. Each cache field corresponds to one of
the columns in the source data: Country, Product, Date, and Sales.
The sequence of records that conforms to the FDB rule (section 2.1.7.12), and optionally the
SXADDLCACHEFIELD rule (section 2.1.7.20.3), specify a cache field. A cache field is contained in
a PivotCache.
A cache field index is a zero-based index of an FDB rule in the PIVOTCACHE rule (section 2.1.7.12).
A cache field typically corresponds to a source data entity. However, grouping (section 2.2.5.3.7)
cache fields and cache fields representing calculated fields (section 2.2.5.3.8) do not correspond
to source data entities (section 2.2.5.3.2). Such cache fields are fully specified by information in
the PivotCache.
122 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The cfdbdb field of the SXDB record (section 2.4.275) specifies the number of cache fields that
correspond to source data entities. If the cache field index of an SXFDB record (section 2.4.283) is
less than cfdbdb, the cache field corresponds to a source data entity. Otherwise, the cache field
does not correspond to a source data entity. A non- OLAP PivotCache (section 2.2.5.3.4) MUST
have one or more cache fields corresponding to source data columns. An OLAP PivotCache MUST
NOT have cache fields that do not correspond to source data entities.
In a non- OLAP PivotCache, a cache field typically corresponds to one column in the source data
and contains information about that column. The cache field name is specified by the stFieldName
field of the SXFDB record. The cache field name of a cache field corresponding to a source data
column is derived from the name of that column in the source data and is used to associate the
cache field with that source data column.
All cache field names MUST be unique, when using a case-insensitive comparison, within the
associated PivotCache.
In an OLAP PivotCache each cache field can be associated with a pivot hierarchy (section
2.2.5.4.5). For more information, see section 2.2.5.4.5.1.
Cache items represent specific instances of the entities represented by cache fields (section
2.2.5.3.5). For example, an instance of a Country cache field might be the USA cache item. Having
a USA cache item in the Country cache field enables PivotTable views (section 2.2.5.4) associated
with the PivotCache (section 2.2.5.3) to display data by USA.
Each cache item specifies its value and a type. In some cases, a cache item can have additional
information associated with it.
A cache item is contained in a cache field. A cache field can have zero cache items if the cache
field is not in use in the PivotTable view.
For a cache field that corresponds to source data (section 2.2.5.3.2), a collection of cache items is
specified by a collection of sequences of records that conform to the SRCSXOPER rule (section
2.1.7.12), with each cache item being specified by a sequence of records that conforms to the
SXOPER rule (section 2.1.7.12), which optionally has a sequence of records that conforms to the
SXADDLCACHEITEM rule (section 2.1.7.20.3) associated with it. The sequence of records that
conforms to the SXOPER rule specifies the value of the cache item.
For grouping (section 2.2.5.3.7) cache fields, the collection of cache items is specified by a
collection of sequences of records that conform to the GRPSXOPER rule (section 2.1.7.12) with each
cache item being specified by an SXOPER rule.
A cache item index can be used to reference a cache item within the cache field. Referencing a
cache item by index requires an implicit or explicit reference to that cache field because a cache
item collection is associated with a specific cache field. A cache field can be referenced by a cache
field index, as specified in section 2.2.5.3.5.
If a collection of GRPSXOPER rules exists in the cache field, a cache item index is a zero-based
index into the collection of GRPSXOPER rules. Otherwise, a cache item index is a zero-based index
into the collection of SRCSXOPER rules.
There can be multiple entries of source data that have the same combination of value and type for a
cache field. Each cache item within a cache field MUST have a unique combination of value and
type.
123 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If there is one or more references by index to cache items of a particular cache field, that cache
field MUST have a cache items collection. A grouping cache field MUST have a collection of cache
items associated with it.
Unused cache items are values that did not exist in the source data when the PivotCache was last
refreshed but existed when the PivotCache was refreshed previously. The PivotCache can retain
such unused cache items to preserve information associated with them to reapply that information if
the value corresponding to the cache item is added back to the source data at some later point in
time.
For an OLAP PivotCache (section 2.2.5.3.4), a cache field associated with an OLAP measure
MUST NOT have a cache item collection.
For an OLAP PivotCache, a cache item with a string value specifies the unique name of an OLAP
member, unless the cache field is a member property (section 2.2.5.4.6) cache field.
An example of cache items and their association with source data is provided here.
Four cache fields exist, each corresponding to one of the columns: Country, Product, Date, and
Sales. Each of the four cache fields can have cache items corresponding to the unique values in the
source data columns as illustrated in the following tables:
Canada
USA
Bicycle
Car
6/5/2007
8/3/2007
124 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Cache items for the Date cache field
9/2/2007
10/5/2007
500
20000
500
35000
2.2.5.3.7 Grouping
Grouping is used to combine a set of cache items (section 2.2.5.3.6), typically ones that are related
in some logical way. There are three different types of grouping: numeric grouping, date grouping,
and discrete grouping. Numeric grouping combines numeric cache items into ranges of values. Date
grouping combines date cache items into date ranges. Discrete grouping combines specifically
selected cache items into groups.
The cache field (section 2.2.5.3.5) that contains the cache items that are to be grouped is called
the base cache field. The resultant cache field that contains the groups of cache items is called the
parent grouping cache field. Each group of cache items in the base cache field is associated with a
single cache item in the parent grouping cache field. Often cache items in parent grouping cache
fields can be further grouped, creating a hierarchy of parent grouping cache fields. The base cache
field is at the lowest level of the hierarchy.
Numeric grouping is specified by records in the PivotCache Storage part (section 2.1.7.12) that
conform to the GRPSXOPER (section 2.1.7.12) and SXRANGE (section 2.1.7.12) rules.
For numeric grouping, there is only one cache field associated with the grouping and it serves as
both the parent grouping cache field and the base cache field. The numeric grouping is specified by
the fRangeGroup and fNumField fields of the SXFDB record (section 2.4.283) associated with the
cache field being equal to 1. The fHasParent field of the SXFDB record MUST be 0.
The cache items that specify the groups are specified by SXString records (section 2.4.304) that
follow the SXFDB record. The grouping criteria is specified by the SxRng record (section 2.4.300)
that follows the SXFDB record. The iByType field of the SxRng record MUST be 0. For more details,
see section 2.4.300.
Date grouping is specified by records in the PivotCache Storage part that conform to the
GRPSXOPER and SXRANGE rules.
For date grouping, there can be up to seven levels of grouping hierarchy. The grouping level for a
cache field is specified by the iByType field of the SxRng record that follows the SXFDB record
which specifies that cache field. The cache field with the lowest iByType value has the finest level
of detail, the cache field with the next lowest iByType value has the next finest level of detail, and
so on. Each cache field in the hierarchy MUST have an SxRng record with a unique iByType value.
The cache field corresponding to the finest level of detail of date information included serves as both
a parent grouping cache field and the base cache field. Other parent grouping cache fields specify
125 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
additional levels in the hierarchy. The date grouping is specified by the fRangeGroup and fNumField
fields of the SXFDB record associated with the cache field being equal to 1 and 0 respectively for all
cache fields in the grouping. The ifdbBase field of each SXFDB record associated with the date
grouping, except for the SXFDB record corresponding to the base cache field, MUST specify a cache
field index to the SXFDB record corresponding to the lowest level of the hierarchy.
The cache items that specify the groups are specified by SXString record that follow the SXFDB
record for the parent grouping cache fields. The grouping criteria is specified by the SxRng record
that follows the SXFDB record. The iByType field of the SxRng record MUST be greater than or equal
to 1 (Seconds) and less than or equal to 7 (Years). For more details, see section 2.4.300.
Discrete grouping is specified by the GRPSXOPER rule, the SxIsxoper record (section 2.4.290), and
the Continue records (section 2.4.58) in the PivotCache Storage part.
For discrete grouping, a hierarchy of parent grouping cache fields can exist, where each parent
grouping cache field combines the cache items of the cache field at the next lower level. The
discrete grouping is specified by the fRangeGroup field of the SXFDB record associated with the
cache field being equal to 0 and the csxoper field of the SXFDB record being greater than 0. The
ifdbBase field of the SXFDB record specifies a cache field index to the base cache field at the
lowest level of the grouping hierarchy. The ifdbParent field of the SXFDB record specifies a cache
field index to the parent grouping cache field at the next higher level of the hierarchy. If there is no
higher level, then the fHasParent field of the SXFDB record MUST be 0 and ifdbParent MUST be
ignored.
The cache items that specify the groups are specified by records that conform to the GRPSXOPER
rule following the SXFDB record. The mapping between the cache items in the lower level cache
field and the cache items in the parent grouping cache field is specified by the SxIsxoper record
following the SXFDB record for the parent grouping cache field. The rgSxIsxoper field in the
SxIsxoper record contains an array element for each cache item in the lower level cache field. The
value of the array element is the index of the cache item in the parent grouping cache field that the
cache item in the lower level cache field is grouped by. For more details, see section 2.4.290.
The following paragraphs explain the three different types of grouping and provide examples of them.
Numeric grouping combines numeric cache items into ranges of values. For example, consider the
following PivotTable report where the number of people, represented by "Count of Name", of a certain
age are listed.
Analysis of specific ages might not be particularly meaningful. Instead, looking at age groups can be
more interesting. The following PivotTable report (section 2.2.5) illustrates numeric grouping applied
to the "Age" cache field. In this example, the numeric grouping is set to start at 0, end at 100, and
have groups of 20 years.
126 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 7: PivotTable report with age groups
Date grouping is similar to numeric grouping and is used to group cache items into date ranges.
One to seven parent grouping cache fields can exist when date grouping is applied to a cache field,
each corresponding to a different level of detail of date and time information. The cache field, to
which the date grouping is originally applied, is included in the set of parent grouping cache fields
and is considered the base cache field of the parent grouping cache fields. For date grouping, the
base cache field represents the finest level of detail of date and time information. The following levels
of detail of date information are available, each corresponding to one cache field:
Seconds
Minutes
Hours
Days
Months
Quarters
Years
For example, consider the following PivotTable report where the number of sales is listed for each
individual date.
127 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 8: PivotTable report with dates
This information can be too detailed for some analytical purposes. With date grouping, a more useful
higher level summary can be created. The following PivotTable report illustrates the result of applying
date grouping to the "Date" cache field and including two levels of grouping ("Years" and
"Quarters"). In this example, the "Quarters" cache field represents the finest level of date
information included and is therefore the base cache field for this date grouping. The "Years" cache
field is a parent grouping cache field with the "Quarters" cache field as its base cache field. The
items "<1/1/2007" in the two cache fields represent dates before 1/1/2007, where the start date is
specified by the first SXNum record (section 2.4.296) following the SxRng record. The items
">12/13/2008" in the two cache fields represent dates after 12/13/2008, where the end date is
specified by the second SXNum record following the SxRng record.
128 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 9: PivotTable report with date groups
Discrete grouping combines specifically selected cache items into groups. When discrete grouping is
applied to a cache field, a separate parent grouping cache field is created and the cache field that
the grouping is applied to will become the base cache field for that parent grouping cache field.
Multiple parent grouping cache fields can exist for one base cache field, forming a hierarchy of
parent grouping cache fields. A parent grouping cache field higher in the hierarchy is considered the
parent of the cache field just below it in the hierarchy. For a parent grouping cache field, each
cache item in the cache items collection represents one group.
For example, consider the following PivotTable report listing sales by state in the Unites States.
129 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 10: PivotTable report with state names
Discrete grouping can be used to group sets of states, for example, into geographical areas. The
following PivotTable report illustrates the result of applying six groups ("Group1" through "Group6") to
the cache field representing states. The cache field representing states is considered the base
cache field for the discrete grouping in this example. Each group in the example, represented by a
cache item in the parent grouping cache field, combines states in the same geographical area.
130 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 11: PivotTable report with state groups
Calculated fields allow users to add calculations to a PivotTable report (section 2.2.5). For
example, if a PivotTable report contains values for sales and cost by products, but no profit values, a
calculated field with the formula "=sales-cost" can be added so that profit values are calculated and
can be analyzed in the PivotTable report.
A calculated field is a cache field (section 2.2.5.3.5) and does not correspond to a column in the
source data (section 2.2.5.3.2). The values for a calculated field are calculated based on the
formula specified for the calculated field. A calculated field is specified by the fCalculatedField
field of the SXFDB record (section 2.4.283) being equal to 1. The formula is specified by the
SXFormula record (section 2.4.288) following the SXFDB record.
131 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A pivot field associated with a calculated field MUST NOT appear on the row axis (section
2.2.5.4.9.2), column axis (section 2.2.5.4.9.3), or page axis (section 2.2.5.4.9.1) of a PivotTable
view (section 2.2.5.4).
Calculated items allow users to add a cache item (section 2.2.5.3.6) that does not exist in the
source data (section 2.2.5.3.2) to a cache field (section 2.2.5.3.5). For example, consider a
PivotTable report (section 2.2.5) displaying sales for the four quarters of 2007. If there are source
data rows for sales in 2008, a calculated item can be used to add an additional cache item as a
calculated item that calculates the projected sales for the first quarter of the year 2008 as being 25%
higher than the sales for the fourth quarter of 2007. The following figure illustrates a PivotTable
report with such a calculated item (2008 Q1 projected).
The values for a calculated item are calculated based on the formula specified for the calculated
item.
The sequence of records that conform to the SXFORMULA rule (section 2.1.7.12) specifies one
calculation for a specific calculated item. Each calculated item can have multiple calculations
associated with it and in that case, there are multiple sequences of records that conform to the
SXFORMULA rule corresponding to the same calculated item. The calculated item that a
calculation is associated with is specified by the sequence of records that conform to the PIVOTRULE
rule (section 2.1.7.20.6) in the SXFORMULA rule. The PIVOTRULE rule can also specify additional
scoping information. For example, if one calculation for a calculated item named "2008 Q1 projected"
only applies to the "Cars" product group, the PIVOTRULE rule will specify the cache field
corresponding to "product group" and the cache item corresponding to "Cars".
Grouping in an OLAP PivotCache (section 2.2.5.3.4) is the associating of multiple OLAP members
that belong to the same OLAP level of an OLAP hierarchy and have the same OLAP member parent.
When OLAP members in a particular OLAP level are grouped, a parent grouping OLAP level exists.
Each group is represented in the parent grouping OLAP level by one parent grouping OLAP member,
and one or more child OLAP members in the OLAP level that the grouping is applied to.
A parent grouping OLAP level is specified by the sequence of records that conform to the
SXADDLGRPLEVEL rule (section 2.1.7.20.5).
A parent grouping OLAP member is specified by the sequence of records that conform to the
SXADDLGROUP rule (section 2.1.7.20.5).
132 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A calculated member (2) is specified by the sequence of records that conform to the
SXADDLCALCMEMBER rule (section 2.1.7.20.5) and is used to create an OLAP calculated member
or an OLAP named set with an associated user-specified MDX expression for a custom calculation.
The fSet field of the SXAddl_SXCView_SXDCalcMember record specifies whether the associated
calculated member (2) creates an OLAP named set or an OLAP calculated member.
If the user-specified MDX expression associated with a calculated member (2) defines an OLAP
measure, then this calculated member (2) is associated with a measure pivot hierarchy (section
2.2.5.4.5) as specified in section 2.2.5.4.5.2.
If the user-specified MDX expression associated with a calculated member (2) specifies an OLAP
member in an OLAP hierarchy other than the OLAP measure hierarchy, then this calculated member
(2) can only be associated with a cache item (section 2.2.5.3.6).
If a calculated member specifies an OLAP named set, then this calculated member (2) is associated
with a named set pivot hierarchy as specified in section 2.2.5.4.5.4.
Cache records, as defined by the Pivot Cache Storage (section 2.1.7.12), represent a copy of the
source data (section 2.2.5.3.2) for a PivotCache (section 2.2.5.3) and allow for PivotTable views
(section 2.2.5.4) using a PivotCache to be recalculated without retrieving the source data.
Each cache record specifies values for one row of source data. Each value in a cache record is
associated with a corresponding cache field (section 2.2.5.3.5). Cache records are specified by the
sequence of records that conform to the DBB rule (section 2.1.7.12). The count of cache records
MUST be equal to the crdbdb field of the SXDB record (section 2.4.275). The SXDBB record (section
2.4.276) specifies an array of cache item (section 2.2.5.3.6) indexes for the cache fields for which
the fAllAtoms field of the SXFDB record (section 2.4.283) is equal to 1. The values for the remaining
cache fields that correspond to source data columns are specified by the sequence of records that
conform to the SXOPER rule (section 2.1.7.12), with each record specifying a value. For each cache
record, the number of records in the sequence of records that conforms to the SXOPER rule (section
2.1.7.12) MUST be the same as the count of cache fields, corresponding to source data columns,
for which the fAllAtoms field of the SXFDB record is equal to 0.
The cache records in a PivotCache can be invalid, in which case the cache records MUST be
ignored. The validity of the cache records is determined from the
SXAddl_SXCCache_SXDInvRefreshReal record (section 2.4.273.8), if one is present and
associated with this PivotCache, the QsiSXTag record (section 2.4.211), if one is present and
associated with this PivotCache, and the SXDB record. If the
SXAddl_SXCCache_SXDInvRefreshReal record is present, then the cache records are not valid if
the fInvalid field of the SXAddl_SXCCache_SXDInvRefreshReal record is 1 and valid if that field
is 0. Otherwise, if the QsiSXTag record is present, then the cache records are not valid if the
fInvalid field of the QsiSXTag record is 1 and valid if that field is 0. Otherwise, the cache records
are not valid if the fInvalid field of the SXDB record is 1 and valid if that field is 0.
An OLAP PivotCache (section 2.2.5.3.4) MUST NOT have cache records. Cache records are
optional for a non- OLAP PivotCache.
133 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.4 PivotTable View
A PivotTable view is a set of structures that specify layout, filtering, and other properties. These
properties are used to produce a PivotTable report (section 2.2.5) based on data from the associated
PivotCache (section 2.2.5.3).
A PivotTable view is specified by the sequence of records that conform to the PIVOTVIEW rule
(section 2.1.7.20.5).
The arrangement of pivot fields (section 2.2.5.4.3) on the row axis (section 2.2.5.4.9.2),
column axis (section 2.2.5.4.9.3), or both to produce a PivotTable report.
Using data items (section 2.2.5.4.9.5.1) on the data axis (section 2.2.5.4.9.5) to show
summarized result values in the PivotTable report.
Filtering the data in the PivotTable report by performing manual filtering (section 2.2.5.4.7),
filtering by criteria (section 2.2.5.4.8), or filtering in the page axis (section 2.2.5.4.9.1).
Formatting the entire PivotTable report with a table style (section 2.4.320). See the
SXAddl_SXCView_SXDTableStyleClient report (section 2.4.273.107) for details. Alternatively,
for an AutoFormat, see section 2.4.313 and section 2.4.315 for details.
Formatting an area of the PivotTable report in a way that logically tracks changes in the
PivotTable report. For details, see the record specifications for records specified by the
PIVOTFORMAT rule (section 2.1.7.20.5).
Conditional formatting an area of the PivotTable report in a way that logically tracks changes
in the PivotTable report and performs calculations based the fact that the area is in a PivotTable
report. For details, see the record specifications for records specified by the SXADDLCONDFMT
rule (section 2.1.7.20.5).
Sorting pivot items (section 2.2.5.4.4) of pivot fields (section 2.2.5.4.3) within the PivotTable
report. For details, see section 2.2.5.4.3.1.
A PivotTable view (section 2.2.5.4) is associated with the PivotCache (section 2.2.5.3) specified by
the iCache field of the SxView record (section 2.4.313). iCache is a zero-based index of a sequence
of records that conform to the PIVOTCACHEDEFINITION rule (section 2.1.7.20.3) in the sequence
of records that conform to the WORKBOOKCONTENT rule (section 2.1.7.20.3).
Each PivotTable view MUST be associated with exactly one PivotCache. A non- OLAP PivotCache
(section 2.2.5.3.4) MUST be associated with one or more PivotTable views. An OLAP PivotCache
MUST be associated with exactly one PivotTable view.
134 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A pivot field corresponds to a cache field (section 2.2.5.3.5). A pivot field specifies display
information of the data in the PivotTable view (section 2.2.5.4).
A pivot field is specified by a sequence of records that conforms to the PIVOTVD rule (section
2.1.7.20.5) and optionally the PIVOTVDTEX (section 2.1.7.20.5) and SXADDLFIELD (section
2.1.7.20.5) rules. The PIVOTVDTEX rule specifies additional properties for OLAP PivotTable views
(section 2.2.5.4.2), and the SXADDLFIELD rule (section 2.1.7.20.5) specifies additional version
specific properties. A pivot field is contained in the PivotTable view. A PivotTable view contains a
collection of pivot fields which is specified by the sequence of records that conforms to the
PIVOTVIEW rule (section 2.1.7.20.5).
A pivot field index, which identifies a pivot field, is specified as the zero-based index of a PIVOTVD
rule in the collection specified by a PIVOTVIEW rule.
Each pivot field is associated with the cache field with a cache field index equal to the pivot field
index of this pivot field. For more details, see section 2.2.5.3.5. The number of pivot fields in the
sequence of records that conforms to a PIVOTCORE rule (section 2.1.7.20.5) MUST be equal to the
number of cache fields in the associated PivotCache (section 2.2.5.4.1) for the PivotTable view.
A PivotTable view is used to create a PivotTable report (section 2.2.5). This can include information
about pivot fields placed on PivotTable axes (section 2.2.5.4.9) and data items (section
2.2.5.4.9.5.1) referring to pivot fields.
A pivot field can have pivot items (section 2.2.5.4.4). A pivot field can describe information such
as pivot field sorting (section 2.2.5.4.3.1) and subtotaling (section 2.2.5.4.9.4.2) settings.
The following figure shows a PivotTable report with three pivot fields displaying Sales by Country and
Fiscal Year.
Figure 13: PivotTable report with three pivot fields: Sales, Country, and Fiscal Year
A Pivot Field (section 2.2.5.4.3) has a sort order specified if the PivotTable (section 2.2.5) is
recalculated and the Pivot Field (section 2.2.5.4.3) is on the row axis (section 2.2.5.4.9.2) or
column axis (section 2.2.5.4.9.3).
A Pivot Field is sorted depending on the setting of the fAutoSort field of SXVDEx (section 2.4.310).
If the fAutoSort field of SXVDEx is equal to 0, then the sort order is specified depending on the value
of the fTensorSort field of SXVDTEx record (section 2.4.311) of the Pivot Field.
fTensorSort field of
SXVDTEx Meaning
0 or SXVDTEx record not The order is determined by the order of the SXVI records (section 2.4.312) for
present this Pivot Field.
135 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fTensorSort field of
SXVDTEx Meaning
1 The order is determined by the OLAP data source. Only valid for an OLAP
PivotTable view (section 2.2.5.4.2).
If the fAutoSort field of SXVDEx is equal to 1, then sorting is in ascending or descending order
according to the fAscendSort field of SXVDEx. What is sorted depends on the following:
Not Present Greater than or Sorting is based on the values in the cells in the PivotTable
equal to 0 data area (section 2.2.5.4.10.1.4) that are specified by the
data item (section 2.2.5.4.9.5.1) referenced by the
isxdiAutoSort field of SXVDEx.
Not Present -1 Sorting is based on the values of the pivot items (section
2.2.5.4.4) themselves.
Pivot items represent specific instances of the entities represented by pivot fields (section
2.2.5.4.3). Each pivot item specifies its display properties. For example, it can contain the user
defined caption for the pivot item or information about whether this pivot item is hidden or not.
A pivot item specifies view properties of a cache item (section 2.2.5.3.6) or of an aggregation value
associated with a pivot fields (section 2.2.5.4.3).
A pivot item is specified by an SXVI record (section 2.4.312) in a sequence of records that conforms
to the PIVOTVD rule (section 2.1.7.20.5), and optionally an SXVIFlags structure (section 2.5.263)
specified by an element in the array specified by the rgsxvi field of the SXVDTEx record (section
2.4.311). The SXVIFlags structure (section 2.5.263) specifies additional properties for OLAP
PivotTable views (section 2.2.5.4.2).
If the itmType field of SXVI (section 2.4.312) is 0x0000, then this pivot item is associated with the
cache item (section 2.2.5.3.6) specified by the iCache field of the SXVI record (section 2.4.312).
Each pivot item that is associated with a cache item (section 2.2.5.3.6) MUST be associated with a
different cache item (section 2.2.5.3.6) than the other pivot items in the collection. If the itmType
field of this SXVI record (section 2.4.312) is not 0x0000, then this pivot item MUST NOT have an
associated cache item (section 2.2.5.3.6).
The number of pivot items where the itmType field of the SXVI record (section 2.4.312) of the
pivot item is 0x0000 MUST equal zero or the number of cache items (section 2.2.5.3.6) in the
cache field (section 2.2.5.3.5) of the pivot fields (section 2.2.5.4.3).
A pivot item can be referenced by a pivot item index. A pivot item index is a zero-based index of SXVI
records (section 2.4.312) in a PIVOTVD rule (section 2.1.7.20.5). Note that unlike pivot field index
and cache field index, pivot item index and cache item index are not necessarily equal.
136 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A pivot hierarchy is specified to be contained by a PivotTable axis (section 2.2.5.4.9) when all
pivot fields (section 2.2.5.4.3) associated with that pivot hierarchy are placed on that PivotTable
axis (section 2.2.5.4.9). Pivot fields (section 2.2.5.4.3) MUST NOT be placed on a PivotTable axis
(section 2.2.5.4.9) different from the pivot axis that any other pivot field (section 2.2.5.4.3)
associated with the same pivot hierarchy is placed on. Additional restrictions can apply, as specified by
the SXTH rule (section 2.1.7.20.5) and the PivotTable Axes section.
A pivot hierarchy corresponds to one of the following entities in the OLAP source data (section
2.2.5.3.2) associated with an OLAP PivotCache (section 2.2.5.3.4):
OLAP hierarchy
OLAP measure
A pivot hierarchy is associated with an OLAP hierarchy in the source data (section 2.2.5.3.2). A
pivot hierarchy is specified by the sequence of records that conform to the PIVOTTH rule (section
2.1.7.20.5) and, optionally, the SXADDLHIERARCHY rule (section 2.1.7.20.5).
Pivot hierarchies MUST NOT exist if the PivotTable view (section 2.2.5.4) is a non- OLAP
PivotTable views (section 2.2.5.4.2). At least one pivot hierarchy MUST exist if the PivotTable
view (section 2.2.5.4) is an OLAP PivotTable views (section 2.2.5.4.2).
A pivot hierarchy specifies OLAP hierarchy information and has one or more associated pivot fields
(section 2.2.5.4.3) associated with OLAP levels of the OLAP hierarchy, an OLAP named set, an OLAP
KPI, or an OLAP measure.
A pivot hierarchy can be referenced by pivot hierarchy index. A pivot hierarchy index is the zero-based
index of a PIVOTTH rule (section 2.1.7.20.5) in the associated PIVOTVIEW rule (section
2.1.7.20.5).
A pivot hierarchy is associated with an OLAP object as specified in the following table:
0 0 1 OLAP KPI
1 0 0 OLAP measure
2.2.5.4.5.1 Association of Pivot Hierarchies and Pivot Fields and Cache Fields
A pivot field (section 2.2.5.4.3) is associated with the pivot hierarchy (section 2.2.5.4.5) specified
by either the isxth field of the SXVDTEx record (section 2.4.311) of that pivot field (section
2.2.5.4.3), or the isxth field of the SXAddl_SXCField12_SXDISXTH record (section 2.4.273.31) of
that pivot field (section 2.2.5.4.3).
137 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A pivot hierarchy (section 2.2.5.4.5) associated with a pivot field (section 2.2.5.4.3) is associated
with the cache field (section 2.2.5.3.5) the pivot field (section 2.2.5.4.3) is associated.
If a pivot hierarchy (section 2.2.5.4.5) is on the page axis (section 2.2.5.4.9.1) or data axis
(section 2.2.5.4.9.5), the isxvd field of SXTH (section 2.4.308) is a reference to an associated pivot
field (section 2.2.5.4.3).
If the pivot hierarchy (section 2.2.5.4.5) is not a measure (section 2.2.5.4.5.2), named set
(section 2.2.5.4.5.4), KPI (section 2.2.5.4.5.3), there can be more than one pivot field (section
2.2.5.4.3) associated with it and each array elements in the rgisxvd field of SXTH (section 2.4.308)
is a reference to the associated pivot field (section 2.2.5.4.3) for the pivot hierarchy (section
2.2.5.4.5) level.
If a pivot hierarchy (section 2.2.5.4.5) is a measure (section 2.2.5.4.5.2), named set (section
2.2.5.4.5.4), or KPI (section 2.2.5.4.5.3), there can be no more than one pivot field (section
2.2.5.4.3) associated with it.
2.2.5.4.5.2 Measures
A measure pivot hierarchy is a pivot hierarchy that is associated with an OLAP measure. The
fMeasure field of the SXTH (section 2.4.308) specifies if a pivot hierarchy is a measure pivot
hierarchy. An OLAP measure MUST NOT have more than one cache field (section 2.2.5.3.5)
associated with it. A measure pivot hierarchy MUST NOT be located on the row axis (section
2.2.5.4.9.2), column axis (section 2.2.5.4.9.3), or page axis (section 2.2.5.4.9.1).
2.2.5.4.5.3 KPIs
A key performance indicator (KPI) pivot hierarchy (section 2.2.5.4.5) is a pivot hierarchy
(section 2.2.5.4.5) that is associated with an OLAP KPI. A KPI pivot hierarchy (section 2.2.5.4.5)
includes the four main components of an OLAP KPI; value, goal, status and trend. The fKPI field of
the SXTH record (section 2.4.308) specifies if a pivot hierarchy is a KPI pivot hierarchy (section
2.2.5.4.5).
A named set pivot hierarchy (section 2.2.5.4.5) is a pivot hierarchy (section 2.2.5.4.5) that is
associated with an OLAP named set. The fSet field of the SXTH record (section 2.4.308) specifies if
a pivot hierarchy (section 2.2.5.4.5) is a named set pivot hierarchy (section 2.2.5.4.5). An OLAP
named set MUST NOT have more than one cache field (section 2.2.5.3.5) associated with it. A
named set pivot hierarchy (section 2.2.5.4.5) MUST NOT be located on the data axis (section
2.2.5.4.9.5) or page axis (section 2.2.5.4.9.1).
A member property is associated with one OLAP member property of the OLAP hierarchy specified
by the pivot hierarchy (section 2.2.5.4.5) of the member property.
138 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A member property can be associated with a cache field (section 2.2.5.3.5) and a pivot field
(section 2.2.5.4.3). If there is a cache field (section 2.2.5.3.5) with an stFieldName field of the
SXFDB record equal to the stProperty field of the SXAddl_SXCHierarchy_SXDProperty record
(section 2.4.273.57), then this specifies that the member property is associated with that cache
field (section 2.2.5.3.5), and the cache field (section 2.2.5.3.5) is specified to be a member
property cache field (section 2.2.5.3.5). The associated pivot field (section 2.2.5.4.3) of a
member property cache field (section 2.2.5.3.5) is specified to be a member property pivot field
(section 2.2.5.4.3).
It is not required that a member property is associated with any cache field (section 2.2.5.3.5) or
pivot field (section 2.2.5.4.3). If there is no cache field (section 2.2.5.3.5) with a stFieldName
field of the SXFDB record (section 2.4.283) equal to the stProperty field of the
SXAddl_SXCHierarchy_SXDProperty record (section 2.4.273.57), then this specifies that the
member property is not associated with any cache field (section 2.2.5.3.5) or pivot field (section
2.2.5.4.3). Such a member property does not participate in the row axis (section 2.2.5.4.9.2) or
column axis (section 2.2.5.4.9.3).
A member property pivot field (section 2.2.5.4.3) can be shown only in the row area (section
2.2.5.4.10.1.1) or column area (section 2.2.5.4.10.1.2) of a PivotTable view (section 2.2.5.4). A
member property pivot field (section 2.2.5.4.3) can only be shown after the last visible level of the
corresponding pivot hierarchy (section 2.2.5.4.5). The order of member property fields shown in
the PivotTable view (section 2.2.5.4) is the same as the order of
SXAddl_SXCHierarchy_SXDProperty records (section 2.4.273.57) in the corresponding pivot
hierarchy (section 2.2.5.4.5).
A manual filter enables specific pivot items (section 2.2.5.4.4) or OLAP members associated with
pivot fields (section 2.2.5.4.3) to be shown or hidden in the PivotTable report (section 2.2.5).
Manual filtering affects calculations when pivot fields (section 2.2.5.4.3) that have manual filters
are located on the row axis (section 2.2.5.4.9.2), column axis (section 2.2.5.4.9.3), or page axis
(section 2.2.5.4.9.1). The pivot items (section 2.2.5.4.4) that are hidden for such pivot fields
(section 2.2.5.4.3) are not included when calculating values for the PivotTable view (section
2.2.5.4).
At least one SXVI record (section 2.4.312) following an Sxvd record (section 2.4.309) MUST have
the fHidden field equal to 0x0.
Details about manual filtering for pivot fields (section 2.2.5.4.3) on the page axis (section
2.2.5.4.9.1) are covered in the Page Axis section.
For non-OLAP PivotTable views (section 2.2.5.4.2), the state of the manual filter (section
2.2.5.4.7) on a pivot field (section 2.2.5.4.3) can be determined by the value of the fHidden field of
the SXVI records (section 2.4.312) directly following the corresponding Sxvd record (section
2.4.309). This field specifies whether the corresponding pivot items (section 2.2.5.4.4) is shown or
hidden in the PivotTable report (section 2.2.5).
For non-OLAP PivotTable (section 2.2.5) with PivotCache functionality level (section 2.2.5.3.1)
greater than or equal to 3, the fFilterInclusive field of the SXAddl_SXCField12_SXDVer12Info
record (section 2.4.273.33) specifies whether new pivot items (section 2.2.5.4.4) in the source
data (section 2.2.5.3.2) are shown or hidden by default when the PivotTable report (section 2.2.5)
is refreshed in addition to the pivot items (section 2.2.5.4.4) that are already shown in the
PivotTable report (section 2.2.5) as the result of an applied manual filter (section 2.2.5.4.7).
139 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
For OLAP PivotTable views (section 2.2.5.4.2), manual filtering (section 2.2.5.4.7) operates on
pivot hierarchies (section 2.2.5.4.5). OLAP manual filtering uses filtering lists to determine what
filtering to apply. The OLAP manual filtering operation depends on the PivotCache Functionality
Level (section 2.2.5.3.1) of the associated PivotCache (section 2.2.5.4.1) of the PivotTable view
(section 2.2.5.4).
The list of excluded OLAP members is specified by the rgHiddenMemberSets field of the SXTH
record (section 2.4.308). If the fFilterInclusive field of the SXTH record (section 2.4.308) of the
pivot hierarchy (section 2.2.5.4.5) is equal to 0x1, the list of excluded OLAP members MUST be
empty.
The selected pivot items (section 2.2.5.4.4) list is specified to be the list of pivot items (section
2.2.5.4.4), with the fOlapFilterSelected field of the SXVIFlags structure (section 2.5.263) that
corresponds to each pivot item (section 2.2.5.4.4) equal to 0x1, in the pivot fields (section
2.2.5.4.3) associated with the pivot hierarchy (section 2.2.5.4.5). If the PivotCache Functionality
Level (section 2.2.5.3.1) of the associated PivotCache (section 2.2.5.4.1) of the PivotTable view
(section 2.2.5.4) is less than 3, the selected pivot items (section 2.2.5.4.4) list MUST be empty.
If all of the lists of excluded OLAP members, included OLAP members and the selected pivot items
(section 2.2.5.4.4) are empty, then no manual filtering (section 2.2.5.4.7) is specified for the pivot
hierarchy (section 2.2.5.4.5). Otherwise, the value of the fFilterInclusive field of the SXTH record
(section 2.4.308) of the pivot hierarchy (section 2.2.5.4.5) determines how the lists are used.
If the fFilterInclusive field of the SXTH record (section 2.4.308) of the pivot hierarchy (section
2.2.5.4.5) is equal to 0x1, the members (2) of the included OLAP members list and their ascendants
and descendants are included in the manual filter (section 2.2.5.4.7). The pivot items (section
2.2.5.4.4) in the selected pivot items (section 2.2.5.4.4) list, and their ascendants and descendants
are also included in the manual filter (section 2.2.5.4.7). New OLAP members in the source data
(section 2.2.5.3.2) will be excluded by default when the PivotTable view (section 2.2.5.4) is
refreshed.
If the fFilterInclusive field of the SXTH record (section 2.4.308) of the pivot hierarchy (section
2.2.5.4.5) is equal to 0x0, the members (2) of the excluded OLAP members list and their descendants
are excluded in the manual filter (section 2.2.5.4.7). The pivot items (section 2.2.5.4.4) in the
selected pivot items (section 2.2.5.4.4) list and their descendants are also excluded in the manual
filter (section 2.2.5.4.7). New OLAP members in the source data (section 2.2.5.3.2) will be included
by default when the PivotTable view (section 2.2.5.4) is refreshed.
The filtering lists do not include OLAP members which are parent or child members of other OLAP
members in the lists.
Filtering by criteria is the ability to conditionally show pivot items (section 2.2.5.4.4) of pivot
fields (section 2.2.5.4.3) based on user-defined criteria. For example, a criteria filter might be
defined to show all products that sold for more than $30,000.
An advanced filter specifies a user-defined criterion that is used to determine the pivot items
(section 2.2.5.4.4) of a pivot field (section 2.2.5.4.3) that are included when calculating values for
140 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
the PivotTable view (section 2.2.5.4) and that are displayed in the PivotTable report (section
2.2.5).
Only advanced filters that are associated with pivot fields (section 2.2.5.4.3) that are located on
the row axis (section 2.2.5.4.9.2) or the column axis (section 2.2.5.4.9.3) are applied when the
PivotTable view (section 2.2.5.4) is calculated.
An advanced filter is specified by the SXCSXFilter12 class section. The isxvd field of the
SXAddl_SXCSXFilter12_SXDSXFilter record (section 2.4.273.82) specifies the pivot field (section
2.2.5.4.3) associated with the advanced filter.
Advanced filters MUST NOT be applied to pivot fields (section 2.2.5.4.3) of a PivotTable view
(section 2.2.5.4) if the PivotCache functionality level (section 2.2.5.3.1) of the associated
PivotCache (section 2.2.5.4.1) is less than 3. Advanced filters MUST NOT be applied to an OLAP
PivotTable view (section 2.2.5.4.2) with a value of 0 for the fSrvSupportSubquery field of the
SXAddl_SXCCache_SXDInfo12 record (section 2.4.273.7) of the associated PivotCache (section
2.2.5.4.1).
There are three types of advanced filters: label filter (section 2.2.5.4.8.1.1), date filter (section
2.2.5.4.8.1.2), and value filter (section 2.2.5.4.8.1.3).
A pivot field (section 2.2.5.4.3) MUST NOT have more than one associated advanced filter of the
same type.
A label filter specifies a criterion that is applied to pivot item (section 2.2.5.4.4) captions to
determine which pivot items (section 2.2.5.4.4) are included in the calculation of values for the
PivotTable view (section 2.2.5.4) and displayed in the PivotTable report (section 2.2.5).
Label filters are applied before any value filters (section 2.2.5.4.8.1.3), but the order of label
filters is not specified.
If a caption is specified, the label filter is applied to the stName field in the SXVI records (section
2.4.312) associated with the pivot items (section 2.2.5.4.4). If captions are not specified for the
pivot items (section 2.2.5.4.4), the label filter is applied to the values of the cache items (section
2.2.5.3.6) associated with these pivot items (section 2.2.5.4.4).
A label filter can be applied to member properties (section 2.2.5.4.6). The isxvdMProp field of the
SXAddl_SXCSXFilter12_SXDSXFilter record (section 2.4.273.82) specifies the member property
(section 2.2.5.4.6) on which this label filter is applied.
A date filter specifies a criterion that is applied to date type pivot items (section 2.2.5.4.4) of a
pivot field (section 2.2.5.4.3). A date filter determines which pivot items (section 2.2.5.4.4) are
included in the calculation of the PivotTable view (section 2.2.5.4) and are displayed in the
PivotTable view (section 2.2.5.4) report.
For non-OLAP PivotTable views (section 2.2.5.4.2), a date filter can be applied if and only if the
SXFDB record (section 2.4.283) associated with the corresponding pivot field (section 2.2.5.4.3)
has the fDateInField field equal to 0x1, and the fNonDates field is equal to 0. For OLAP PivotTable
views (section 2.2.5.4.2), a date filter can be applied if the fTimeHierarchy field of the SXTH
record (section 2.4.308) that specifies the pivot hierarchy (section 2.2.5.4.5) is equal to 1.
141 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Date filters are applied before value filters (section 2.2.5.4.8.1.3) and in no specific order.
A value filter specifies a criterion that is applied to values of a data item (section 2.2.5.4.9.5.1) for
pivot items (section 2.2.5.4.4) of the pivot field (section 2.2.5.4.3) that the value filter is applied
to. The value filter determines which pivot items (section 2.2.5.4.4) are included when calculating
values for the PivotTable view (section 2.2.5.4) and displayed in the PivotTable view (section
2.2.5.4) report.
Value filters are applied after manual filters (section 2.2.5.4.7), date filters (section
2.2.5.4.8.1.2) and label filters (section 2.2.5.4.8.1.1) are applied. Value filters are applied in the
order in which they are specified in the SXCSXFilter12 class section. Value filtering takes previous
filtering into account when evaluating filters.
A simple filter is a top N filter which is also known as AutoShow. The fAutoShow field of the
SXVDEx record (section 2.4.310) specifies whether a simple filter is applied for a pivot field
(section 2.2.5.4.3). The fTopAutoShow field of the SXVDEx record (section 2.4.310) specifies
whether a simple filter applies to the top or bottom n items. The citmAutoShow field of the
SXVDEx record (section 2.4.310) specifies the number of pivot items (section 2.2.5.4.4) displayed.
Simple filters MUST only be applied to pivot fields (section 2.2.5.4.3) of a PivotTable view
(section 2.2.5.4) with data functionality level (section 2.2.5.2) less than or equal to 2, or to pivot
fields (section 2.2.5.4.3) of an OLAP PivotTable views (section 2.2.5.4.2) with the
fSrvSupportSubquery field of the SXAddl_SXCCache_SXDInfo12 record (section 2.4.273.7) of
the corresponding PivotCache (section 2.2.5.3) equal to zero.
A PivotTable axis is the set of pivot fields (section 2.2.5.4.3) or pivot hierarchies (section
2.2.5.4.5) in a PivotTable view (section 2.2.5.4) used to populate an area of the PivotTable report
(section 2.2.5). The placement and positions of pivot fields (section 2.2.5.4.3) on the axes are used
to determine the PivotTable Layout (section 2.2.5.4.10). The four axes of a PivotTable view
(section 2.2.5.4) are the page axis (section 2.2.5.4.9.1), the row axis (section 2.2.5.4.9.2), the
column axis (section 2.2.5.4.9.3), and the data axis (section 2.2.5.4.9.5). For non- OLAP
PivotTable views (section 2.2.5.4.2), a pivot field (section 2.2.5.4.3) MUST NOT appear more than
once on the PivotTable view (section 2.2.5.4), with the exception of the data axis (section
2.2.5.4.9.5). For non-OLAP PivotTable views (section 2.2.5.4.2), a pivot field (section 2.2.5.4.3)
can be placed one or more times on the data axis (section 2.2.5.4.9.5) independently of whether it
was placed on any other axis. For OLAP PivotTable views (section 2.2.5.4.2), a pivot field (section
2.2.5.4.3) MUST NOT be placed more than once on any axis. For both OLAP and non-OLAP
PivotTable views (section 2.2.5.4.2), pivot fields (section 2.2.5.4.3) do not have to be placed on
any PivotTable axis.
The page axis contains the pivot fields (section 2.2.5.4.3) or pivot hierarchies (section 2.2.5.4.5)
that populate the page area (section 2.2.5.4.10.1.3) of the PivotTable report (section 2.2.5), as
specified by PivotTable Layout (section 2.2.5.4.10), and that are intended for use as filters. These
pivot fields (section 2.2.5.4.3) and pivot hierarchies (section 2.2.5.4.5) do not affect the layout of
the other areas of the PivotTable report (section 2.2.5), but rather filter the data used by the entire
PivotTable view (section 2.2.5.4.2).
142 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The page axis is specified by the sequence of records that conform to the PIVOTPI rule (section
2.1.7.20.5) and optionally by the collection of SXPIEx records (section 2.4.299) in the sequence of
records that conform to the PIVOTVIEWEX rule (section 2.1.7.20.5). For non-OLAP PivotTable
views (section 2.2.5.4.2), the SXPI_Item structure (section 2.5.260) specified by each array
element of the rgsxpi field of the SXPI record (section 2.4.298) specifies one pivot field (section
2.2.5.4.3) on the page axis. For OLAP PivotTable views (section 2.2.5.4.2), each SXPIEx record
(section 2.4.299) specifies one pivot hierarchy (section 2.2.5.4.5) on the page axis. The order of
the pivot fields (section 2.2.5.4.3) and pivot hierarchies (section 2.2.5.4.5) in these collections for
the non-OLAP and OLAP cases specifies the order in which the pivot fields (section 2.2.5.4.3) and
pivot hierarchies (section 2.2.5.4.5) appear on the page axis.
For non-OLAP PivotTable views (section 2.2.5.4.2), the isxvd field of the SXPI_Item structure
(section 2.5.260) specifies the associated pivot field (section 2.2.5.4.3). For OLAP PivotTable
views (section 2.2.5.4.2), the isxth field of the SXPIEx record (section 2.4.299) specifies the
associated pivot hierarchy (section 2.2.5.4.5).
A non-OLAP PivotTable view (section 2.2.5.4.2) can be filtered to not include some pivot items
(section 2.2.5.4.4) from the pivot fields (section 2.2.5.4.3) on the page axis (section 2.2.5.4.9.1).
The PivotTable report (section 2.2.5) only includes values specified by cache items (section
2.2.5.3.6) that are associated with pivot items (section 2.2.5.4.4) that are filtered in.
The following table specifies how the filtering of pivot items (section 2.2.5.4.4) of a pivot field
(section 2.2.5.4.3) is specified.
In the following table, the first column is the value of the rgsxpi.isxvi field of the SXPI record
(section 2.4.298), and the second column is the value of the fSubtotalHiddenPageItems field of the
SXEx record (section 2.4.282).
Value of
Value of fSubtotalHiddenP
rgsxpi.isxvi ageItems Filtering Behavior
Not 0x7FFD Any Specifies that the rgsxpi.isxvi field of the SXPI record (section
2.4.298) specifies a pivot item (section 2.2.5.4.4) index, as
specified by the Pivot Items section, of the one pivot item
(section 2.2.5.4.4) of a pivot field (section 2.2.5.4.3) that is
filtered in.
0x7FFD 0 Specifies that pivot items (section 2.2.5.4.4) are filtered in if
and only if the fHidden field of the corresponding SXVI records
(section 2.4.312) is equal to 0. However, all pivot items (section
2.2.5.4.4) are factored into the subtotal.
0x7FFD 1 Specifies that pivot items (section 2.2.5.4.4) are filtered in if
and only if the fHidden field of the corresponding SXVI records
(section 2.4.312) is equal to zero. Only pivot items (section
2.2.5.4.4) that are filtered in are factored into the subtotal.
In an OLAP PivotTable views (section 2.2.5.4.2) the filtering on the page axis (section 2.2.5.4.9.1)
is specified using the pivot hierarchy (section 2.2.5.4.5) that the pivot field (section 2.2.5.4.3) is
associated with, as specified in the Association of Pivot Hierarchies and Pivot Fields and Cache Fields
section.
If the value of the fEnableMultiplePageItems field of the SXTH record (section 2.4.308) of the
pivot hierarchy (section 2.2.5.4.5) is 0, the stUnique field of the SXPIEx record (section 2.4.299)
specifies an OLAP member to filter by.
143 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If the value of the fEnableMultiplePageItems field of the SXTH record (section 2.4.308) of the
pivot hierarchy (section 2.2.5.4.5) is 1, then the specification depends on the PivotCache
Functionality Level (section 2.2.5.3.1) of the associated PivotCache (section 2.2.5.4.1) of the
PivotTable view (section 2.2.5.4), as specified in the following table:
Greater than or equal to 3 Specifies that the filtering is applied as specified by Manual
Filters (section 2.2.5.4.7) and OLAP Manual Filters (section
2.2.5.4.7.2) for this pivot hierarchy (section 2.2.5.4.5).
The row axis contains the pivot fields (section 2.2.5.4.3) and an optional data field (section
2.2.5.4.9.5.2) used to populate the row area (section 2.2.5.4.10.1.1) of the PivotTable report
(section 2.2.5), as specified by the PivotTable Layout section.
The pivot fields (section 2.2.5.4.3) on the row axis are specified by the first SxIvd record (section
2.4.292) in the sequence of records that conform to the PIVOTCORE rule (section 2.1.7.20.5) as
defined by the Worksheet Substream ABNF, which specifies an array of SxIvdRw structures
(section 2.5.258). The order that the pivot fields (section 2.2.5.4.3) and the optional data field
(section 2.2.5.4.9.5.2) are referenced from the SxIvd record (section 2.4.292) specifies the order
that the pivot fields (section 2.2.5.4.3) and the optional data field (section 2.2.5.4.9.5.2) display on
the row axis. The order that the pivot fields (section 2.2.5.4.3) and the optional data field (section
2.2.5.4.9.5.2) display on the row axis corresponds to the order that the pivot fields (section
2.2.5.4.3) and the optional data field (section 2.2.5.4.9.5.2) are placed in the row area (section
2.2.5.4.10.1.1) of the PivotTable report (section 2.2.5).
For adjacent SxIvdRw structures (section 2.5.258) in the rgSxivd field of the SxIvd record
(section 2.4.292), the pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) that the
first SxIvdRw references (section 2.5.258) is defined to be an outer field with respect to the pivot
field (section 2.2.5.4.3) or the data field (section 2.2.5.4.9.5.2) that the second SxIvdRw
references (section 2.5.258). The pivot field (section 2.2.5.4.3) or data field (section
2.2.5.4.9.5.2) that the second SxIvdRw references (section 2.5.258) is defined to be an inner field
with respect to the pivot field (section 2.2.5.4.3) or the data field (section 2.2.5.4.9.5.2) that the
first SxIvdRw references (section 2.5.258).
For OLAP PivotTables (section 2.2.5), all SxIvdRw records (section 2.5.258) in the rgSxivd field
of the SxIvd record (section 2.4.292) that reference pivot fields (section 2.2.5.4.3) that are
associated with the same pivot hierarchy (section 2.2.5.4.5) MUST be adjacent. Pivot fields
(section 2.2.5.4.3) associated with member properties (section 2.2.5.4.6) of the pivot hierarchy
(section 2.2.5.4.5) MUST be located on the row axis after other types of pivot fields (section
2.2.5.4.3) associated with the same pivot hierarchy (section 2.2.5.4.5). Pivot fields (section
2.2.5.4.3) not associated with member properties (section 2.2.5.4.6) of the pivot hierarchy
(section 2.2.5.4.5) MUST appear on the row axis in an order such that the zero-based ordinal of the
OLAP level of each pivot field (section 2.2.5.4.3) associated with the same pivot hierarchy
(section 2.2.5.4.5) is ascending. The zero-based ordinal of the OLAP level of a pivot field (section
2.2.5.4.3) is specified by the isxtl field of the SXVDTEx record (section 2.4.311).
For OLAP PivotTables (section 2.2.5), the SXTH record (section 2.4.308) specifies information about
a pivot hierarchy (section 2.2.5.4.5), including which axis the pivot hierarchy (section 2.2.5.4.5) is
on.
144 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.4.9.3 Column Axis
The column axis contains the pivot fields (section 2.2.5.4.3) and an optional data field (section
2.2.5.4.9.5.2) used to populate the column area (section 2.2.5.4.10.1.2) of the PivotTable report
(section 2.2.5), as specified by the PivotTable Layout section.
The pivot fields (section 2.2.5.4.3) on the row axis are specified by the second SxIvd record
(section 2.4.292) in the sequence of records that conform to the PIVOTCORE rule (section
2.1.7.20.5) as defined by the Worksheet Substream ABNF, which specifies an array of SxIvdCol
structures (section 2.5.257).
The order that the pivot fields (section 2.2.5.4.3) and the optional data field (section 2.2.5.4.9.5.2)
are referenced from the SxIvd record (section 2.4.292) specifies the order that the pivot fields
(section 2.2.5.4.3) and the optional data field (section 2.2.5.4.9.5.2) display on the column axis. The
order that the pivot fields (section 2.2.5.4.3) and the optional data field (section 2.2.5.4.9.5.2)
display on the column axis corresponds to the order that the pivot fields (section 2.2.5.4.3) and the
optional data field (section 2.2.5.4.9.5.2) are placed in the column area (section 2.2.5.4.10.1.2) of
the PivotTable report (section 2.2.5).
For adjacent SxIvdCol structures (section 2.5.257) in the rgSxivd field of the SxIvd record
(section 2.4.292), the pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) that the
first SxIvdCol references (section 2.5.257)is defined to be an outer field with respect to the pivot
field (section 2.2.5.4.3) or the data field (section 2.2.5.4.9.5.2) that the second SxIvdCol
references (section 2.5.257). The pivot field (section 2.2.5.4.3) or data field (section
2.2.5.4.9.5.2) that the second SxIvdCol references (section 2.5.257) is defined to be an inner field
with respect to the pivot field (section 2.2.5.4.3) or the data field (section 2.2.5.4.9.5.2) that the
first SxIvdCol references (section 2.5.257).
For OLAP PivotTables (section 2.2.5), all SxIvdCol structures (section 2.5.257) in the rgSxivd
field of the SxIvd record (section 2.4.292) that reference pivot fields (section 2.2.5.4.3) that are
associated with the same pivot hierarchy (section 2.2.5.4.5) MUST be adjacent. Pivot fields
(section 2.2.5.4.3) associated with member properties (section 2.2.5.4.6) of the pivot hierarchy
(section 2.2.5.4.5) MUST be located on the column axis after other types of pivot fields (section
2.2.5.4.3) associated with the same pivot hierarchy (section 2.2.5.4.5). Pivot fields (section
2.2.5.4.3) not associated with member properties (section 2.2.5.4.6) of the pivot hierarchy
(section 2.2.5.4.5) MUST appear on the column axis in an order such that the zero-based ordinal of
the OLAP level of each pivot field (section 2.2.5.4.3) associated with the same pivot hierarchy
(section 2.2.5.4.5) is ascending. The zero-based ordinal of the OLAP level of a pivot field (section
2.2.5.4.3) is specified by the isxtl field of the SXVDTEx record (section 2.4.311).
For OLAP PivotTables (section 2.2.5), the SXTH record (section 2.4.308) specifies information about
a pivot hierarchy (section 2.2.5.4.5), including which axis the pivot hierarchy (section 2.2.5.4.5) is
on.
2.2.5.4.9.4 Nesting
This section applies to both the row axis (section 2.2.5.4.9.2) and column axis (section 2.2.5.4.9.3)
unless otherwise specified. Within this section, axis means the row axis (section 2.2.5.4.9.2) or the
column axis (section 2.2.5.4.9.3) as appropriate; fields means pivot fields (section 2.2.5.4.3), the
data field (section 2.2.5.4.9.5.2), or both on the axis; area means the in row area (section
2.2.5.4.10.1.1) and column area (section 2.2.5.4.10.1.2) as appropriate; items means pivot items
(section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1) as appropriate.
The axes specify an order that the fields are represented in the areas, see the PivotTable layout
section for more information about the areas. Pivot lines (section 2.2.5.4.10.3) within the areas have
references to items. Usually a pivot line (section 2.2.5.4.10.3) including an item of an outer field only
includes items in the inner fields that exist with the item of the outer field in the source data (section
145 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.3.2), subject to the filtering on the PivotTable view. Usually all the instances of an item in the
area are grouped together, with grouping on the outer fields taking precedence over grouping on the
inner fields. This process is called nesting.
A nested item group is specified to be the contiguous set of pivot lines (section 2.2.5.4.10.3) that
have the same item in an outer field.
The following example shows nested item groups for Country, State and City.
The first two lines are a nested item group for Illinois. The next two lines are a nested item group for
Louisiana. The first four lines are a nested item group for USA. The last line is both a nested item
group for Jalisco and Mexico. Note that often in a PivotTable report (section 2.2.5) the repeated
item labels will be omitted.
For an OLAP PivotTable view (section 2.2.5.4.2), nesting can be the result of either:
Items in the inner field that are in a different pivot hierarchy (section 2.2.5.4.5), or,
Items in an inner pivot field that is associated with the same pivot hierarchy (section 2.2.5.4.5)
and that are child OLAP members.
2.2.5.4.9.4.1 Collapsing
Settings in the file format can specify that a pivot item (section 2.2.5.4.4) of an outer pivot field
(section 2.2.5.4.3), rather than having inner nested pivot items (section 2.2.5.4.4) of inner pivot
fields (section 2.2.5.4.3), is collapsed. Usually when a pivot item (section 2.2.5.4.4) on an outer
pivot field (section 2.2.5.4.3) is collapsed, it does not have a nested pivot item (section 2.2.5.4.4)
group and when it appears in a pivot line (section 2.2.5.4.10.3), the pivot items (section 2.2.5.4.4)
of the inner pivot fields (section 2.2.5.4.3) for the collapsed pivot item (section 2.2.5.4.4) do not
appear in the pivot line (section 2.2.5.4.10.3).
If Illinois and Mexico were collapsed in the preceding table, the result might look like the following
table.
For a non-OLAP PivotTable view (section 2.2.5.4.2), the collapsed state is specified by the
fHideDetail field of the SXVI record (section 2.4.312).
For an OLAP PivotTable views(section 2.2.5.4.2), there are two types of collapsing: child
collapsing and attribute hierarchy collapsing.
146 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Child collapsing is when the child pivot items (section 2.2.5.4.4), corresponding to child OLAP
members, of a pivot item (section 2.2.5.4.4) corresponding to a parent OLAP member in an OLAP
hierarchy are not shown.
If a pivot field (section 2.2.5.4.3) is the first pivot field (section 2.2.5.4.3) of the pivot hierarchy
(section 2.2.5.4.5) on the axis then the fDrilledLevel field of the SXVDTEx record (section 2.4.311)
pivot field (section 2.2.5.4.3) MUST be 1.
If a pivot field (section 2.2.5.4.3) is not the first pivot field (section 2.2.5.4.3) of the pivot
hierarchy (section 2.2.5.4.5) on the axis and if the fDrilledLevel field of the SXVDTEx record
(section 2.4.311)of the pivot field (section 2.2.5.4.3) is 1, then there is no child collapsing for the
preceding pivot field (section 2.2.5.4.3) of the pivot hierarchy (section 2.2.5.4.5) on the axis and
the fDrilledMember field of the SXVIFlags structure (section 2.5.263) for the pivot items (section
2.2.5.4.4) of the preceding pivot field (section 2.2.5.4.3) of the pivot hierarchy (section 2.2.5.4.5)
on the axis MUST be 0. If a pivot field (section 2.2.5.4.3) is followed by another pivot field (section
2.2.5.4.3) of the same pivot hierarchy (section 2.2.5.4.5) on the axis, and the fDrilledLevel field of
the SXVDTEx record (section 2.4.311) of the inner pivot field (section 2.2.5.4.3) is equal to 0 and
the fDrilledMember field of the SXVIFlags structure (section 2.5.263) of the pivot item (section
2.2.5.4.4) of the outer pivot field (section 2.2.5.4.3) is 0, then the pivot item (section 2.2.5.4.4)
associated with the SXVIFlags structure (section 2.5.263) is collapsed using child collapsing.
Attribute hierarchy collapsing only occurs when a pivot field (section 2.2.5.4.3) is associated with a
pivot hierarchy (section 2.2.5.4.5) that is an attribute hierarchy and the pivot field (section
2.2.5.4.3) immediately following that outer pivot field (section 2.2.5.4.3) is associated with a
different pivot hierarchy (section 2.2.5.4.5) that is an attribute hierarchy. In that case, if a pivot
item (section 2.2.5.4.4) is attribute hierarchy collapsed, pivot items (section 2.2.5.4.4),
corresponding to OLAP members, will not be shown for the inner pivot field (section 2.2.5.4.3). The
attribute hierarchy collapsed state of a pivot item (section 2.2.5.4.4) is specified by the
fCollapsedMember flag of the SXVIFlags structure (section 2.5.263). The
fItemsDrilledByDefault flag of the SXVDTEx record (section 2.4.311) provides a default value for
pivot items (section 2.2.5.4.4) in the pivot field (section 2.2.5.4.3).
For an OLAP PivotTable view (section 2.2.5.4.2), there can be pivot items (section 2.2.5.4.4) for
an inner pivot field (section 2.2.5.4.3) on the pivot line (section 2.2.5.4.10.3) if either the outer
pivot field (section 2.2.5.4.3) is collapsed and the inner pivot field (section 2.2.5.4.3) and outer
pivot field (section 2.2.5.4.3) are in different pivot hierarchies (section 2.2.5.4.5) and attribute
hierarchy collapsing is not being used or if the pivot items (section 2.2.5.4.4) are member
properties (section 2.2.5.4.6).
2.2.5.4.9.4.2 Subtotalling
A nested item group, as specified in the Nesting section, can have summaries of the values for the
items in the nested item group, called subtotals. A subtotal is typically an aggregation such as a sum,
count or average of the values of the items.
The creation of subtotals is specified by the fDefault, fSum, fCounta, fAverage, fMax, fMin,
fProduct, fCount, fStdev, fStdevp, fVariance and fVariancep fields of the Sxvd record (section
2.4.309) of the pivot field (section 2.2.5.4.3). If none of the fields are equal to 1, then no subtotals
exist for the pivot field (section 2.2.5.4.3). If the fDefault field is equal to 1 the subtotal calculation
for each item is done according to the aggregation functions of the data items (section
2.2.5.4.9.5.1) on the data axis (section 2.2.5.4.9.5), as specified by the iiftab field of the SXDI
record (section 2.4.278) for each data item (section 2.2.5.4.9.5.1).
For example, the subtotal is calculated as the sum of the relevant values of the nested item group for
a data item (section 2.2.5.4.9.5.1) with a sum aggregation function and subtotal is calculated as the
average of the relevant values of the nested item group for a data item (section 2.2.5.4.9.5.1) with
an average aggregation function.
147 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The other subtotal fields are called custom subtotals because they override the data item (section
2.2.5.4.9.5.1) aggregation function when calculating subtotals.
In some cases, such as for certain OLAP PivotTable views (section 2.2.5.4.2), the source data
(section 2.2.5.3.2) is not able to provide a requested subtotal.
The fOutline field of the SXVDEx record (section 2.4.310) specifies that an extra pivot line (section
2.2.5.4.10.3) is added at the logical top of the nested item groups if the pivot field (section
2.2.5.4.3) is on the row axis (section 2.2.5.4.9.2). This pivot line (section 2.2.5.4.10.3) contains
the item and any items of member properties (section 2.2.5.4.6) pivot fields (section 2.2.5.4.3), if
they are shown, but no other items for inner pivot fields (section 2.2.5.4.3) of this pivot field
(section 2.2.5.4.3).
If the fDefault field of the Sxvd record (section 2.4.309) of the pivot field (section 2.2.5.4.3) is
equal to 1, the fOutline field of the SXVDEx record (section 2.4.310) of the pivot field (section
2.2.5.4.3) is equal to 1, the pivot field (section 2.2.5.4.3) is on the row axis (section 2.2.5.4.9.2),
and the data field (section 2.2.5.4.9.5.2) is not placed inner of the pivot field (section 2.2.5.4.3) on
the row axis (section 2.2.5.4.9.2), then the following is specified for the fSubtotalAtTop field of the
SXVDEx record (section 2.4.310) of the pivot field (section 2.2.5.4.3):
Value of
fSubtotalAtTop Meaning
0x0 Specifies that subtotal pivot lines (section 2.2.5.4.10.3) are added at the bottom of
the nested item groups. See the subName.stSubName field of the SXVDEx record
(section 2.4.310) for details of the label used.
0x1 Specifies that the pivot lines (section 2.2.5.4.10.3) added as specified by the
fOutline flag of the SXVDEx record (section 2.4.310) being equal to 1 are used for
displaying the subtotals in the data area (section 2.2.5.4.10.1.4).
In the following figure, the Category, Subcategory, and Product columns represent pivot fields
(section 2.2.5.4.3) on the row axis (section 2.2.5.4.9.2) and the Color column represents a member
properties (section 2.2.5.4.6) pivot field (section 2.2.5.4.3) associated with the Product pivot field
(section 2.2.5.4.3). Subtotals are displayed at the logical top of the nested item groups for Clothing,
Caps, and Gloves.
Figure 14: PivotTable report with Category and Subcategory pivot fields with fOutline and
fSubtotalAtTop fields of the SXVDEx record equal to 1
148 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.4.9.5 Data Axis
The data axis contains the pivot field (section 2.2.5.4.3) values that are used to populate the data
area (section 2.2.5.4.10.1.4) of the PivotTable report (section 2.2.5) as specified by the PivotTable
Layout section. The data axis also specifies additional information related to summarizing and
presenting the values as specified by the Data Items section. The data axis is specified by the
collection of SXDI records (section 2.4.278) that conform to the PIVOTCORE rule (section
2.1.7.20.5) as defined by the Worksheet Substream ABNF.
A data item is a pivot field (section 2.2.5.4.3) placed on the data axis (section 2.2.5.4.9.5). Each
data item is specified by an SXDI record (section 2.4.278).
The isxvdData field of the SXDI record (section 2.4.278) specifies a reference to the pivot field
(section 2.2.5.4.3) that is associated with a data item. It also specifies additional information that is
used to produce or present summarized values.
A data item can be referenced by a data item index, which is the zero-based index of an SXDI
record (section 2.4.278) in the sequence of records that conforms to the PIVOTCORE rule (section
2.1.7.20.5) as defined by the Worksheet Substream ABNF.
The data field is a conceptual field that represents all data items (section 2.2.5.4.9.5.1) and enables
them to be referenced as a single object. The data field is intended to enable all data items (section
2.2.5.4.9.5.1) to be placed on the row axis (section 2.2.5.4.9.2) or column axis (section
2.2.5.4.9.3).
If the PivotTable view (section 2.2.5.4) has more than one data item (section 2.2.5.4.9.5.1), then
the data field MUST be located on either the row axis (section 2.2.5.4.9.2) as specified by the
rgSxivd field of the first SxIvd record (section 2.4.292), or the column axis (section 2.2.5.4.9.3)
as specified by the rgSxivd field of the second SxIvd record (section 2.4.292).
The PivotTable report (section 2.2.5) in the sheet (2) has four main areas: the row area (section
2.2.5.4.10.1.1), the column area (section 2.2.5.4.10.1.2), the data area (section 2.2.5.4.10.1.4),
and the page area (section 2.2.5.4.10.1.3).
149 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 15: PivotTable report illustrating the four different areas
All the records described here MUST exist in the same worksheet substream (section 2.1.7.20.5).
The column area (section 2.2.5.4.10.1.2) is located immediately above the data area (section
2.2.5.4.10.1.4). The cell in the column area (section 2.2.5.4.10.1.2) containing the pivot item
(section 2.2.5.4.4) caption or data item (section 2.2.5.4.9.5.1) caption to the farthest logical left is
in the same column as the logical top-left cell of the data area (section 2.2.5.4.10.1.4).
The row area (section 2.2.5.4.10.1.1) is located immediately to the logical left of the data area
(section 2.2.5.4.10.1.4). The cell in the row area (section 2.2.5.4.10.1.1) containing the top-most
pivot item (section 2.2.5.4.4) caption or data item (section 2.2.5.4.9.5.1) caption is in the same row
as the logical top-left cell of the data area (section 2.2.5.4.10.1.4).
The PivotTable report (section 2.2.5) body is the rectangular area defined by the union of the row
area (section 2.2.5.4.10.1.1), column area (section 2.2.5.4.10.1.2), and data area (section
2.2.5.4.10.1.4).
The page area (section 2.2.5.4.10.1.3), if it is not empty, is located above the PivotTable report
(section 2.2.5) body. There is one row between the top-most cell of the PivotTable report (section
2.2.5) body and the bottom-most cell of the page area (section 2.2.5.4.10.1.3).
The PivotTable report (section 2.2.5) is a non-contiguous range containing the union of the
PivotTable report (section 2.2.5) body and the page area (section 2.2.5.4.10.1.3).
An SxView record and the SXEx record (section 2.4.282) specify details about the location of the
PivotTable report (section 2.2.5) in the sheet and the sizes of the areas of the PivotTable report
(section 2.2.5) as specified by the following. All fields are of the SxView record (section 2.4.313)
unless otherwise specified.
The column area (section 2.2.5.4.10.1.2) of the PivotTable report (section 2.2.5) is specified to be
the following range of cells:
If colFirstData is greater than ref.colLast, the column area (section 2.2.5.4.10.1.2) does not exist
for this PivotTable report (section 2.2.5).
The row area (section 2.2.5.4.10.1.1) of the PivotTable report (section 2.2.5) is specified to be the
following range of cells:
150 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Row Area Row or Column Index
If colFirstData – 1 is less than rfxGeom.colFirstData, the row area (section 2.2.5.4.10.1.1) does
not exist for this PivotTable report (section 2.2.5).
The data area (section 2.2.5.4.10.1.4) of the PivotTable report (section 2.2.5) is specified to be the
following range of cells:
If the row area (section 2.2.5.4.10.1.1) or the column area (section 2.2.5.4.10.1.2) does not exist
for this PivotTable report (section 2.2.5), the data area (section 2.2.5.4.10.1.4) does not exist for
this PivotTable report (section 2.2.5).
The page area (section 2.2.5.4.10.1.3) of the PivotTable report (section 2.2.5) is specified to be
the following range of cells. The cRwPage field and the cColPage field are of the SXEx record
(section 2.4.282):
If the cRwPage field of the SXEx record (section 2.4.282) is equal to 0 and the fNewDropZones
field of the SXAddl_SXCView_SXDVer12Info record (section 2.4.273.109) is equal to 1 the page
area (section 2.2.5.4.10.1.3) does not exist for this PivotTable report (section 2.2.5).
If the cRwPage field is equal to 0 and the fNewDropZones field is equal to 0, then the page area
(section 2.2.5.4.10.1.3) of the PivotTable report (section 2.2.5) is specified to be the following
range of cells:
151 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Page Area Row or Column Index
The row area contains pivot fields (section 2.2.5.4.3), the optional data field (section
2.2.5.4.9.5.2), or both that are placed on the row axis (section 2.2.5.4.9.2), along with associated
pivot items (section 2.2.5.4.4) and data items (section 2.2.5.4.9.5.1). The first row of the row
area can contain pivot field (section 2.2.5.4.3) captions, data field (section 2.2.5.4.9.5.2) captions,
or both as specified by the fNoHeaders field of the SXAddl_SXCView_SXDVer12Info record
(section 2.4.273.109). If the fNoHeaders field of the SXAddl_SXCView_SXDVer12Info record
(section 2.4.273.109) is equal to 0 or the SXAddl_SXCView_SXDVer12Info record (section
2.4.273.109) is not present, the pivot field (section 2.2.5.4.3) and data field (section 2.2.5.4.9.5.2)
captions are located above their pivot items (section 2.2.5.4.4) or data items (section
2.2.5.4.9.5.1).
Pivot items (section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1) of the pivot field (section
2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) that has a position of 0 on the row axis (section
2.2.5.4.9.2) are placed in the first column of the row area. For every other pivot field (section
2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) on the row axis (section 2.2.5.4.9.2), placement of
pivot items (section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1) are calculated as follows:
If the previous pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) is not in
compact axis mode, then pivot items (section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1)
of the current pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) are placed in
the next column of the row area. Pivot items (section 2.2.5.4.4) or data items (section
2.2.5.4.9.5.1) are grouped by the parent pivot item (section 2.2.5.4.4) or data item (section
2.2.5.4.9.5.1), which is the pivot item (section 2.2.5.4.4) or data item (section 2.2.5.4.9.5.1)
on the immediate logical left. To achieve this, pivot items (section 2.2.5.4.4) or data items
(section 2.2.5.4.9.5.1) of the parent pivot field (section 2.2.5.4.3) or data field (section
2.2.5.4.9.5.2) can be repeated multiple times. In this case, when pivot items (section 2.2.5.4.4)
or data items (section 2.2.5.4.9.5.1) are repeated, the caption is not necessarily displayed in
every cell that contains a pivot item (section 2.2.5.4.4) or data item (section 2.2.5.4.9.5.1). For
more details, see the Pivot Lines section.
If the previous pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) is in compact
axis mode, then the pivot items (section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1) of the
current pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) are placed in the
same column as pivot items (section 2.2.5.4.4) of the previous pivot field (section 2.2.5.4.3) or
data field (section 2.2.5.4.9.5.2). Pivot items (section 2.2.5.4.4) or data items (section
2.2.5.4.9.5.1) are grouped by the parent pivot item (section 2.2.5.4.4) or data item (section
2.2.5.4.9.5.1) and placed immediately under the parent pivot item (section 2.2.5.4.4) or data
item (section 2.2.5.4.9.5.1).
For the data field (section 2.2.5.4.9.5.2), if the fCompactData field and the fOutlineData field of
the SXAddl_SXCView_SXDVer12Info record (section 2.4.273.109) are equal to 1, this specifies
that the data field (section 2.2.5.4.9.5.2) is in compact axis mode. If the
SXAddl_SXCView_SXDVer12Info (section 2.4.273.109) is not present, the data field (section
2.2.5.4.9.5.2) is not in compact axis mode.
152 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The row area can have special entries at the end for grand totals. If there are no pivot fields
(section 2.2.5.4.3) and no data field (section 2.2.5.4.9.5.2) on the row axis (section 2.2.5.4.9.2),
then the row area is empty.
The column area contains pivot fields (section 2.2.5.4.3), the optional data field (section
2.2.5.4.9.5.2), or both placed on the column axis (section 2.2.5.4.9.3), along with associated pivot
items (section 2.2.5.4.4) or data items (section 2.2.5.4.9.5.1). The first row of the column area
can contain pivot field (section 2.2.5.4.3) captions, data field (section 2.2.5.4.9.5.2) captions, or
both as specified by the fNoHeaders field of the SXAddl_SXCView_SXDVer12Info record (section
2.4.273.109).
For the data field (section 2.2.5.4.9.5.2), if the fCompactData field and the fOutlineData field of
the SXAddl_SXCView_SXDVer12Info record (section 2.4.273.109) are equal to 1, this specifies
that the data field (section 2.2.5.4.9.5.2) is in compact axis mode. If the
SXAddl_SXCView_SXDVer12Info record (section 2.4.273.109) is not present, the data field
(section 2.2.5.4.9.5.2) is not in compact axis mode.
The second row in the column area contains pivot item (section 2.2.5.4.4) or data item (section
2.2.5.4.9.5.1) labels for the pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2)
placed first on the column axis (section 2.2.5.4.9.3), and each subsequent row contains the pivot
item (section 2.2.5.4.4) or data item (section 2.2.5.4.9.5.1) labels for pivot fields (section
2.2.5.4.3) or data fields (section 2.2.5.4.9.5.2) that occur later on the column axis (section
2.2.5.4.9.3). The row containing pivot item (section 2.2.5.4.4) or data item (section 2.2.5.4.9.5.1)
labels for the pivot field (section 2.2.5.4.3) or data field (section 2.2.5.4.9.5.2) at position n is row
(n +1) of the column area.
If the fNoHeaders field is equal to 1, the pivot field (section 2.2.5.4.3) and data field (section
2.2.5.4.9.5.2) captions are not displayed. The row containing pivot item (section 2.2.5.4.4) or data
item (section 2.2.5.4.9.5.1) labels for the pivot field (section 2.2.5.4.3) or data field (section
2.2.5.4.9.5.2) at position n on the column axis (section 2.2.5.4.9.3) is row n of the column area.
The column area can have special entries at the end for grand totals.
The page area contains pivot fields (section 2.2.5.4.3) that are placed on the page axis (section
2.2.5.4.9.1) for non-OLAP PivotTable views (section 2.2.5.4.2) and pivot hierarchies (section
2.2.5.4.5) that are placed on the page axis (section 2.2.5.4.9.1) for OLAP PivotTable views
(section 2.2.5.4.2). For each pivot field (section 2.2.5.4.3) or pivot hierarchy (section 2.2.5.4.5) on
the page axis (section 2.2.5.4.9.1), the page area contains a caption and information about the
153 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
current filtering associated with the pivot field (section 2.2.5.4.3) or pivot hierarchy (section
2.2.5.4.5) in the next cell at the logical right. The relative position of pairs of caption and filtering
information is specified by the SxView record (section 2.4.313) and the SXEx record (section
2.4.282). For more details, see the Location and Body section.
The data area contains summarized values for the PivotTable view (section 2.2.5.4). Cells in the
data area contain summarized values for associated data items (section 2.2.5.4.9.5.1). The
summarized value in a cell is restricted by all the pivot items (section 2.2.5.4.4) in the column area
(section 2.2.5.4.10.1.2) that are located in the same column, by all the pivot items (section
2.2.5.4.4) in the row area (section 2.2.5.4.10.1.1) that are located in the same row, and by any
page filter applied, as specified in the Page Axis section.
If the row area (section 2.2.5.4.10.1.1) has a grand total, then the value in that row is not
restricted by pivot items (section 2.2.5.4.4) from the row area (section 2.2.5.4.10.1.1). If the
column area (section 2.2.5.4.10.1.2) has a grand total, then the value in that column is not
restricted by pivot items (section 2.2.5.4.4) from the column area (section 2.2.5.4.10.1.2). If the
PivotTable view (section 2.2.5.4) has more than one data item (section 2.2.5.4.9.5.1), then the
associated data item (section 2.2.5.4.9.5.1) is the one that is located in the same column in the
column area (section 2.2.5.4.10.1.2) or the same row in the row area (section 2.2.5.4.10.1.1) as
the cell with the summarized value.
If a PivotTable view (section 2.2.5.4) has zero data items (section 2.2.5.4.9.5.1) then the data
area is empty.
2.2.5.4.10.2 Truncation
When a PivotTable report (section 2.2.5) does not fit within the boundaries of the sheet (2) it is
truncated from the logical right and the bottom. It is truncated such that a part of the PivotTable
report (section 2.2.5) is displayed within the sheet boundaries.
A pivot line specifies a collection of pivot line entries (section 2.2.5.4.10.4) for a single row or
column in the PivotTable report (section 2.2.5).
A pivot line in the column area (section 2.2.5.4.10.1.2) is the range defined by the intersection of:
A column.
A set of cells in the column area (section 2.2.5.4.10.1.2). These are cells that contain pivot
items (section 2.2.5.4.4), data items (section 2.2.5.4.9.5.1), blank cells, or a grand total.
A pivot line in the row area (section 2.2.5.4.10.1.1) is the range defined by the intersection of:
A row.
A set of cells in the row area (section 2.2.5.4.10.1.1). These are cells that contain pivot items
(section 2.2.5.4.4), data items (section 2.2.5.4.9.5.1), blank cells, or a grand total.
A pivot line is specified by a sequence of records that conforms to the PIVOTLI rule (section
2.1.7.20.5). If either the cRw field or the cCol field of the associated SxView record (section
2.4.313) is greater than 0, then two PIVOTLI rules (section 2.1.7.20.5) MUST exist in the sequence
of records that conforms to the PIVOTCORE rule (section 2.1.7.20.5), otherwise a PIVOTLI rule
(section 2.1.7.20.5) MUST NOT exist in the PIVOTCORE rule (section 2.1.7.20.5).
If PIVOTLI rules (section 2.1.7.20.5) for a PivotTable view (section 2.2.5.4) exist, the first
PIVOTLI rule (section 2.1.7.20.5) specifies the collection of pivot lines for the row area (section
154 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.5.4.10.1.1). The order of the SXLIItem structures (section 2.5.259) in the rgsxli field of the
SXLI record (section 2.4.293) specifies the top to bottom order of the pivot lines of the row area
(section 2.2.5.4.10.1.1).
If PIVOTLI rules (section 2.1.7.20.5) for a PivotTable view (section 2.2.5.4) exist, the second
PIVOTLI rule (section 2.1.7.20.5) specifies the collection of pivot lines for the column area
(section 2.2.5.4.10.1.2). The order of the SXLIItem structures (section 2.5.259) in the rgsxli field
of the SXLI record (section 2.4.293) specifies the logical left to logical right order of the pivot
lines of the column area (section 2.2.5.4.10.1.2).
Each individual pivot line is specified by an SXLIItem structure (section 2.5.259) in the rgsxli field
of the associated SXLI record (section 2.4.293). Each pivot line contains a number of pivot line
entries (section 2.2.5.4.10.4). Pivot line entries (section 2.2.5.4.10.4) are specified by the rgisxvi
field of the SXLIItem structure (section 2.5.259).
The first pivot line in the row area (section 2.2.5.4.10.1.1) or the column area (section
2.2.5.4.10.1.2) MUST have a cSic field of its associated SXLIItem structure (section 2.5.259) equal
to 0.
The following shows an example of a PivotTable report (section 2.2.5) and the pivot lines
corresponding to each row in the row area (section 2.2.5.4.10.1.1).
Pivot line entries specify references to the pivot items (section 2.2.5.4.4), data items (section
2.2.5.4.9.5.1), or blank items of a pivot line (section 2.2.5.4.10.3). Pivot line entries are specified
by the records that conform to the PIVOTLI rules (section 2.1.7.20.5) in the PIVOTCORE rule
(section 2.1.7.20.5). A pivot line entry is an element in the array specified by the rgisxvi field of the
SXLIItem structure (section 2.5.259).
All pivot line entries that have an index less than the value specified by the cSic field of the
SXLIItem structure (section 2.5.259) of a given pivot line (section 2.2.5.4.10.3) are identical to
those of the pivot line (section 2.2.5.4.10.3) preceding the given pivot line (section 2.2.5.4.10.3).
For the purposes of the rest of this section, n specifies a position of the pivot line entry of a given
pivot line (section 2.2.5.4.10.3).
If the value of n is less than the cSic field of the SXLIItem structure (section 2.5.259) of a given
pivot line (section 2.2.5.4.10.3), then the pivot line entry at position n is identical to the
corresponding pivot line entry of the pivot line (section 2.2.5.4.10.3) preceding the given pivot
line (section 2.2.5.4.10.3).
155 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If the value of n is greater than or equal to the cSic field of the SXLIItem structure (section
2.5.259) of a given pivot line (section 2.2.5.4.10.3), then the value of n is equal to the sum of the
cSic field of the SXLIItem structure (section 2.5.259) and the current index in the rgisxvi field of
the SXLIItem structure (section 2.5.259) of the given pivot line (section 2.2.5.4.10.3).
If a pivot line entry is in a pivot line (section 2.2.5.4.10.3) in the row area (section
2.2.5.4.10.1.1), each pivot line entry at a position n specifies a pivot item (section 2.2.5.4.4) index
of a pivot item (section 2.2.5.4.4) in the nth pivot field (section 2.2.5.4.3) on the row axis (section
2.2.5.4.9.2) or specifies a data item (section 2.2.5.4.9.5.1) index, if the nth field of the row axis
(section 2.2.5.4.9.2) is the data field (section 2.2.5.4.9.5.2).
If a pivot line entry is in a pivot line (section 2.2.5.4.10.3) in the column area (section
2.2.5.4.10.1.2), each pivot line entry at a position n specifies the pivot item (section 2.2.5.4.4) index
of a pivot item (section 2.2.5.4.4) in the nth pivot field (section 2.2.5.4.3) on the column axis
(section 2.2.5.4.9.3) or specifies a data item (section 2.2.5.4.9.5.1) index, if the nth field on the
column area (section 2.2.5.4.10.1.2) is the data field (section 2.2.5.4.9.5.2).
If the nth pivot field (section 2.2.5.4.3) on the row axis (section 2.2.5.4.9.2) or column axis
(section 2.2.5.4.9.3) is the data field (section 2.2.5.4.9.5.2), the pivot line entry is a data items
(section 2.2.5.4.9.5.1) index, as specified by the Data Items section.
Pivot items (section 2.2.5.4.4) are specified sequentially from logical left to logical right for row
pivot lines (section 2.2.5.4.10.3), and from top to bottom for column pivot lines (section
2.2.5.4.10.3).
A value of 0x7FFF is used to specify the absence of a pivot item (section 2.2.5.4.4) or data item
(section 2.2.5.4.9.5.1).
A PivotTable rule is used to specify ranges of cells in the PivotTable report (section 2.2.5). A
PivotTable rule is specified by the sequence of records that conform to the PIVOTRULE rule
(section 2.1.7.20.6) or by an SxcSXRule class (section 2.2.5.1.1.1.11). Each PivotTable rule has
references to specific area of a PivotTable report (section 2.2.5), pivot fields (section 2.2.5.4.3),
pivot items (section 2.2.5.4.4), data items (section 2.2.5.4.9.5.1), or cache items (section
2.2.5.3.6). These references are used to determine the ranges of cells in the PivotTable report
(section 2.2.5). The various areas of the PivotTable report (section 2.2.5) specified in the Location
and Body section and the pivot lines (section 2.2.5.4.10.3) can be used in this determination.
A PivotTable rule can have PivotTable rule filters. A PivotTable rule filter is specified by the sequence
of records that conform to a PRFILTER rule (section 2.1.7.20.6) or an SxcSXFilt class (section
2.2.5.1.1.1.12). A PivotTable rule filter specifies a set of pivot items (section 2.2.5.4.4), data items
(section 2.2.5.4.9.5.1), or cache items (section 2.2.5.3.6) for an individual pivot field (section
2.2.5.4.3), data field (section 2.2.5.4.9.5.2), or cache field (section 2.2.5.3.5).
Ranges of cells that are associated, in the PivotTable report (section 2.2.5), with any pivot item
(section 2.2.5.4.4), data item (section 2.2.5.4.9.5.1), or cache item (section 2.2.5.3.6) from a
PivotTable rule filter and that meet other restrictions as specified by the SxFilt (section 2.4.285) or
SXAddl_SXCSXfilt_SXDSXfilt (section 2.4.273.77) record are associated with the PivotTable rule
filter. Ranges of cells that are associated with every PivotTable rule filter of the PivotTable rule and
that meet other restrictions of the PivotTable rule are the ranges of cells specified by the
PivotTable rule.
156 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A range of cells is associated with a particular cache item (section 2.2.5.3.6) if it is associated with
the pivot item (section 2.2.5.4.4) that has an association with that cache item (section 2.2.5.3.6).
2.2.6 Styles
This overview describes how formatting and protection information for cells in a sheet (1) is
specified.
Border properties (left, right, top, bottom, thick or thin, color, etc…)
These properties, as a whole, describe how a particular cell is displayed and printed.
There are two types of objects that contain formatting properties. They are XFs (section 2.2.6.1) and
DXFs (section 2.2.6.2). In general, XFs (section 2.2.6.1) describe the formatting directly associated
with a cell, and DXFs (section 2.2.6.2) describe additional formatting properties that can be applied to
one or more cells.
2.2.6.1 XFs
XFs specify formatting for cells and cell styles (section 2.2.6.1.2). XFs are specified by records in
the XFS collection (section 2.1.7.20.3). This collection contains XF (section 2.4.353) and XFExt
(section 2.4.355) records, which specify formatting properties.
A cell XF is specified by an XF record (section 2.4.353) (and an optional XFExt record (section
2.4.355)) where the fStyle field of the XF record (section 2.4.353) equals 0. Each cell MUST
reference a cell XF. These records specify the complete set of formatting properties for the cells that
reference them.
Cell styles specify a set of formatting properties that can be associated with one or more cells. Cell
styles provide two benefits:
The set of formatting properties in a cell style can be applied to one or more cells in a single
operation.
After a cell style is applied to a cell, subsequent changes to the formatting properties in the cell
style can be propagated to the cell automatically.
For example, if it is desired that multiple cells in a sheet (1) share a common set of formatting
properties, like bold font with a blue fill, then cell styles make it convenient to apply this set of
formatting, and potentially modify the set later.
157 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Supporting information for a cell style is specified in a Style record (section 2.4.269) (and optional
StyleExt record (section 2.4.270)). This information includes a friendly name for the cell style and
an index to the cell style XF (section 2.2.6.1.2.1) that specifies the formatting for the cell style.
A cell style XF is specified by an XF record (section 2.4.353) (and an optional XFExt record (section
2.4.355)) where the fStyle field of the XF record (section 2.4.353) equals 1. Each cell MUST
reference a cell XF (section 2.2.6.1.1), and each cell XF (section 2.2.6.1.1) MUST reference a cell
style XF with the ixfParent field.
At least one cell style (section 2.2.6.1.2) MUST be included in the STYLES collection (section
2.1.7.20.3) and this cell style (section 2.2.6.1.2) is called the Normal style. The Normal style
MUST reference the first XF record (section 2.4.353) in the XFS collection (section 2.1.7.20.3), and
this XF record (section 2.4.353) MUST be a cell style XF (section 2.2.6.1.2.1), where the fStyle field
equals 1.
The Normal style, being the only required cell style (section 2.2.6.1.2), ensures that all cells have
a cell style (section 2.2.6.1.2) to reference. The Normal style also provides a convenient object in
which to store default cell formatting properties for an entire workbook, because all cells will typically
reference the Normal style by default, until they are modified to reference a different cell style
(section 2.2.6.1.2).
Like XFs (section 2.2.6.1), DXFs define a set of formatting properties. Unlike XFs (section 2.2.6.1),
DXFs can define any number of formatting properties, from just one to all of them.
DXFs provide a way for features to reference a set of formatting properties. How those properties are
used depends on the feature. The subsections that follow describe each of these features and how
they use DXFs.
DXFs can be specified in several different ways. The following records and structures specify a DXF:
DXF records (section 2.4.97) are saved into a collection as specified by Globals Substream ABNF and
referenced with a DXFId (section 2.5.94).
The remaining structures are saved within containing records, such as CF (section 2.4.42) and SxDXF
(section 2.4.280). DXFN12 (section 2.5.96), DXFN12List (section 2.5.97), and DXFN12NoCB
(section 2.5.98) are extensions of the DXFN structure (section 2.5.95).
Some conditional formatting rules, as specified by the records in the CONDFMT collection (section
2.1.7.20.5), reference a DXF (section 2.2.6.2). That DXF (section 2.2.6.2) describes additional
formatting applied to cells within the bounds of the rule, if the rule’s condition is TRUE for those cells.
158 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.6.2.2 Table Style Elements
Table style elements, as specified by TableStyleElement (section 2.4.321), can reference a DXF
(section 2.2.6.2). That DXF (section 2.2.6.2) describes additional formatting applied to cells within
the bounds of the table style element.
A PivotTable format (section 2.2.5), as specified by an SxFormat record (section 2.4.287), can
specify a DXF (section 2.2.6.2). This DXF (section 2.2.6.2) represents formatting that can be applied
to the cells within the appropriate area of the PivotTable view (section 2.2.5.4).
Table styles specify additional formatting for cells inside tables or PivotTable views (section
2.2.5.4).
Tables can specify an applied table style with the List12TableStyleClientInfo record (section
2.5.176). PivotTable views (section 2.2.5.4) specify an applied table style with the
SXAddl_SXCView_SXDTableStyleClient record (section 2.4.273.107). These two records reference
a table style by name with the stListStyleName and stName fields, respectively.
Table styles are either built-in or custom. Built-in table styles are specified in [ECMA-376] part 4,
3.8.40. Custom table styles used in a workbook are specified in the collection of records beginning
with TableStyles (section 2.4.322).
A table style consists of a collection of table style elements (section 2.2.6.2.2). For custom table
styles, these elements are specified by the collection of TableStyleElement records (section
2.4.321) following the TableStyle record (section 2.4.320).
Each table style element (section 2.2.6.2.2) specifies the formatting to be applied to cells in a
particular region of the table or PivotTable view (section 2.2.5.4). These regions are specified by the
possible values of the tseType field of the TableStyleElement record (section 2.4.321).
As described previously, the formatting to be displayed or printed for a particular cell can be specified
in several independent records. It is up to the application to resolve conflicting formatting properties
for a particular cell.
As an example, say a cell has a conditional format (section 2.2.6.2.1) applied and also falls within
the bounds of a table with a table style (section 2.2.6.3). Furthermore, say the cell XF (section
2.2.6.1.1), conditional format (section 2.2.6.2.1) and table style element (section 2.2.6.2.2) all
specify a different font color. It is up to the application to decide the appropriate font color to use in
this situation.
159 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.7 External References
The external references infrastructure exists to support formulas (section 2.2.2) which reference
data sources outside the scope of the sheet (1) on which the formula (section 2.2.2) resides.
These sources could be other sheets (1) in the same workbook, data in another workbook, DDE links
or Object Linking and Embedding (OLE) links. A workbook that uses external references
contains a collection of XTI records (section 2.5.344) that in turn reference SupBook records
(section 2.4.271) that specify the source of the data.
Within the formula, only certain formula elements (section 2.2.2.6) can contain external references.
These specific formula elements (section 2.2.2.6) contain an XtiIndex structure (section
2.5.198.119) specifying an XTI (section 2.5.344), which in turn specifies the location and type of the
external reference data. Only the following Ptg structures (section 2.5.198.25) can be external
reference consumers:
Each formula element (section 2.2.2.6) which references external data refers to a XTI (section
2.5.344). The XTI (section 2.5.344) references a SupBook record (section 2.4.271) that specifies
the type of supporting link and, in certain cases, specifies additional data about the supporting
link.
There are several types of supporting links. The type of the supporting link used is specified by
the cch and virtPath fields of the SupBook record (section 2.4.271). Supporting link types are
specified in the following table:
This supporting link type supports cross-sheet (1) references, where the target
sheets (1) are specified by the XTI (section 2.5.344). This record also supports
defined name or User Defined Function (UDF) references on the same book.
Same-Sheet A reference to the active sheet in the context of the consuming formula (section
Referencing 2.2.2).
This supporting link type is used by formulas in macro sheets and in defined names
to reference the sheet (1) of the caller.
Add-in Referencing A reference to a UDF on any Excel Linked Library (XLL) or COM add-in.
External Workbook A reference to an External Workbook (section 2.2.7.3).
Referencing
DDE Data Source A reference to a DDE Data Source (section 2.2.7.6).
Referencing
OLE Data Source A reference to an OLE Data Source (section 2.2.7.8).
Referencing
Unused An unused supporting link. A reference to this type of supporting link can be
specified by an XTI (section 2.5.344), but that XTI (section 2.5.344) MUST NOT be
160 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Supporting Link Type Meaning
used by any external reference consumer (section 2.2.7.1).
An external workbook link is a reference to a workbook other than the one in which the source
formula (section 2.2.2) resides. It contains the referencing expression, and data relating to that
expression. This data includes the workbook location, sheet (1) names, external defined names
(section 2.2.7.4), and an external cell cache (section 2.2.7.5) for referenced cells in that workbook.
To allow external cell references to be calculated without opening the referenced workbook, an
external cell cache is stored in the file which contains cached values for cells in a sheet (1) in an
external workbook (section 2.2.7.3). The external cell cache contains cell values of the specific
cells that are referenced in that sheet (1). The beginning of an external cell cache is specified by the
XCT record (section 2.4.352).
The external cell cache is composed of a collection of sequences of cells that correspond to cells in
the source sheet (1). Each cell sequence is specified by a CRN record (section 2.4.65).
A DDE data source specifies information about the DDE server and DDE topic name of a Dynamic
Data Exchange (DDE) connection. A DDE data source is specified by the SupBook record (section
2.4.271).
A DDE data item specifies the name and properties of a DDE item. It also contains cached values
from the most recent DDE data update. A DDE data item is specified by the ExternName record
(section 2.4.105).
An OLE data source specifies information about an OLE2 data connection. It specifies the path to the
OLE2 data source file and the ProgID of the application handler. An OLE data source is specified
by the SupBook record (section 2.4.271).
An OLE data item specifies the name and properties of a connection to an OLE2 data object. Unlike
DDE Data Sources (section 2.2.7.6), OLE Data Sources (section 2.2.7.8) do not store cached data
returned by OLE2 data objects. An OLE data item is specified by the ExternName record (section
2.4.105).
161 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.8 External Connections
A workbook often pulls in data from external data sources, such as a database or an OLAP cube.
An external connection represents a link between a workbook and a particular external data source.
It contains properties about the way that the application establishes the connection to the data source
and retrieves the data, such as the type of data provider (OLE DB, ODBC, and so on), a server
name, security information, and a command to execute on the server. In addition, the external
connection contains details about the way the connection is used in the workbook, such as how often
to refresh the data.
A data connection object contains external connection information for an external data source that a
workbook uses. Data connection objects are independent of the constructs in the workbook that
display data, such as tables or PivotTables (section 2.2.5).
A connection definition can be established in an external connection file for easier sharing and
reuse, but this overview describes the representation for external data connections that are directly
embedded within a workbook file. This embedded representation is required whenever external data is
used, and ensures portability of the document and continued operation of the external query in the
most cases.
If an external connection is not used by any workbook object, it is represented only by a DConn
record (section 2.4.84) and the fStandAlone field of the DConn record (section 2.4.84) is set to 1.
Each external connection has a unique name, which can be used by the application as a user-friendly
name for the connection, for example, for UI purposes. The connection name is specified by the
rgchConnectionName field of the DConn record (section 2.4.84).
An external connection file specifies an external connection in a separate file (external to the
workbook). An external connection file enables managing connection information separately from
a specific workbook and sharing it among multiple workbooks. It is used for creating a new data
connection in a workbook or for restoring a lost connection. The stSourceConnectionFile field of the
SXAddl_SXCQuery_SXDSrcConnFile record (section 2.4.273.65) and the
rgchSourceConnectionFile field of the DConn record (section 2.4.84) specify a path to an external
connection file.
An OLAP connection is a connection to an OLE DB for OLAP data provider. An OLE DB connection
is an OLAP connection if the dbost field of the ConnGrbitDbtOledb structure (section 2.5.59) is
0x1.
162 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.8.4 ODBC Connections
A Web connection pulls the content of a Web page, or part of a Web page (an HTML table), into the
workbook. An external connection is a Web connection if the dbt field of the DbQuery record
(section 2.4.80) is 0x4, the dbt field of the DBQueryExt record (section 2.4.81) is DBT_WEB
(section 2.5.64), and the dbt field of the DConn record (section 2.4.84) is DBT_WEB (section
2.5.64).
A text import connection pulls in data from a structured text file into the workbook. An external
connection is a text import connection if the dbt field of the DbQuery record (section 2.4.80) is
0x6, the dbt field of the DBQueryExt record (section 2.4.81) is DBT_TXT (section 2.5.64), and the
dbt field of the DConn record (section 2.4.84) is DBT_TXT (section 2.5.64).
An ADO recordset pulls in data from a set of records in an ADO data provider. An external
connection is an ADO recordset connection if the dbt field of the DbQuery record (section 2.4.80)
is 0x7, the dbt field of the DBQueryExt record (section 2.4.81) is DBT_ADO (section 2.5.64), and
the dbt field of the DConn record (section 2.4.84) is DBT_ADO (section 2.5.64).
Note: For this type of connection, the file format does not contain sufficient information for
establishing the connection and fetching a recordset. Data is provided to the application through
another mechanism, for example by script code using an object model.
A DAO recordset pulls in data from a set of records in a DAO data provider. An external connection is
a DAO recordset connection if the dbt field of the DbQuery record (section 2.4.80) is 0x2, the dbt
field of the DBQueryExt record (section 2.4.81) is DBT_DAO (section 2.5.64), and the dbt field of
the DConn record (section 2.4.84) is DBT_DAO (section 2.5.64).
Note: For this type of connection, the file format does not contain sufficient information for
establishing the connection and fetching a recordset. Data is provided to the application through
another mechanism, for example by script code using an object model.
163 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
obfuscation algorithm specified in [MS-OFFCRYPTO], 2.3.7.1, Binary Document Password Verifier
Derivation Method 1 to produce a 16-bit password verifier value.
See the Security Considerations section for information about security concerns related to the use of
this algorithm for password verification in this file format.<19>
Workbook files can contain sensitive information that needs to be protected. A file can be protected
by encrypting it using a password<20>. Once a file is encrypted, the data can only be accessed by
decrypting the file using the same password.
If a file in this format is saved with encryption it MUST be saved with XOR obfuscation<21> as
specified in [MS-OFFCRYPTO] section 2.3.7, or RC4 encryption as specified in [MS-OFFCRYPTO]
section 2.3.6, or one of a number of RC4 CryptoAPI encryption<22> algorithms as specified in [MS-
OFFCRYPTO] section 2.3.5. The specific obfuscation or encryption method being used, and the
associated obfuscation or encryption information, is specified in the FilePass record (section
2.4.117).
If RC4 CryptoAPI encryption is used, certain storages and streams are stored in the Encryption
Stream (section 2.1.7.6) as specified in [MS-OFFCRYPTO] section 2.3.5.3. See the following table for
details.
164 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Storage/Stream XOR obfuscation RC4 CryptoAPI encryption
or RC4
encryption
User Names Stream (section Not encrypted Not encrypted.
2.1.7.17)*
VBA Storage (section 2.1.7.18) Not encrypted Not encrypted.
Viewer Content Stream (section Not encrypted Not encrypted
2.1.7.19)
Workbook Stream (section Encrypted Encrypted.
2.1.7.20)*
XML Signatures Storage (section Not encrypted Not encrypted.
2.1.7.21)
XML Stream (section 2.1.7.22) Not encrypted Encrypted in encryption
stream (section 2.1.7.6)
* The indicated items specify either streams that contain BIFF records as specified in Record
(section 2.1.4) or storages that contain streams that contain BIFF records as specified in
Record (section 2.1.4). When obfuscating or encrypting BIFF records in these streams the
record type and record size components MUST NOT be obfuscated or encrypted. In addition
the following records MUST NOT be obfuscated or encrypted: BOF (section 2.4.21), FilePass
(section 2.4.117), UsrExcl (section 2.4.339), FileLock (section 2.4.116), InterfaceHdr
(section 2.4.146), RRDInfo (section 2.4.227), and RRDHead (section 2.4.226). Additionally,
the lbPlyPos field of the BoundSheet8 record (section 2.4.28) MUST NOT be encrypted.
** The indicated streams for the indicated encryption method MUST be encrypted if and
only if the 0x08 bit of EncryptionHeader.flags is equal to 0. EncryptionHeader.flags is
specified in [MS-OFFCRYPTO] section 2.3.5.1.
For XOR obfuscation, the obfuscation key is generated as specified in the Password Verifier Algorithm
section. The algorithm for XOR obfuscation is specified in [MS-OFFCRYPTO] section 2.3.7. The
Unicode password string is converted to a new character string in the ANSI code page of the current
system using the algorithm specified in the revisionsPassword attribute in [ECMA-376] part 4,
3.2.29. The new string is then provided as input into the XOR obfuscation array initialization as
specified in [MS-OFFCRYPTO] section 2.3.7.2. The initialized array is then used by the algorithm
specified in [MS-OFFCRYPTO] section 2.3.7.3 to obfuscate the file data.
For RC4 encryption and RC4 CryptoAPI encryption, the Unicode password string is used to generate
the encryption key as specified in [MS-OFFCRYPTO] section 2.3.6.2 or [MS-OFFCRYPTO] section
2.3.5.2 depending on the RC4 algorithm used. The record data is then encrypted by the specific RC4
algorithm in 1024-byte blocks. The block number is set to zero at the beginning of every BIFF record
stream, and incremented by one at each 1024-byte boundary. Bytes to be encrypted are passed into
the RC4 encryption function and then written to the stream. For unencrypted records and the record
headers consisting of the record type and record size, a byte buffer of all zeros, of the same size as
the section of unencrypted bytes, is passed into the RC4 encryption function. The results are then
ignored and the unencrypted bytes are written to the stream.
See the Security Considerations section for information about security concerns relating to file
encryption for this file format.
The shared workbook infrastructure is used to enable multiple users to make changes to a
workbook at the same time as well as track changes that certain users make. A shared workbook
contains a collection of users that currently have the document open and a set of revision logs
(section 2.2.11.2) that contain the changes that users have made to the workbook. Each of these logs
has a corresponding revision header associated with it and contains either a set of revision records
(section 2.2.11.3) that have been made to the shared workbook because it has been shared or no
165 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
revision records (section 2.2.11.3). A workbook is a shared workbook if and only if the user
names stream (section 2.1.7.17) exists.
166 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.11.1 User Log
The user log contains the set of users who currently have the workbook open. The iCount field of
CUsr (section 2.4.72) specifies the number of UsrInfo records (section 2.4.340) that this section
contains. Each UsrInfo record (section 2.4.340) corresponds to a user that currently has the
workbook open. The guid field of the UsrInfo maps (section 2.4.340) to the guid field of RRDHead
(section 2.4.226) that specifies which revision log (section 2.2.11.2) the user is currently
synchronized to.
The revision logs section contains a set of revision logs. Each revision log contains various revision
records (section 2.2.11.3) that a single user has made to a shared workbook (section 2.2.11) or a
user action. Each revision log has a revision header (RRDHead (section 2.4.226)) and a tab identifier
map (RRTabId (section 2.4.241)) that describes general information. The stUserName field of
RRDHead (section 2.4.226)is the name of the user who made changes or performed an action for
that particular log. If the revision log is meant to describe user changes (and not a user action), it will
also contain other revision log content that will describe all the changes made by that user. This
revision log stream ABNF also contains general information about the shared workbook (section
2.2.11) in RRDInfo (section 2.4.227), FileLock (section 2.4.116), and UsrExcl (section 2.4.339).
A revision record describes changes, or revisions, that a single user has made to a shared
workbook (section 2.2.11). The following changes can be recorded by the shared workbook
(section 2.2.11):
167 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.2.11.5 Move Cells Revision
This revision corresponds to moving a range of cells. In between RRDMove (section 2.4.231) and
RRDMoveEnd (section 2.4.233), any number of RRFormat (section 2.4.238) and RRDChgCell
records (section 2.4.223) can appear as well as the other records associated with RRDChgCell
(section 2.4.223) (RRDRstEtxp (section 2.4.235)). These records describe the cell and format
changes as a result of moving a range of cells.
This revision (RRDChgCell (section 2.4.223)) corresponds to a change or edit of a cell. It can be
followed by any number of RRDRstEtxp records (section 2.4.235). These specify font information
for the formatting run as specified in RRDChgCell (section 2.4.223).
The Sort Map contains changes to sorting done on the sheet (1) level in a shared workbook
(section 2.2.11). Each sheet (1) can have a Sort Map. The Sort Map is made of up to two sorts
(RRSort (section 2.4.240)). One specifies sheet (1) level sort changes in rows followed by sheet (1)
level sort changes in columns. If there are no changes in sort for rows or columns, the sort map does
not exist for rows or columns respectively.
Instance specific feature data stored in a Feat (section 2.4.111), Feature11 (section 2.4.114), or
Feature12 (section 2.4.115) record. There MUST be one or more Feat (section 2.4.111),
Feature11 (section 2.4.114), or Feature12 (section 2.4.115) records for each instance of a
shared feature.
Some shared features require other feature-specific records. See FEAT (section 2.1.7.20.6) and
FEAT11 (section 2.1.7.20.6) records for additional records used for shared features.
This section specifies the record name associated with a given record type value. For more information
about record types, see the section on Records (section 2.1.4).
These associations between record name and record type are listed by record name as well as by
record type.
The type-specific meaning and fields for each record type are specified in the subsection of the
Records section (section 2.4) corresponding to the record name.
168 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.3.1 By Name
Record
type
Name (number)
169 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
170 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
171 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
172 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
173 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
174 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
175 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
176 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
177 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
178 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
Uncalced(section 2.4.331) 94
179 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record
type
Name (number)
2.3.2 By Number
Record
type
Name (number)
180 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ExternSheet (section 2.4.106) 23
181 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Uncalced (section 2.4.331) 94
182 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXLI (section 2.4.293) 181
183 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXVS (section 2.4.317) 227
184 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
RRDMoveBegin (section 2.4.232) 334
185 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Lel (section 2.4.154) 441
186 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Qsir (section 2.4.210) 2054
187 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
CellWatch (section 2.4.41) 2156
188 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
GUIDTypeLib (section 2.4.133) 2199
189 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Axis (section 2.4.11) 4125
190 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ClrtClient (section 2.4.50) 4188
2.4 Records
2.4.1 AlRuns
The AlRuns record specifies Rich Text Formatting within chart titles (section 2.2.3.3), trendline
(section 2.2.3.12), and data labels (section 2.2.3.11).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cRuns (2 bytes): An unsigned integer that specifies the number of Rich Text Format runs. MUST be
greater than or equal to 3 and less than or equal to 256.
rgRuns (variable): An array of FormatRun structures (section 2.5.132) that specifies the Rich
Text Format runs. The number of elements in the array MUST be equal to cRuns.
2.4.2 Area
The Area record specifies that the chart group (section 2.2.3.7) is an area chart group (section
2.2.3.7) and specifies the chart group (section 2.2.3.7) attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved
A - fStacked (1 bit): A bit that specifies whether the data points (section 2.2.3.10) in the chart
group (section 2.2.3.7) that share the same category (2) are stacked.
191 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - f100 (1 bit): A bit that specifies whether the data points (section 2.2.3.10) in the chart group
(section 2.2.3.7) are displayed as a percentage of the sum of all data points (section 2.2.3.10) in
the chart group (section 2.2.3.7) that share the same category (2). MUST be 0 if fStacked is 0.
C - fHasShadow (1 bit): A bit that specifies whether one or more data points (section 2.2.3.10) in
the chart group (section 2.2.3.7) has shadows.
2.4.3 AreaFormat
The AreaFormat record specifies the patterns and colors used in a filled region of a chart (section
2.2.3.3). If this record is not present in the sequence of records that conforms to the SS rule (section
2.1.7.20.1) of the Chart Sheet Substream ABNF, the patterns and colors used are specified by the
default values of the fields of this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgbFore
rgbBack
fls A B reserved
icvFore icvBack
rgbFore (4 bytes): A LongRGB structure (section 2.5.177) that specifies the foreground color of
the fill pattern.<23> The default value of this field is automatically selected from the next
available color in the chart (section 2.2.3.3) color table.
rgbBack (4 bytes): A LongRGB structure (section 2.5.177) that specifies the background color of
the fill pattern.<24> The default value of this field is 0xFFFFFF.
fls (2 bytes): An unsigned integer that specifies the type of fill pattern. If fls is neither 0x0000 nor
0x0001, this record MUST be immediately followed by a corresponding GelFrame record (section
2.4.131) that specifies the fill pattern. The fillType as specified in [MS-ODRAW] section 2.3.7.1 of
the OPT1 field of the corresponding GelFrame record (section 2.4.131) MUST be msofillPattern
as specified in [MS-ODRAW] section 2.4.11. The default value of this field is 0x0001. fls MUST be
a value from the following table:
Value Meaning
0x0000 The fill pattern is none (no fill). When rgbFore or rgbBack are specified, a
pattern of 'none' overrides and means there is no fill.
0x0001 The fill pattern is solid. When solid is specified, rgbFore is the only color
rendered, even when rgbBack is also specified.
0x0002 The fill pattern is medium gray. Additional properties in the corresponding
GelFrame record (section 2.4.131) specify which of the following gray patterns
is used.
192 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0004 The fill pattern is light gray. Additional properties in the corresponding
GelFrame record (section 2.4.131) specify which of the following light gray
patterns is used.
193 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
corresponding GelFrame record (section 2.4.131) specify which of the following
diagonal stripes patterns is used.
194 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
195 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
SmallGrid - Specifies horizontal and vertical lines that cross and are
spaced 50 percent closer together than hatch style LargeGrid.
0x0010 The fill pattern is light trellis. Additional properties in the corresponding
GelFrame record (section 2.4.131) specify which of the following light trellis
patterns is used.
196 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
A - fAuto (1 bit): A bit that specifies whether the fill colors are automatically set. If fls is equal to
0x1 formatting is automatic. The default value of this field is 1.
B - fInvertNeg (1 bit): A bit that specifies whether the foreground and background are swapped
when the data value of the filled area is negative. This field MUST be ignored if the formatting is
not being applied to a data points (section 2.2.3.10) on a bar or column chart group (section
2.2.3.7). The default value of this field is 0.
icvFore (2 bytes): An IcvChart structure (section 2.5.162) that specifies the foreground color of
the fill pattern. The default value of this field is automatically selected from the next available
color in the chart (section 2.2.3.3) color table.
icvBack (2 bytes): An IcvChart structure (section 2.5.162) that specifies the background color of
the fill pattern. The default value of this field is 0x0009.
2.4.4 Array
The Array record specifies an array formula (section 2.2.2) for a range of cells that performs
calculations on one or more sets of values, and then returns either a single result or multiple results
across a continuous range of cells. This record is preceded by a single Formula record (section
2.4.127) that defines the first cell in the range that uses this array formula (section 2.2.2). Other
Formula records (section 2.4.127) that use this array formula (section 2.2.2) follow later in the file,
not necessarily in a contiguous sequence. Formula records (section 2.4.127) that use this array
formula (section 2.2.2) MUST have a cell field that is within the range specified in the ref field of this
record and MUST have their formula begin with PtgExp (section 2.5.198.58). Also, each cell specified
in the ref field MUST have a Formula (section 2.4.127) that uses this array formula (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
... A reserved
unused
formula (variable)
...
197 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ref (6 bytes): A Ref structure (section 2.5.207) that specifies the range of the array formula
(section 2.2.2).
A - fAlwaysCalc (1 bit): A bit that specifies whether the array formula (section 2.2.2) needs to be
calculated during the next recalculation.
formula (variable): An ArrayParsedFormula structure (section 2.5.198.1) that specifies the array
formula (section 2.2.2).
2.4.5 AttachedLabel
The AttachedLabel record specifies properties of a data label (section 2.2.3.11) on a chart group
(section 2.2.3.7), series (section 2.2.3.9), or data point (section 2.2.3.10). Refer to the data label
(section 2.2.3.11) overview for additional information about how this record is used and when this
record is ignored.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G reserved
A - fShowValue (1 bit): A bit that specifies whether the value, or the vertical value on bubble or
scatter chart groups (section 2.2.3.7), is displayed in the data label (section 2.2.3.11).
This value MUST be 0 if this record is in a chart group (section 2.2.3.7) and either
fShowLabelAndPerc or fShowPercent is equal to 1.
B - fShowPercent (1 bit): A bit that specifies whether the value, represented as a percentage of the
sum of the values of the series (section 2.2.3.9) the data label (section 2.2.3.11) is associated
with, is displayed in the data label (section 2.2.3.11).
MUST equal 0 if the chart group (section 2.2.3.7) type of the corresponding chart group
(section 2.2.3.7), series (section 2.2.3.9), or data point (section 2.2.3.10), is not bar of pie,
doughnut, pie, or pie of pie chart group (section 2.2.3.7).
If this record is contained in a chart group (section 2.2.3.7) and fShowLabelAndPerc is equal
to 1 then this field MUST equal 1.
C - fShowLabelAndPerc (1 bit): A bit that specifies whether the category (2) name and value,
represented as a percentage of the sum of the values of the series (section 2.2.3.9) the data
label (section 2.2.3.11) is associated with, are displayed in the data label (section 2.2.3.11).
MUST equal 0 if the chart group (section 2.2.3.7) type of the corresponding chart group (section
2.2.3.7), series (section 2.2.3.9), or data point (section 2.2.3.10), is not bar of pie, doughnut, pie,
or pie of pie chart group (section 2.2.3.7).
E - fShowLabel (1 bit): A bit that specifies whether the category (2), or the horizontal value on
bubble or scatter chart groups (section 2.2.3.7), is displayed in the data label (section
2.2.3.11) on a non-area chart group (section 2.2.3.7), or the series (section 2.2.3.9) name is
displayed in the data label (section 2.2.3.11) on an area chart group (section 2.2.3.7).
This field MUST equal 0 if this record is contained in a chart group (section 2.2.3.7) and one of
the following conditions is satisfied:
198 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The fShowValue field is equal to 1.
F - fShowBubbleSizes (1 bit): A bit that specifies whether the bubble size is displayed in the data
label (section 2.2.3.11).
MUST equal 0 if the chart group (section 2.2.3.7) type of the corresponding chart group
(section 2.2.3.7), series (section 2.2.3.9), or data point (section 2.2.3.10) is not bubble chart
group (section 2.2.3.7).
If the current record is contained in a chart group (section 2.2.3.7) and fShowPercent,
fShowValue, or fShowLabel equal 1, this field MUST equal 0.
G - fShowSeriesName (1 bit): A bit that specifies whether the data label (section 2.2.3.11)
contains the name of the series (section 2.2.3.9).
If the current record is contained in a chart group (section 2.2.3.7) and fShowLabelAndPerc,
fShowPercent, fShowValue, fShowValue, fShowLabel, or fShowBubbleSizes equal 1 then
this MUST equal to 0.
2.4.6 AutoFilter
The AutoFilter record specifies an AutoFilter. An Lbl record (section 2.4.150) where the Name
field has a value of 0x0D (_FilterDatabase) MUST exist for the current sheet (1). The rgce.rgce field
of the Lbl record (section 2.4.150) MUST consist of a single PtgArea3d operand (section
2.5.198.28).)
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iEntry A B C D E F wTopN
doper1
...
... doper2
...
...
str1 (variable)
...
str2 (variable)
...
iEntry (2 bytes): An unsigned integer that specifies the sheet (1) column that this AutoFilter applies
to. The column index is determined by the following formula:
199 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
((the area.columnFirst field of the PtgArea3d (section 2.5.198.28) in the rgce.rgce field of the Lbl
record (section 2.4.150) where the Name field is equal to 0x0D (_FilterDatabase) and the Lbl
record (section 2.4.150) is for the current sheet (1)) + iEntry).
The value of iEntry MUST be less than the cEntries field of the proceeding AutoFilterInfo record
(section 2.4.8).
A - wJoin (2 bits): A Boolean (section 2.5.14) that specifies whether doper1 and doper2 are
combined using a logical AND operation or a logical OR operation. MUST be a value from the
following table:
Value Meaning
0 doper1 and doper2 are combined using a logical AND operation.
1 doper1 and doper2 are combined using a logical OR operation.
D - fTopN (1 bit): A bit that specifies whether the AutoFilter is a Top N filter.
E - fTop (1 bit): A bit that specifies whether the Top N filter selects the bottom items or the top
items. MUST be a value from the following table:
Value Meaning
0 Top N filter selects the bottom items.
1 Top N filter selects the top items.
F - fPercent (1 bit): A bit that specifies whether the Top N filter selects a count of items or a percent
of items. MUST be a value from the following table:
Value Meaning
0 Top N filter selects a count of items.
1 Top N filter selects a percent of items.
wTopN (9 bits): An unsigned integer that specifies the number of Top N filter items to show. If
fTopN is 0, wTopN MUST be ignored. If fTopN is 1, wTopN MUST be greater than or equal to 1
and less than or equal to 500.
doper1 (10 bytes): An AFDOper structure (section 2.5.5) that specifies the first AutoFilter
condition. If fTopN is 1, doper1 is undefined and MUST be ignored.
200 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
doper2 (10 bytes): An AFDOper structure (section 2.5.5) that specifies the second AutoFilter
condition. If fTopN is 1, doper2 is undefined and MUST be ignored.
str1 (variable): An optional XLUnicodeStringNoCch structure (section 2.5.296) that specifies the
string comparison constant for doper1. MUST exist if and only if doper1.vt is equal to 0x06. The
length MUST be equal to doper1.vtValue.cch.
str2 (variable): An optional XLUnicodeStringNoCch structure (section 2.5.296) that specifies the
string comparison constant for doper2. MUST exist if and only if doper2.vt is equal to 0x06. The
length MUST be equal to doper2.vtValue.cch.
2.4.7 AutoFilter12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeader
...
...
iEntry fHideArrow
... ft
... cft
... cCriteria
... cDateGroupings
... A B unused1
unused2
idList
...
...
rgb (variable)
...
rgCriteria (variable)
201 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
rgDateGroupings (variable)
...
iEntry (2 bytes): An unsigned integer that specifies the sheet (1) column that this AutoFilter applies
to. The column index is determined by the following formula:
frtRefHeader.ref8.colFirst + iEntry.
fHideArrow (4 bytes): A Boolean (section 2.5.14) that specifies whether the user interface used to
display AutoFilter settings is hidden.
ft (4 bytes): An unsigned integer that specifies the filter type. MUST be one of the values in the
table specified in rgb.
cft (4 bytes): An unsigned integer that specifies the custom filter type. MUST be one of the values
in the following table:
Value Meaning
0x00000000 No custom filter
0x00000001 The custom filter displays items that are above average.
0x00000002 The custom filter displays items that are below average.
0x00000008 The custom filter displays items that are from tomorrow.
0x00000009 The custom filter displays items that are from today.
0x0000000A The custom filter displays items that are from yesterday.
0x0000000B The custom filter displays items that are from next week.
0x0000000C The custom filter displays items that are from this week.
0x0000000D The custom filter displays items that are from last week
0x0000000E The custom filter displays items that are from next month.
0x0000000F The custom filter displays items that are from this month.
0x00000010 The custom filter displays items that are from last month.
0x00000011 The custom filter displays items that are from next quarter.
0x00000012 The custom filter displays items that are from this quarter.
0x00000013 The custom filter displays items that are from last quarter.
0x00000014 The custom filter displays items that are from next year.
0x00000015 The custom filter displays items that are from this year.
0x00000016 The custom filter displays items that are from last year.
0x00000017 The custom filter displays items that are from year-to-date.
0x00000018 The custom filter displays items that are from the 1st quarter.
0x00000019 The custom filter displays items that are from the 2nd quarter.
0x0000001A The custom filter displays items that are from the 3rd quarter.
0x0000001B The custom filter displays items that are from the 4th quarter.
0x0000001C The custom filter displays items that are from the 1st month.
0x0000001D The custom filter displays items that are from the 2nd month.
202 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0000001E The custom filter displays items that are from the 3rd month.
0x0000001F The custom filter displays items that are from the 4th month.
0x00000020 The custom filter displays items that are from the 5th month.
0x00000021 The custom filter displays items that are from the 6th month.
0x00000022 The custom filter displays items that are from the 7th month.
0x00000023 The custom filter displays items that are from the 8th month.
0x00000024 The custom filter displays items that are from the 9th month.
0x00000025 The custom filter displays items that are from the 10th month.
0x00000026 The custom filter displays items that are from the 11th month.
0x00000027 The custom filter displays items that are from the 12th month.
cCriteria (4 bytes): An unsigned integer that specifies the number of items in rgCriteria. MUST be
ignored if ft is nonzero.
B - fWorksheetAutoFilter (1 bit): A bit that specifies whether this filter is a sheet (1) AutoFilter. A
sheet (1) AutoFilter filters items in the sheet specified by the Worksheet part (section
2.1.7.20.5) that contains this record. MUST be 1 if and only if idList is equal to 0xFFFFFFFF.
idList (4 bytes): An unsigned integer that specifies the table with items that are filtered by this
AutoFilter. MUST either be equal to the idList field of the associated TableFeatureType
structure (section 2.5.266) or MUST be 0xFFFFFFFF if this filter is a sheet (1) AutoFilter.
guidSview (16 bytes): A GUID as specified by [MS-DTYP] that specifies the associated
UserSViewBegin record (section 2.4.334). MUST be 0, or MUST be equal to the guid field of the
preceding UserSViewBegin record (section 2.4.334).
rgb (variable): A variable type field whose type and meaning is specified by the value of ft, as
defined in the following table:
rgCriteria (variable): An optional array of AF12Criteria structures (section 2.5.3). The length of
the array MUST be equal to cCriteria. MUST exist if and only if ft is zero and cCriteria is
nonzero. Each element of the array MUST be specified in a separate ContinueFrt12 record
(section 2.4.62).
203 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgDateGroupings (variable): An optional array of AF12DateInfo structures (section 2.5.4). The
length of the array MUST be equal to cDateGroupings. MUST exist if and only if ft is zero and
cDateGroupings is nonzero. Each element of the array MUST be specified in a separate
ContinueFrt12 record (section 2.4.62).
2.4.8 AutoFilterInfo
The AutoFilterInfo record specifies the number of columns that have AutoFilter enabled and
specifies the beginning of a collection of records as defined by the Macro Sheet Substream ABNF and
Worksheet Substream ABNF. The collection of records specifies AutoFilter information and data used
for sorting a range.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cEntries
cEntries (2 bytes): An unsigned integer that specifies the number of columns that have AutoFilter
enabled. MUST be greater than or equal to 1 and less than or equal to 256.
2.4.9 AxcExt
The AxcExt record specifies additional extension properties of a date axis (section 2.2.3.6), along
with a CatSerRange record (section 2.4.39).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
catMin catMax
catMajor duMajor
catMinor duMinor
duBase catCrossDate
A B C D E F G H reserved
catMin (2 bytes): An unsigned integer that specifies the minimum date, as a date in the date
system specified by the Date1904 record (section 2.4.77), in the units defined by duBase.
SHOULD<25> be less than or equal to catMax. If fAutoMin is set to 1, MUST be ignored. If
fDateAxis is set to 0, MUST be ignored.
catMax (2 bytes): An unsigned integer that specifies the maximum date, as a date in the date
system specified by the Date1904 record (section 2.4.77), in the units defined by duBase.
SHOULD<26> be greater than or equal to catMin. If fAutoMax is set to 1, MUST be ignored. If
fDateAxis is set to 0, MUST be ignored.
catMajor (2 bytes): An unsigned integer that specifies the interval at which the major tick marks
are displayed on the axis (section 2.2.3.6), in the unit defined by duMajor. MUST be greater than
or equal to catMinor when duMajor is equal to duMinor. If fAutoMajor is set to 1, MUST be
ignored. If fDateAxis is set to 0, MUST be ignored.
204 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
duMajor (2 bytes): A DateUnit enumeration (section 2.5.66) that specifies the unit of time to use
for catMajor when the axis (section 2.2.3.6) is a date axis (section 2.2.3.6). If fDateAxis is set
to 0, MUST be ignored.
catMinor (2 bytes): An unsigned integer that specifies the interval at which the minor tick marks
are displayed on the axis (section 2.2.3.6), in a unit defined by duMinor. MUST be less than or
equal to catMajor when duMajor is equal to duMinor. If fAutoMinor is set to 1, MUST be
ignored. If fDateAxis is set to 0, MUST be ignored.
duMinor (2 bytes): A DateUnit enumeration (section 2.5.66) that specifies the unit of time to use
for catMinor when the axis (section 2.2.3.6) is a date axis (section 2.2.3.6). If fDateAxis is set
to 0, MUST be ignored.
duBase (2 bytes): A DateUnit enumeration (section 2.5.66) that specifies the smallest unit of time
used by the axis (section 2.2.3.6). If fAutoBase is set to 1, this field MUST be ignored. If
fDateAxis is set to 0, MUST be ignored.
catCrossDate (2 bytes): An unsigned integer that specifies at which date, as a date in the date
system specified by the Date1904 record (section 2.4.77), in the units defined by duBase, the
value axis (section 2.2.3.6) crosses this axis (section 2.2.3.6). If fDateAxis is set to 0, MUST be
ignored. If fAutoCross is set to 1, MUST be ignored.
A - fAutoMin (1 bit): A bit that specifies whether catMin is calculated automatically. If fDateAxis is
set to 0, MUST be ignored. MUST be a value from the following table:
Value Meaning
0 The value specified by catMin is used and catMin is not calculated
automatically.
B - fAutoMax (1 bit): A bit that specifies whether catMax is calculated automatically. If fDateAxis
is set to 0, then fAutoMax MUST be ignored. If the value of the fMaxCross field in the
CatSerRange (section 2.4.39) record is 1, then fAutoMax MUST be ignored. MUST be a value
from the following table:
Value Meaning
Value Meaning
205 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fAutoMinor (1 bit): A bit that specifies whether catMinor is calculated automatically. If
fDateAxis is set to 0, MUST be ignored.
Value Meaning
E - fDateAxis (1 bit): A bit that specifies whether the axis (section 2.2.3.6) is a date axis (section
2.2.3.6). MUST be a value from the following table:
Value Meaning
F - fAutoBase (1 bit): A bit that specifies whether the units of the date axis (section 2.2.3.6) are
chosen automatically. If fDateAxis is set to 0, MUST be ignored. MUST be a value from the
following table:
Value Meaning
0 The value specified by duBase is used and duBase is not computed
automatically.
G - fAutoCross (1 bit): A bit that specifies whether catCrossDate is calculated automatically. MUST
be a value from the following table:
Value Meaning
0 The value specified by catCrossDate is used and catCrossDate is not
calculated automatically.
H - fAutoDate (1 bit): A bit that specifies whether the axis (section 2.2.3.6) type is detected
automatically. MUST be a value from the following table:
Value Meaning
0 The axis (section 2.2.3.6) will stay as specified by the fDateAxis field.
206 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved (8 bits): MUST be zero, and MUST be ignored.
2.4.10 AxesUsed
The AxesUsed record specifies the number of axis groups (section 2.2.3.5) on the chart (section
2.2.3.3).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cAxes
cAxes (2 bytes): An unsigned integer that specifies the number of axis groups (section 2.2.3.5) on
the chart (section 2.2.3.3). MUST be a value from the following table:
If no chart groups (section 2.2.3.7) are present on the chart (section 2.2.3.3), MUST be
0x0001. If the chart sheet substream (section 2.1.7.20.1) contains a Chart3d record (section
2.4.46), MUST be 0x0001.
2.4.11 Axis
The Axis record specifies properties of an axis (section 2.2.3.6) and specifies the beginning of a
collection of records as defined by the Chart Sheet Substream ABNF that specifies an axis (section
2.2.3.6).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wType reserved1
... reserved2
... reserved3
... reserved4
...
wType (2 bytes): An unsigned integer that specifies the type of axis (section 2.2.3.6). The value
MUST be 0x0000 if the record is the first axis (section 2.2.3.6) in the axis group (section
2.2.3.5). The value MUST be 0x0001 if the record is the second axis (section 2.2.3.6) in the axis
group (section 2.2.3.5). The value MUST be 0x0002 if the record is the third axis (section
2.2.3.6) in the axis group (section 2.2.3.5). MUST be a value from the following table:
207 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Axis type
for a scatter chart group (section 2.2.3.7) or a bubble chart group
(section 2.2.3.7), or category (2) axis (section 2.2.3.6) for all other
chart group (section 2.2.3.7) types.
0x0001 Axis (section 2.2.3.6) type is a vertical value axis (section 2.2.3.6) for
a scatter chart group (section 2.2.3.7) or a bubble chart group
(section 2.2.3.7), or value axis (section 2.2.3.6) for all other chart
group (section 2.2.3.7) types.
0x0002 Axis (section 2.2.3.6) type is a series axis (section 2.2.3.6).
2.4.12 AxisLine
The AxisLine record specifies which part of the axis (section 2.2.3.6) is specified by the LineFormat
record (section 2.4.156) that follows.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id
id (2 bytes): An unsigned integer that specifies which part of the axis (section 2.2.3.6) is defined by
the LineFormat record (section 2.4.156) that follows be unique among all other id field values in
AxisLine records in the current axis (section 2.2.3.6). MUST be greater than the id field values in
preceding AxisLine records in the current axis (section 2.2.3.6). MUST be a value from the
following table:
In the case where id is set to 0x0003, this record MUST be preceded by an Axis record (section
2.4.11) with the wType set to a value from the following table:
208 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.13 AxisParent
The AxisParent record specifies properties of an axis group (section 2.2.3.5) and specifies the
beginning of a collection of records as defined by the Chart Sheet Substream ABNF that specifies an
axis group (section 2.2.3.5).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
iax (2 bytes): A Boolean (section 2.5.14) that specifies whether the axis group (section 2.2.3.5) is
primary or secondary. MUST be a value from the following table. This field MUST equal 0 when in
the first AxisParent record in the Chart Sheet Substream ABNF. This field MUST equal 1 when in
the second AxisParent record in the Chart Sheet Substream ABNF.
Value Meaning
0x0000 Axis group (section 2.2.3.5) is primary.
0x0001 Axis group (section 2.2.3.5) is secondary.
2.4.14 Backup
The Backup record specifies whether to save a backup copy of the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fBackup
fBackup (2 bytes): A Boolean (section 2.5.14) that specifies whether to save a backup file. The
value 1 means that a backup copy of the workbook is saved when the workbook is saved.
2.4.15 Bar
The Bar record specifies that the chart group (section 2.2.3.7) is a bar chart group (section
2.2.3.7) or a column chart group (section 2.2.3.7), and specifies the chart group (section 2.2.3.7)
attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
pcOverlap pcGap
A B C D reserved
209 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
pcOverlap (2 bytes): A signed integer that specifies the overlap between data points (section
2.2.3.10) in the same category (2) as a percentage of the data points (section 2.2.3.10) width.
MUST be greater than or equal to -100 and less than or equal to 100. MUST be a value from the
following table:
Value Meaning
-100 to -1 Size of the separation between data points (section 2.2.3.10).
0 No overlap.
1 to 100 Size of the overlap between data points (section 2.2.3.10).
pcGap (2 bytes): An unsigned integer that specifies the width of the gap between the categories (2)
and the left and right edges of the plot area as a percentage of the data point (section 2.2.3.10)
width divided by 2. It also specifies the width of the gap between adjacent categories (2) as a
percentage of the data point (section 2.2.3.10) width. MUST be less than or equal to 500.
A - fTranspose (1 bit): A bit that specifies whether the data points (section 2.2.3.10) and value
axis (section 2.2.3.6) are horizontal (for a bar chart group (section 2.2.3.7)) or vertical (for a
column chart group (section 2.2.3.7)). MUST be a value from the following table:
Value Meaning
0 Data points (section 2.2.3.10) and value axis (section 2.2.3.6) are vertical.
1 Data points (section 2.2.3.10) and value axis (section 2.2.3.6) are horizontal.
B - fStacked (1 bit): A bit that specifies whether the data points (section 2.2.3.10) in the chart
group (section 2.2.3.7) that share the same category (2) are stacked.
C - f100 (1 bit): A bit that specifies whether the data points (section 2.2.3.10) in the chart group
(section 2.2.3.7) are displayed as a percentage of the sum of all data points (section 2.2.3.10) in
the chart group (section 2.2.3.7) that share the same category (2). MUST be 0 if fStacked is 0.
D - fHasShadow (1 bit): A bit that specifies whether one or more data points (section 2.2.3.10) in
the chart group (section 2.2.3.7) has shadows.
2.4.16 BCUsrs
The BCUsrs record specifies the beginning of a collection of UsrInfo records (section 2.4.340) as
defined the user names stream ABNF. The collection of UsrInfo records (section 2.4.340) specifies
information about a user who currently has the shared workbook (section 2.2.11) open.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iCount
iCount (2 bytes): An unsigned integer that specifies the number of users of an operating system
Briefcase who have the current workbook open.
2.4.17 Begin
The Begin record specifies the beginning of a collection of records as defined by the Chart Sheet
Substream ABNF. The collection of records specifies properties of a chart.
210 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.18 BigName
The BigName record specifies a name/value pair of arbitrary user-defined data that is associated with
the current sheet (1).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved lcbData
...
rgbData (variable)
...
lcbData (4 bytes): A signed integer that specifies the byte count for rgbData. MUST be greater than
or equal to zero.
cbName (1 byte): An unsigned integer that specifies the byte count for rgbName.
rgbName (variable): An array of ANSI characters whose length is specified by cbName that
specifies the name of the custom property.
rgbData (variable): An array of bytes that specifies the value of the custom property. It can
continue with the ContinueBigName records.
2.4.19 BkHim
The BkHim record specifies image data for a sheet (1) background.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cf reserved
lcb
imageBlob (variable)
...
cf (2 bytes): A signed integer that specifies the image format. MUST be a value from the following
table:
Value Meaning
0x0009 Bitmap format. The image data is stored in a bitmap format as described in
[MSDN-BMP].
211 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x000E Native format. The image data is stored in the native format of another
application and cannot be directly processed.
lcb (4 bytes): A signed integer that specifies the size of imageBlob in bytes. MUST be greater than
or equal to 1.
imageBlob (variable): An array of bytes that specifies the image data for the given format.
2.4.20 Blank
The Blank record specifies an empty cell with no formula (section 2.2.2) or value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
...
2.4.21 BOF
The BOF record specifies the beginning of the individual substreams as specified by the workbook
section. It also specifies history information for the substreams.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
vers dt
rupBuild rupYear
A B C D E F G H I J K L M N reserved1
verLowestBiff O reserved2
vers (2 bytes): An unsigned integer that specifies the BIFF version of the file. The value MUST be
0x0600.
dt (2 bytes): An unsigned integer that specifies the document type of the substream of records
following this record. For more information about the layout of the sub-streams in the workbook
stream see File Structure. MUST be a value from the following table:
Value Meaning
0x0005 Specifies the workbook substream.
0x0010 Specifies the dialog sheet substream or the worksheet substream.
212 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
The sheet (1) substream that starts with this BOF record MUST contain one
WsBool record. If the fDialog field in that WsBool is 1 then the sheet (1) is dialog
sheet otherwise the sheet (1) is a worksheet.
0x0020 Specifies the chart sheet substream.
0x0040 Specifies the macro sheet substream.
rupYear (2 bytes): An unsigned integer that specifies the year when this BIFF version was first
created. The value MUST be 0x07CC<27> or 0x07CD.
A - fWin (1 bit): A bit that specifies whether this file was last edited on a Windows platform. The
value MUST be 1.
B - fRisc (1 bit): A bit that specifies whether the file was last edited on a RISC platform. The value
MUST be 0.
C - fBeta (1 bit): A bit that specifies whether this file was last edited by a beta version of the
application. The value MUST be 0.
D - fWinAny (1 bit): A bit that specifies whether this file has ever been edited on a Windows
platform. The value SHOULD<28> be 1.
E - fMacAny (1 bit): A bit that specifies whether this file has ever been edited on a Macintosh
platform. The value MUST be 0.
F - fBetaAny (1 bit): A bit that specifies whether this file has ever been edited by a beta version of
the application. The value MUST be 0.
H - fRiscAny (1 bit): A bit that specifies whether this file has ever been edited on a RISC platform.
The value MUST be 0.
I - fOOM (1 bit): A bit that specifies whether this file had an out-of-memory failure.
J - fGlJmp (1 bit): A bit that specifies whether this file had an out-of-memory failure during
rendering.
L - fFontLimit (1 bit): A bit that specified that whether this file hit the 255 font limit<29>.
M - verXLHigh (4 bits): An unsigned integer that specifies the highest version of the application that
once saved this file. MUST be a value from the following table:
Value Meaning
0x0 Specifies the highest version of the application that has ever saved this file. <30>
0x1 Specifies the highest version of the application that has ever saved this file. <31>
0x2 Specifies the highest version of the application that has ever saved this file. <32>
0x3 Specifies the highest version of the application that has ever saved this file. <33>
0x4 Specifies the highest version of the application that has ever saved this file. <34>
0x6 Specifies the highest version of the application that has ever saved this file. <35>
0x7 Specifies the highest version of the application that has ever saved this file. <36>
213 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
N - unused3 (1 bit): Undefined, and MUST be ignored.
verLowestBiff (8 bits): An unsigned integer that specifies the BIFF version saved. The value MUST
be 6.
O - verLastXLSaved (4 bits): An unsigned integer that specifies the application that saved this file
most recently. The value MUST be the value of field verXLHigh or less. MUST be a value from the
following table:
Value Meaning
0x0 Specifies the highest version of the application that has ever
saved this file. <37>
0x1 Specifies the highest version of the application that has ever
saved this file.<38>
0x2 Specifies the highest version of the application that has ever
saved this file.<39>
0x3 Specifies the highest version of the application that has ever
saved this file. <40>
0x4 Specifies the highest version of the application that has ever
saved this file.<41>
0x6 Specifies the highest version of the application that has ever
saved this file.<42>
0x7 Specifies the highest version of the application that has ever
saved this file.<43>
2.4.22 BookBool
The BookBool record specifies some of the properties associated with a workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H reserved2
A - fNoSaveSup (1 bit): A bit that specifies that external link values are saved in the workbook.
MUST be a value from the following table:
Value Meaning
0 External link values are saved.
1 External link values are not saved.
C - fHasEnvelope (1 bit): A bit that specifies whether the workbook has an envelope as a result of
sending the workbook to a mail recipient. If fEnvelopeVisible is 1 or fEnvelopeInitDone is 1,
then this bit MUST be 1.
214 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fEnvelopeVisible (1 bit): A bit that specifies whether the envelope is visible.
E - fEnvelopeInitDone (1 bit): A bit that specifies whether the envelope has been initialized.
F - grUpdateLinks (2 bits): An unsigned integer that specifies when the application updates external
links in the workbook. The value MUST be one of the following:
Value Meaning
0 Prompt user to update.
1 Do not update, and do not prompt user.
2 Silently update external links. The application can choose to prompt the user because of
security concerns<44>.
H - fHideBorderUnselLists (1 bit): A bit that specifies whether to hide borders of tables that do
not contain the active cell<45>.
2.4.23 BookExt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cb
A B C D E F G H I reserved
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0863.
cb (4 bytes): An unsigned integer that specifies the size of the record in bytes.
A - fDontAutoRecover (1 bit): A bit that specifies whether AutoRecover is disabled for the
workbook.
B - fHidePivotList (1 bit): A bit that specifies whether the PivotTable field list is hidden for this
workbook.
C - fFilterPrivacy (1 bit): A bit that specifies whether personal information is removed from this
workbook on save.
D - fEmbedFactoids (1 bit): A bit that specifies whether smart tags are embedded in this
workbook on save.
215 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
E - mdFactoidDisplay (2 bits): A bit that specifies how smart tags are displayed in the workbook.
The value MUST be one of the following:
Value Meaning
0x00 The application will display the smart tag actions button and the smart tag indicator.
0x01 The application will display the smart tag actions button only. The smart tag indicators will
not be displayed.
0x02 The application will not display the smart tag actions button or the smart tag indicator.
F - fSavedDuringRecovery (1 bit): A bit that specifies whether the workbook was saved during
AutoRecover.
G - fCreatedViaMinimalSave (1 bit): A bit that specifies whether the workbook was created by a
minimal save during data recovery.
H - fOpenedViaDataRecovery (1 bit): A bit that specifies whether the workbook was opened by
means of data recovery.
I - fOpenedViaSafeLoad (1 bit): A bit that specifies whether the workbook was opened in safe
load mode.
2.4.24 BoolErr
The BoolErr record specifies a cell that contains either a Boolean value or an error value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
... bes
2.4.25 BopPop
The BopPop record specifies that the chart group is a bar of pie chart group or a pie of pie chart
group and specifies the chart group attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
216 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iSplitPos pcSplitPercent
pcPie2Size pcGap
numSplitValue
...
A reserved
pst (1 byte): An unsigned integer that specifies whether this chart group is a bar of pie chart group
or a pie of pie chart group. MUST be a value from the following table:
Value Subtype
0x01 Pie of pie chart group
fAutoSplit (1 byte): A Boolean (section 2.5.14) that specifies whether the split point of the chart
group is determined automatically. If the value is 1, when a bar of pie chart group or pie of pie
chart group is initially created the data points from the primary pie are selected and inserted into
the secondary bar/pie automatically.
split (2 bytes): An unsigned integer that specifies what determines the split between the primary pie
and the secondary bar/pie. MUST be ignored if fAutoSplit is set to 1. MUST be a value from the
following table:
iSplitPos (2 bytes): A signed integer that specifies how many data points are contained in the
secondary bar/pie. Data points are contained in the secondary bar/pie starting from the end of the
series. For example, if the value is 2, the last 2 data points in the series are contained in the
secondary bar/pie. MUST be a value greater than or equal to 0 and less than or equal to 32000. If
the value is more than the number of data points in the series, the entire series will be in the
secondary bar/pie, except for the first data point. If split is not set to 0x0000 or fAutoSplit is set
to 1, this value MUST be ignored.
pcSplitPercent (2 bytes): A signed integer that specifies the percentage below which each data
point is contained in the secondary bar/pie as opposed to the primary pie. The percentage value of
a data point is calculated using the following formula:
(value of the data point x 100) / sum of all data points in the series
217 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If split is not set to 0x0002 or if fAutoSplit is set to 1, this value MUST be ignored
pcPie2Size (2 bytes): A signed integer that specifies the size of the secondary bar/pie as a
percentage of the size of the primary pie. MUST be a value greater than or equal to 5 and less
than or equal to 200.
pcGap (2 bytes): A signed integer that specifies the distance between the primary pie and the
secondary bar/pie. The distance is specified as a percentage of the average width of the primary
pie and secondary bar/pie. MUST be a value greater than or equal to 0 and less than or equal to
500, where 0 is 0% of the average width of the primary pie and the secondary bar/pie, and 500 is
250% of the average width of the primary pie and the secondary bar/pie.
numSplitValue (8 bytes): An Xnum (section 2.5.342) value that specifies the split when the split
field is set to 0x0001. The value of this field specifies the threshold that selects which data points
of the primary pie move to the secondary bar/pie. The secondary bar/pie contains any data points
with a value less than the value of this field. If split is not set to 0x0001 or if fAutoSplit is set to
1, this value MUST be ignored.
A - fHasShadow (1 bit): A bit that specifies whether one or more data points in the chart group
have shadows.
2.4.26 BopPopCustom
The BopPopCustom record specifies which data points in the series are contained in the secondary
bar/pie instead of the primary pie. MUST follow a BopPop record that has its split field set to
Custom (0x0003).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cxi (2 bytes): An unsigned integer that specifies to the number of data points in the series plus one.
MUST be less than 32000.
rggrbit (variable): A sequence of bits that specifies whether each data point in the series is
contained in the primary pie or the secondary bar/pie. For each data point a corresponding bit
specifies whether a data point is contained in the secondary bar/pie or primary pie as specified in
the following table:
Meaning
Value
The size of this field, in bytes, is calculated using the following formula:
218 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The padding of this field, in bits, is calculated using the following formula:
The position of each bit in the sequence corresponds to the position of each data point in the
series arranged as follows:
Any padding is placed in the most significant bits of the first byte. The next most significant bit of
the first byte corresponds to the first data point in the series. If there are any more unused bits in
the first byte, the next most significant bit corresponds to the second data point in the series. This
pattern continues until there are no remaining unused bits in the first byte.
The most significant bit of the next byte corresponds to the next data point in the series. The next
most significant bit contains the next data point in the series. This pattern continues for each byte
in the sequence.
The least significant bit of the final byte is an additional bit that specifies whether the secondary
bar/pie does not contain data points. If the value of the additional bit is 1, the value of every other
bit MUST be 0.
Byte 0
0 (LSB) 1 2 3 4 5 6 7
Byte 1
8 9 10 11 12 13 14 15 (MSB)
Data Point Data Point Data Point Data Point Data Point Data Point Data Point
Additional Bit 10 9 8 7 6 5 4
2.4.27 BottomMargin
The BottomMargin record specifies the bottom margin of the current sheet (1).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
...
num (8 bytes): An Xnum (section 2.5.342) value that specifies the bottom margin of the current
sheet (1) in inches. The value MUST be greater than or equal to 0 and less than or equal to 49.
219 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.28 BoundSheet8
The BoundSheet8 record specifies basic information about a sheet (1), including the sheet (1)
name, hidden state, and type of sheet (1).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
lbPlyPos
...
lbPlyPos (4 bytes): A FilePointer as specified in [MS-OSHARED] section 2.2.1.5 that specifies the
stream position of the start of the BOF record for the sheet (1).
A - hsState (2 bits): An unsigned integer that specifies the hidden state of the sheet (1). MUST be a
value from the following table:
Value Meaning
0x00 Visible
0x01 Hidden
0x02 Very Hidden; the sheet (1) is hidden and cannot be displayed using
the user interface.
dt (8 bits): An unsigned integer that specifies the sheet (1) type. MUST be a value from the following
table:
Value Meaning
0x00 Worksheet or dialog sheet
The sheet substream that starts with the BOF record specified in
lbPlyPos MUST contain one WsBool record. If the fDialog field in
that WsBool is 1 then the sheet is dialog sheet. Otherwise, the sheet
is a worksheet.
0x01 Macro sheet
0x0000
0x0003
220 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colon (:)
backslash (\)
asterisk (*)
The string MUST NOT begin or end with the single quote (') character.
2.4.29 BRAI
The BRAI record specifies a reference to data in a sheet that is used by a part of a series, legend
entry, trendline or error bars.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id rt A reserved
...
id (1 byte): An unsigned integer that specifies the part of the series, trendline, or error bars the
referenced data specifies. MUST be a value from the following table:
Value Meaning
0x00 Referenced data specifies the series, legend entry, or trendline name.
Error bars name MUST be empty.
0x01 Referenced data specifies the values or horizontal values on bubble and
scatter chart groups of the series and error bars.
0x02 Referenced data specifies the categories (2) or vertical values on
bubble and scatter chart groups of the series and error bars.
0x03 Referenced data specifies the bubble size values of the series.
rt (1 byte): An unsigned integer that specifies the type of data that is being referenced. MUST be a
value from the following table:
Value Meaning
0x00 The data source is a category (2) name, series name or bubble size
that was automatically generated.
0x01 The data source is the text or value as specified by the formula field.
0x02 The data source is the value from a range of cells in a sheet specified
by the formula field.
221 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fUnlinkedIfmt (1 bit): A bit that specifies whether the part of the chart specified by the id field
uses number formatting from the referenced data. MUST be a value from the following table:
Value Meaning
0x0 The data uses the number formatting of the referenced data.
0x1 The data uses the custom number formatting specified in the ifmt field.
ifmt (2 bytes): An IFmt structure that specifies the number format to use for the data.
formula (variable): A ChartParsedFormula structure that specifies the formula (section 2.2.2) that
specifies the reference.
2.4.30 BuiltInFnGroupCount
The BuiltInFnGroupCount record specifies the beginning of a collection of records as defined by the
Globals Substream ABNF. The collection of records specifies information about the built-in function
categories in the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
count
count (2 bytes): An unsigned integer that specifies the number of built-in function categories in the
workbook. The sum of count, the count of FnGroupName (section 2.4.120) records and the
count of FnGrp12 (section 2.4.121) records in the current workbook MUST be less than or equal
to 256. The user-defined function categories include those defined in FnGroupName records and
FnGrp12 records. The value MUST be one of the following:
Value Meaning
0x0E There are 14 built-in function categories in the
workbook. This implies that the file was last saved
by a specific version of the application<46>.
222 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
visible to the end-user: UserDefined, commands,
Customize, MacroControl, DDEExternal
2.4.31 CalcCount
The CalcCount record specifies the iteration count for a calculation in iterative calculation mode.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cIter
cIter (2 bytes): A signed integer that specifies the maximum number of iterations that can occur for
a calculation in iterative calculation mode. MUST be greater than or equal to one and less than or
equal to 32767.
2.4.32 CalcDelta
The CalcDelta record specifies the minimum value change required for iterative calculation to
continue.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numDelta
...
numDelta (8 bytes): An Xnum (section 2.5.342) value that specifies the amount of change in value
for a given cell from the previously calculated value for that cell that MUST exist for the iteration
to continue. The value MUST be greater than or equal to 0.
2.4.33 CalcIter
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
vfIter
vfIter (2 bytes): A Boolean (section 2.5.14) that specifies whether to enable iterative calculation.
If the value is 0, iterative calculation is disabled. If the value is 1, iterative calculation is enabled.
2.4.34 CalcMode
The CalcMode record specifies the calculation mode for the workbook.
223 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fAutoRecalc
fAutoRecalc (2 bytes): A signed integer that specifies whether the calculation mode is automatic or
manual.
Value Meaning
0 Manual
1 Automatic
2 Automatic, except for tables
2.4.35 CalcPrecision
The CalcPrecision record specifies the calculation precision mode for the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fFullPrec
fFullPrec (2 bytes): A Boolean (section 2.5.14) that specifies whether the precision as displayed
mode is selected.
If the value is 0, the precision as displayed mode is selected. If the value is 1, the precision as
displayed mode is not selected.
2.4.36 CalcRefMode
The CalcRefMode record specifies the reference style for the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fRefA1
fRefA1 (2 bytes): A Boolean (section 2.5.14) that specifies the reference style for all formulas.
If the value is 0, the mode is R1C1. If the value is 1, the mode is A1.
2.4.37 CalcSaveRecalc
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fSaveRecalc
224 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fSaveRecalc (2 bytes): A Boolean (section 2.5.14) that specifies whether to recalculate the
workbook before it is saved, when in manual calculation mode. If the value is 0, the workbook
is not recalculated before it is saved. If the value is 1, the workbook is recalculated before it is
saved.
2.4.38 CatLab
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
wOffset at
wOffset (2 bytes): An unsigned integer that specifies the distance between the axis and axis label. It
contains the offset as a percentage of the default distance. The default distance is equal to 1/3 the
height of the font calculated in pixels. MUST be a value greater than or equal to 0 (0%) and less
than or equal to 1000 (1000%).
at (2 bytes): An unsigned integer that specifies the alignment of the axis label. MUST be a value
from the following table:
Value Alignment
0x0001 Top-aligned if the trot field of the Text record of the axis is not equal to
0. Left-aligned if the iReadingOrder field of the Text record of the axis
specifies left-to-right reading order; otherwise, right-aligned.
0x0002 Center-alignment
0x0003 Bottom-aligned if the trot field of the Text record of the axis is not
equal to 0. Right-aligned if the iReadingOrder field of the Text record
of the axis specifies left-to-right reading order; otherwise, left-aligned.
A - cAutoCatLabelReal (1 bit): A bit that specifies whether the number of categories (2) between
axis labels is set to the default value. MUST be a value from the following table:
Value Description
0 The value is set to catLabel field as specified by CatSerRange record.
1 The value is set to the default value. The number of category (2) labels
is automatically calculated by the application based on the data in the
chart.
2.4.39 CatSerRange
The CatSerRange record specifies the properties of a category (2) axis, a date axis, or a series axis.
225 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
catCross catLabel
catMark A B C reserved
catCross (2 bytes): A signed integer that specifies where the value axis crosses this axis, based on
the following table. If fMaxCross is set to 1, the value this field MUST be ignored.
Date axis catCross MUST be equal to the value given by the following formula:
catLabel (2 bytes): A signed integer that specifies the interval between axis labels on this axis.
MUST be greater than or equal to 1 and less than or equal to 31999. MUST be ignored for a date
axis.
catMark (2 bytes): A signed integer that specifies the interval at which major tick marks and
minor tick marks are displayed on the axis. Major tick marks and minor tick marks that would
have been visible are hidden unless they are located at a multiple of this field. MUST be greater
than or equal to 1, and less than or equal to 31999. MUST be ignored for a date axis.
A - fBetween (1 bit): A bit that specifies whether the value axis crosses this axis between major tick
marks. MUST be a value from to following table:
Value Meaning
1 The value axis crosses this axis between major tick marks.
B - fMaxCross (1 bit): A bit that specifies whether the value axis crosses this axis at the last
category (2), the last series, or the maximum date. MUST be a value from the following table:
Value Meaning
0 The value axis crosses this axis at the value specified by catCross.
1 The value axis crosses this axis at the last category (2), the last series,
or the maximum date.
226 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fReverse (1 bit): A bit that specifies whether the axis is displayed in reverse order. MUST be a
value from the following table:
Value Meaning
2.4.40 CbUsr
The CbUsr record specifies the size of each UsrInfo record stored as part of a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
rgCbUsr (512 bytes): An array of 2-byte unsigned integers. Each element in the array specifies the
byte count for the UsrInfo record whose index in the collection of UsrInfo records following CbUsr
corresponds to the index of the element. Array elements with a zero-based index greater than or
equal to the count of users specified in the iCount field in CUsr MUST be zero and MUST be
ignored.
2.4.41 CellWatch
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
...
reserved
frtRefHeaderU (12 bytes): An FrtRefHeaderU structure that specifies the cell to be watched. The
frtRefHeaderU.rt field MUST be 0x086C. The frtRefHeaderU.grbitFrt.fFrtRef MUST be 1. The
frtRefHeaderU.ref8 specifies the cell.
227 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.42 CF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ct cp cce1
...
rgce1 (variable)
...
rgce2 (variable)
...
ct (1 byte): An unsigned integer that specifies the type of condition. MUST be a value from the
following table:
Value Meaning
0x01 Apply the conditional formatting when the comparison function
specified by cp applied to the cell value, rgce1 and rgce2, evaluates
to TRUE.
0x02 Apply the conditional formatting when the formula (section 2.2.2)
specified by rgce1 evaluates to TRUE.
cp (1 byte): An unsigned integer that specifies the comparison function used when ct is equal to
0x01. In the following table, v represents the cell value, and v1 and v2 represent the results of
evaluating the formulas specified by rgce1 and rgce2. The value of this field MUST be a value
from the following table:
228 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Apply the conditional formatting if
0x07 v is greater than or equal to v1
0x08 v is less than or equal to v1
cce1 (2 bytes): An unsigned integer that specifies the size of rgce1 in bytes. MUST be less than or
equal to 16409.
cce2 (2 bytes): An unsigned integer that specifies the size of rgce2 in bytes. MUST be zero when ct
is equal to 0x02. MUST be zero when ct is equal to 0x01 and cp is greater than 0x02. MUST be
less than or equal to 16409.
rgbdxf (variable): A DXFN structure that specifies the formatting to apply to a cell that fulfills the
condition.
rgce1 (variable): A CFParsedFormulaNoCCE structure that specifies the first formula. If ct is equal to
0x01, this field is the first operand of the comparison. If ct is equal to 0x02, this formula is used
to determine if the conditional formatting is applied. The size of rgce1 in bytes MUST be equal to
cce1.
rgce2 (variable): A CFParsedFormulaNoCCE structure that specifies the formula that is the second
operand of the comparison if ct is equal to 0x01 and cp is either equal to 0x01 or 0x02. The size
of rgce2 in bytes MUST be equal to cce2.
2.4.43 CF12
All CF12 records MUST follow a CondFmt12 record, another CF12 record, or a CFEx record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeader
...
...
ct cp cce1
...
rgce1 (variable)
...
rgce2 (variable)
...
229 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fmlaActive (variable)
...
A B C D E ipriority icfTemplate
...
...
...
frtRefHeader (12 bytes): An FrtRefHeader. The frtRefHeader.rt field MUST be 0x087A. The
frtRefHeader.grbitFrt.fFrtRef field MUST be zero. All of the fields of the frtRefHeader.ref8
structure MUST be zero and MUST be ignored.
ct (1 byte): An unsigned integer that specifies the type of condition. This field determines the type of
the rgbCT field as specified in the following table. MUST be a value from the following table:
Value Meaning
0x01 Apply the conditional formatting if the comparison operation specified by cp
evaluates to TRUE
rgbCT is a CFGradient.
0x04 Use data bar formatting.
rgbCT is a CFDatabar.
0x05 Apply the conditional formatting when the cell value passes a filter specified in
the rgbCT structure.
rgbCT is a CFFilter.
0x06 Use icon set formatting
rgbCT is a CFMultistate.
cp (1 byte): An unsigned integer that specifies the comparison function used when ct is equal to
0x01. In the following table, v represents the cell value, and v1 and v2 represent the results of
evaluating rgce1 and rgce2. The value of this field MUST be a value from the following table:
230 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Apply the conditional formatting if
–Or–
v1 is greater than v2, and v is greater than or equal to v2 and less than or
equal to v1
0x02 v2 is greater than or equal to v1, and v is less than v1 or greater than v2
–Or–
v1 is greater than v2, and v is less than v2 or greater than v1
0x03 v is equal to v1
0x04 v is not equal to v1
0x05 v is greater than v1
0x06 v is less than v1
0x07 v is greater than or equal to v1
0x08 v is less than or equal to v1
cce1 (2 bytes): An unsigned integer that specifies the size of rgce1 in bytes. MUST be zero unless ct
is equal to 0x01 or 0x02. MUST be less than or equal to 16409.
cce2 (2 bytes): An unsigned integer that specifies the size of rgce2 in bytes. MUST be zero unless ct
is equal to 0x01 and cp is equal to 0x01 or 0x02. MUST be less than or equal to 16409.
dxf (variable): A DXFN12 that specifies the formatting to apply to a cell that fulfills the condition. If
ct is equal to 0x03, 0x04 or 0x06, then dxf.cbDxf MUST be equal to 0x00000000.
rgce1 (variable): A CFParsedFormulaNoCCE that specifies the formula used to evaluate the first
operand in a comparison when ct is 0x01. If ct is 0x02 rgce1 MUST be a Boolean function.
rgce2 (variable): A CFParsedFormulaNoCCE that specifies the formula used to evaluate the second
operand of the comparison when ct is 0x01 and cp is either 0x01 or 0x02.
fmlaActive (variable): A CFParsedFormula that specifies the formula that specifies an activity
condition for the color scale, data bar and icon set formatting rule types. If ct is equal to 0x03,
0x04 or 0x06, then the conditional formatting is applied if fmlaActive evaluates to TRUE.
B - fStopIfTrue (1 bit): A bit that specifies whether, when a cell fulfills the condition corresponding
to this rule, the lower priority conditional formatting rules that apply to this cell are evaluated.
MUST be one of the following values:
Value Meaning
0x0 Evaluate lower priority conditional formatting rules that apply to this cell
0x1 If the cell fulfills the condition corresponding to this rule, do not evaluate lower priority
conditional formatting rules that apply to this cell
231 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ipriority (2 bytes): An unsigned integer that specifies the priority of the rule. Rules that apply to the
same cell are evaluated in increasing order of ipriority. MUST be unique across all CF12 records
and CFExNonCF12 structures in the worksheet substream.
icfTemplate (2 bytes): An unsigned integer that specifies the template from which the rule was
created. MUST be a value from the following table:
Value Meaning
0x0000 Cell value
0x0001 Formula
0x0002 Color scale formatting
0x0003 Data bar formatting
0x0004 Icon set formatting
0x0005 Filter
0x0007 Unique values
0x0008 Contains text
0x0009 Contains blanks
0x000A Contains no blanks
0x000B Contains errors
0x000C Contains no errors
0x000F Today
0x0010 Tomorrow
0x0011 Yesterday
0x0012 Last 7 days
0x0013 Last month
0x0014 Next month
0x0015 This week
0x0016 Next week
0x0017 Last week
0x0018 This month
0x0019 Above average
0x001A Below Average
0x001B Duplicate values
0x001D Above or equal to average
0x001E Below or equal to average
cbTemplateParm (1 byte): An unsigned integer that specifies the size of the rgbTemplateParms
field in bytes. MUST be 16.
rgbTemplateParms (16 bytes): A CFExTemplateParams that specifies the parameters for the rule.
rgbCT (variable): A field that specifies the parameters of this rule. The type of rgbCT depends on
the value of ct.
2.4.44 CFEx
232 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
...
fIsCF12
...
fIsCF12 (4 bytes): A Boolean (section 2.5.14) that specifies what type of rule this record extends.
MUST be one of the following values:
Value Meaning
0x00000000 This record extends a rule specified by a CF record
and MUST NOT be followed by a CF12 record.
0x00000001 This record extends a rule specified by a CF12
record and MUST be followed by the CF12 record it
extends.
nID (2 bytes): An unsigned integer that specifies which CondFmt record is being extended. It MUST
be equal to the nID field of one of the CondFmt records in the Worksheet substream.
2.4.45 Chart
The Chart record specifies the position and size of the chart area (section 2.2.3.17) and specifies the
beginning of a collection of records as defined by the Chart Sheet Substream ABNF. The collection of
records specifies a chart. The position information MUST be ignored if the chart is embedded in a
sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dx
dy
233 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
x (4 bytes): A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6 that specifies the horizontal
position of the upper-left corner of the chart in points. SHOULD<48> be greater than or equal to
zero.
y (4 bytes): A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6 that specifies the vertical
position of the upper-left corner of the chart in points. SHOULD<49> be greater than or equal to
zero.
dx (4 bytes): A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6 that specifies the width in
points. SHOULD<50> be greater than or equal to zero.
dy (4 bytes): A FixedPoint as specified in [MS-OSHARED] section 2.2.1.6 that specifies the height in
points. SHOULD<51> be greater than or equal to zero.
2.4.46 Chart3d
The Chart3d record specifies that the plot area of the chart group is rendered in a 3-D scene and
also specifies the attributes of the 3-D plot area. The preceding chart group type MUST be of type bar,
pie, line, area, or surface.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
anRot anElev
pcDist pcHeight
pcDepth pcGap
A B C D E F reserved2
anRot (2 bytes): A signed integer that specifies the clockwise rotation, in degrees, of the 3-D plot
area around a vertical line through the center of the 3-D plot area. MUST be greater than or equal
to 0 and MUST be less than or equal to 360. If chart group type is bar and the value of field
fTranspose in the record Bar is 1, then MUST be less than or equal to 44.
anElev (2 bytes): A signed integer that specifies the rotation, in degrees, of the 3-D plot area around
a horizontal line through the center of the 3-D plot area. MUST be greater than or equal to -90
and MUST be less than or equal to 90. If the chart group type is bar and the value of field
fTranspose in the record Bar is 1, or the chart group type is pie then MUST be greater than or
equal to 0. If the chart group type is bar and the value of field fTranspose in the record Bar is 1,
then the value MUST be less than or equal to 44.
pcDist (2 bytes): A signed integer that specifies the field of view angle for the 3-D plot area. MUST
be greater than or equal to zero and less than 200. SHOULD<52> be less than or equal to 100.
pcHeight (2 bytes): If fNotPieChart is 0, then this is an unsigned integer that specifies the
thickness of the pie for a pie chart group. If fNotPieChart is 1, then this is a signed integer that
specifies the height of the 3-D plot area as a percentage of its width. SHOULD<53> be greater
than or equal to 5, MUST be less than 65535 and SHOULD<54> be less than or equal to 500.
pcDepth (2 bytes): A signed integer that specifies the depth of the 3-D plot area as a percentage of
its width. MUST be greater than or equal to 1 and less than or equal to 2000.
pcGap (2 bytes): An unsigned integer that specifies the width of the gap between the series and the
front and back edges of the 3-D plot area as a percentage of the data point depth divided by 2. If
234 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fCluster is not 1 and chart group type is not a bar then pcGap also specifies distance between
adjacent series as a percentage of the data point depth. MUST be less than or equal to 500.
A - fPerspective (1 bit): A bit that specifies whether the 3-D plot area is rendered with a vanishing
point. If fNotPieChart is 0 the value MUST be 0. If fNotPieChart is 1 then the value MUST be a
value from the following table:
Value Meaning
0 No vanishing point applied.
1 Perspective vanishing point applied based on value of pcDist.
B - fCluster (1 bit): A bit that specifies whether data points are clustered together in a bar chart
group. If chart group type is not bar or pie, value MUST be ignored. If chart group type is pie,
value MUST be 0. If chart group type is bar, then the value MUST be a value from the following
table:
Value Meaning
0 Data points are not clustered.
1 Data points are clustered.
C - f3DScaling (1 bit): A bit that specifies whether the height of the 3-D plot area is automatically
determined. If fNotPieChart is 0 then this MUST be 0. If fNotPieChart is 1 then the value MUST
be a value from the following table:
Value Meaning
0 The value of pcHeight is used to determine the height of the 3-D plot area
1 The height of the 3-D plot area is automatically determined
E - fNotPieChart (1 bit): A bit that specifies whether the chart group type is pie. MUST be a value
from the following table:
Value Meaning
0 Chart group type MUST be pie.
1 Chart group type MUST NOT be pie.
F - fWalls2D (1 bit): A bit that specifies whether the walls are rendered in 2-D<55>. If
fPerspective is 1 then this MUST be ignored. If the chart group type is not bar, area or pie this
MUST be ignored. If the chart group is of type bar and fCluster is 0, then this MUST be ignored. If
the chart group type is pie this MUST be 0 and MUST be ignored. If the chart group type is bar or
area, then the value MUST be a value from the following table:
Value Meaning
0 Chart walls and floor are rendered in 3D.
1 Chart walls are rendered in 2D and the chart floor is not rendered.
235 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved2 (10 bits): MUST be zero, and MUST be ignored.
2.4.47 Chart3DBarShape
The Chart3DBarShape record specifies the shape of the data points in a bar or column chart group.
This record is only used for a bar or column chart group and MUST be ignored for all other chart
groups. This record MUST be ignored if the current substream does not contain a Chart3d record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
riser taper
riser (1 byte): A Boolean (section 2.5.14) that specifies the shape of the base of the data points in a
bar or column chart group. MUST be a value from the following table:
Value Meaning
0x00 The base of the data point is a rectangle.
0x01 The base of the data point is an ellipse.
taper (1 byte): An unsigned integer that specifies how the data points in a bar or column chart group
taper from base to tip. MUST be a value from the following table:
Value Meaning
0x00 The data points of the bar or column chart group do not taper. The shape at the maximum
value of the data point is the same as the shape at the base.
0x01 The data points of the bar or column chart group taper to a point at the maximum value of
each data point.
0x02 The data points of the bar or column chart group taper towards a projected point at the
position of the maximum value of all of the data points in the chart group, but are clipped at
the value of each data point.
2.4.48 ChartFormat
The ChartFormat record specifies properties of a chart group and specifies the beginning of a
collection of records as defined by the Chart Sheet Substream ABNF. The collection of records
specifies a chart group.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1
reserved2
reserved3
reserved4
A reserved5 icrt
236 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved1 (4 bytes): MUST be zero, and MUST be ignored.
A - fVaried (1 bit): A bit that specifies whether the color for each data point and the color and type
for each data marker varies. If the chart group has multiple series, or the chart group has one
series and the type is either a surface, stock, or area chart group, then this field MUST be ignored,
and the data points do not vary. For all other chart group types, if the chart group has one series,
then a value of 0x1 specifies that the data points vary. MUST be a value from the following table:
Value Meaning
0x0 The color for each data point and the color and type for each data marker does not vary.
0x1 The color for data points or the color or type for data markers varies.
icrt (2 bytes): An unsigned integer that specifies the drawing order of the chart group relative to the
other chart groups, where 0x0000 is the bottom of the z-order. This value MUST be unique for
each instance of this record and MUST be less than or equal to 0x0009.
2.4.49 ChartFrtInfo
The ChartFrtInfo record specifies the versions of the application that originally created and last
saved the file, and the Future Record identifiers that are used in the file. This property was introduced
by a version of the application<56> as a Future Record for a chart.
In a file written by some versions of the application <57>, this record appears before the end of the
Chart record block and before any other Future Record in the record stream. This record does not
exist in a file created by certain versions of the application<58>, but appears after the End record of
the Chart record block in a file updated by other versions of the application<59>, in which case the
verWriter field MUST be a certain version of the application<60> regardless of the actual value in the
record.
If a CrtMlFrt record exists in a sequence of records that conforms to the CRTMLFRT rule of the chart
sheet substream, then this record MUST immediately precede the sequence of records that conforms
to the PAGESETUP rule for the chart sheet substream. Otherwise, it MUST immediately precede the
first chart-specific future record, which is a record that has a record number greater than or equal to
2048 and less than or equal to 2303 according to Record Enumeration.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
rgCFRTID (variable)
...
237 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
frtHeaderOld (4 bytes): An FrtHeaderOld structure. The frtHeaderOld.rt field MUST be 0x0850.
verOriginator (1 byte): An unsigned integer that specifies the application version that originally
created the file. MUST be a value from the following table:
Value Meaning
0x9 Specifies the application version<61>
0xA Specifies the application version<62>
0xC Specifies the application version<63>
0xE Specifies the application version<64>
0xF Specifies the application version<65>
verWriter (1 byte): An unsigned integer that specifies the application version that last saved the file.
MUST be a value from the following table:
Value Meaning
0x9 Specifies the application version<66>
0xA Specifies the application version<67>
0xC Specifies the application version<68>
0xE Specifies the application version<69>
0xF Specifies the application version<70>
cCFRTID (2 bytes): An unsigned integer that specifies the number of elements in rgCFRTID. The
value depends on the value in verWriter. It MUST be 0x1 if verWriter is 0x9; 0x3 if verWriter
is 0xA; 0x4 if verWriter is 0xC or 0xE.
rgCFRTID (variable): An array of CFrtId structures. This field specifies the range of Future Record
Type identifiers used in the chart. The range of values is determined by the value of verWriter as
specified in the following table:
0x0850, 0x085A
0xA 0x0861, 0x0861
0x086A, 0x086B
0x0850, 0x085A
0xC or 0xE 0x0861, 0x0861
0x086A, 0x086B
0x089D, 0x08A6
2.4.50 ClrtClient
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
238 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
ccv (2 bytes): A signed integer that specifies the number of colors in the rgColor array. The value
MUST be 3.
rgColor (variable): An array of LongRGB structures. The array specifies the colors of the color
palette. The elements MUST contain the following values:
2.4.51 CodeName
The CodeName record specifies the name of a workbook object, a sheet object in the VBA project
located in this file. If this record is in the Globals Substream, the name is for the workbook object. If
this record is in a Chart Sheet Substream, the name is for the chart sheet object representing the
sheet. If this record is in a Macro Sheet Substream, the name is for the macro sheet object
representing the sheet. If this record is in a Dialog Sheet Substream, the name is for the dialog
sheet object representing the sheet. If this record is in a Worksheet Substream, the name is for the
worksheet object representing the sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
codeName (variable)
...
codeName (variable): An XLUnicodeString structure that specifies the name used to identify the
workbook object or sheet object in the VBA project embedded in this file. The value of
codename.cch MUST be less than or equal to 31.
If this string is not empty, it MUST contain only the characters that can be mapped from Unicode
to a multiple-byte ANSI character set specified by the system locale. If the system locale is
Chinese, Japanese, or Korean, then the full-width characters in the resulting ANSI string are
further mapped to corresponding half-width characters where applicable.
In the resulting ANSI string, the first character MUST be a letter, a single-byte character with a
code greater than 0x7F, or multiple-byte character. The subsequent characters in the resulting
ANSI string MUST be a digit, an underscore, a single-byte character with a code greater that 0x7F,
or a multiple-byte character.
If the system locale is Japanese, the original Unicode string MUST NOT contain a character with a
code equal to 0xFFE3.
2.4.52 CodePage
The CodePage record specifies code page information for the workbook.
239 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cv
cv (2 bytes): An unsigned integer that specifies the workbook’s code page. The value MUST be one
of the code page values specified in [CODEPG] or the special value 1200, which means that the
workbook is Unicode.
2.4.53 ColInfo
The ColInfo record specifies the column formatting for a range of columns.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
colFirst colLast
coldx ixfe
A B C D E F G H I unused2
colFirst (2 bytes): A Col256U structure that specifies the first formatted column.
colLast (2 bytes): A Col256U structure that specifies the last formatted column. The value MUST be
greater than or equal to colFirst.
coldx (2 bytes): An unsigned integer that specifies the column width in units of 1/256 th of a
character width. Character width is defined as the maximum digit width of the numbers 0, 1, 2, …
9 as rendered in the Normal style’s font.
ixfe (2 bytes): An IXFCell structure that specifies the default format for the column cells.
A - fHidden (1 bit): A bit that specifies whether the column range defined by colFirst and colLast
is hidden.
B - fUserSet (1 bit): A bit that specifies that the column width was either manually set by the user
or is different from the default column width as specified by DefColWidth. If the value is 1, the
column width was manually set or is different from DefColWidth.
C - fBestFit (1 bit): A bit that specifies whether the column range defined by colFirst and colLast
is set to "best fit." "Best fit" implies that the column width resizes based on the cell contents, and
that the column width does not equal the default column width as specified by DefColWidth.
D - fPhonetic (1 bit): A bit that specifies whether phonetic information is displayed by default for
the column range defined by colFirst and colLast.
F - iOutLevel (3 bits): An unsigned integer that specifies the outline level of the column range
defined by colFirst and colLast.
H - fCollapsed (1 bit): A bit that specifies whether the column range defined by colFirst and
colLast is in a collapsed outline state.
240 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused2 (2 bytes): Undefined and MUST be ignored.
2.4.54 Compat12
The Compat12 record specifies whether to check for compatibility with earlier application versions
when saving the workbook from a version of the application<71> to the binary formats of other
versions of the application<72>.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
fNoCompatChk
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x088C.
fNoCompatChk (4 bytes): A Boolean (section 2.5.14) that specifies whether to check compatibility
with earlier versions when saving the workbook. The value MUST be one of the following:
Value Meaning
0x0000 When saving the workbook to a binary format of a version of the application<73>, the user
is given the message that some newer features could be lost during the save and prompted
to continue or cancel the save.
0x0001 When saving the workbook to a binary format of a version of the application<74>, the user
is given no message or prompt before the workbook is saved.
2.4.55 CompressPictures
The CompressPictures record specifies a recommendation for picture compression when saving.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
fAutoCompressPictures
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x89B.
241 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00000000 Compression is not recommended.
0x00000001 Compression is recommended.
2.4.56 CondFmt
The CondFmt record specifies conditional formatting rules that are associated with a set of cells.
This record specifies the beginning of a collection of CF records as defined in the Worksheet
Substream ABNF. The collection of CF records specifies conditional formatting rules.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ccf A nID
refBound
...
sqref (variable)
...
ccf (2 bytes): An unsigned integer that specifies the count of CF records that follow this record.
MUST be greater than or equal to 0x0001, and less than or equal to 0x0003.
A - fToughRecalc (1 bit): A bit that specifies that the appearance of the cell requires significant
processing. This information can be used to optimize the redraw of conditional formatting when
data values change.
For example, an application could determine that a conditional formatting rule that contains
certain functions or a conditional formatting rule that takes more than a predetermined amount of
time to calculate designates that the conditional formatting requires significant processing, and
could set this bit to 1.
nID (15 bits): An unsigned integer that identifies this record. The CFEx record uses this identifier to
specify which CondFmt it extends.
refBound (8 bytes): A Ref8U structure that specifies the bounds of the set of cells to which the
conditional formatting rules apply. The set of cells that this field represents MUST include all of
the cells represented by the sqref field.
sqref (variable): A SqRefU structure that specifies the cells to which the conditional formatting rules
apply. sqref.cref MUST be greater than zero and less than or equal to 1026.
2.4.57 CondFmt12
The CondFmt12 record specifies conditional formatting rules that are associated with a set of
cells, when all the rules are specified using CF12 records.
This record specifies the beginning of a collection of CF12 records as defined in the Worksheet
Substream ABNF.
242 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This record MUST be followed by the number of CF12 records specified by mainCF.ccf
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
...
mainCF (variable)
...
2.4.58 Continue
The Continue record specifies a continuation of the data in a preceding record. Records with data
longer than 8,224 bytes MUST be split into several records. The first section of the data appears in the
base record and subsequent sections appear in one or more Continue records that appear after the
base record. Records with data shorter than 8,225 bytes can also store data in the base record and
following Continue records. For example, the size of TxO record is less than 8,225 bytes, but it is
followed by Continue records that store the string data and formatting runs.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
continue (variable)
...
continue (variable): A binary stream that specifies the structure data. The number of bytes in this
stream MUST be less than 8225.
2.4.59 ContinueBigName
The ContinueBigName record specifies a continuation of the data in a preceding BigName record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
continue (variable)
...
243 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
continue (variable): A binary stream that specifies the structure data. The number of bytes in this
stream MUST be less than 8225.
2.4.60 ContinueFrt
The ContinueFrt record specifies a continuation of the data in a preceding Future Record Type record
that has data longer than 8,224 bytes. Such records are split into several records. The first section of
the data appears in the base record and subsequent sections appear in one or more ContinueFrt
records that appear after the base record. How the data is split varies for different types of records.
The base record can have data size shorter than 8,224 bytes after splitting. SXTH is such an example.
The preceding base record MUST contain an FrtHeaderOld or an FrtHeader field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
rgb (variable)
...
rgb (variable): A binary stream that specifies the record data. The number of bytes in this stream
MUST be less than 8,221.
2.4.61 ContinueFrt11
The ContinueFrt11 record specifies a continuation of the data in a preceding Future Record Type
record that has data longer than 8,224 bytes. Such records are split into several records. The first
section of the data appears in the base record and subsequent sections appear in one or more
ContinueFrt11 records that appear after the base record. The preceding base record MUST contain a
FrtRefHeaderU field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
rgb (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0875.
rgb (variable): A binary stream that specifies the record data. The number of bytes in this stream
MUST be less than 8,213.
244 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.62 ContinueFrt12
The ContinueFrt12 record specifies a continuation of the data in a preceding Future Record Type
record that has data longer than 8,224 bytes. Such records are split into several records. The first
section of the data appears in the base record and subsequent sections appear in one or more
ContinueFrt12 records that appear after the base record. The preceding base record MUST contain a
FrtRefHeader or a FrtHeader field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeader
...
...
rgb (variable)
...
frtRefHeader (12 bytes): An FrtRefHeader structure. The frtRefHeader.rt field MUST be 0x087F.
If frtRefHeader.grbitFrt.fFrtRef is 1 then the frtRefHeader.ref8 MUST refer to the range of
cells associated with this record. If frtRefHeader.grbitFrt.fFrtRef is 0 then all of the fields of the
frtRefHeader.ref8 structure MUST be zero and MUST be ignored.
rgb (variable): A binary stream that specifies the record data. The number of bytes in this stream
MUST be less than 8,213.
2.4.63 Country
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iCountryDef iCountryWinIni
iCountryDef (2 bytes): An unsigned integer that specifies the country/region code determined by
the locale in effect when the workbook was saved. MUST be greater than or equal to 1 and less
than or equal to 981 and MUST be a value from the table in iCountryWinIni.
iCountryWinIni (2 bytes): An unsigned integer that specifies the system regional settings
country/region code in effect when the workbook was saved. MUST greater than or equal to 1 and
less than or equal to 981 and MUST be a value from the table of Country/Region codes in this
section.
Code Country/Region
1 United States
2 Canada
3 Latin America, except Brazil
7 Russia
20 Egypt
245 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Code Country/Region
30 Greece
31 Netherlands
32 Belgium
33 France
34 Spain
36 Hungary
39 Italy
41 Switzerland
43 Austria
44 United Kingdom
45 Denmark
46 Sweden
47 Norway
48 Poland
49 Germany
52 Mexico
55 Brazil
61 Australia
64 New Zealand
66 Thailand
81 Japan
82 Korea
84 Viet Nam
86 People’s Republic of China
90 Turkey
213 Algeria
216 Morocco
218 Libya
351 Portugal
354 Iceland
358 Finland
420 Czech Republic
886 Taiwan
961 Lebanon
962 Jordan
963 Syria
964 Iraq
965 Kuwait
966 Saudi Arabia
971 United Arab Emirates
972 Israel
974 Qatar
981 Iran
246 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.64 CrErr
The CrErr record specifies the errors detected during crash recovery of a workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cb
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0865.
cb (4 bytes): An unsigned integer that specifies the fixed size of this record. MUST be set to 0x0013.
cch (2 bytes): An unsigned integer that specifies the number of characters in the crash recovery
error message stored in the rgch field. MUST be greater than zero.
rgch (variable): An XLUnicodeString structure that specifies the localized text of a crash recovery
error message. If the cch field is greater than 8211 this record MUST be followed by one or more
Continue records, which specify the continuation of the crash recovery error message. If the text
is extended with Continue records a value from the table for rgch.fHighByte MUST be specified in
the first byte of the continue field of the Continue record followed by the remaining portions of
the text.
2.4.65 CRN
The CRN record specifies the values of cells in a sheet in an external cell cache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
crnOper (variable)
...
colLast (1 byte): A ColByteU structure that specifies the zero-based column index of the last cell
whose value is contained within this record. MUST be greater than or equal to the value of
colFirst.
colFirst (1 byte): A ColByteU structure that specifies the zero-based column index of the first cell
whose value is contained within this record. MUST be less than or equal to the value of colLast.
row (2 bytes): A RwU structure that specifies the zero-based row index of the cells whose values
are contained within this record.
247 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
crnOper (variable): An array of SerAr structures that specifies the cell values for the cells in the
row starting at colFirst. The number of elements in this array MUST equal the following formula:
colLast - colFirst + 1
2.4.66 CrtLayout12
The CrtLayout12 record specifies the layout information for attached label, when contained in the
sequence of records that conforms to the ATTACHEDLABEL rule, or legend, when contained in the
sequence of records that conforms to the LD rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
dwCheckSum
A B reserved1 wXMode
wYMode wWidthMode
wHeightMode x
...
... y
...
... dx
...
... dy
...
... reserved2
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x089D.
dwCheckSum (4 bytes): An unsigned integer that specifies the checksum of the values in the order
as follows, if the checksum is incorrect, the layout information specified in this record MUST be
ignored.
248 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Checksum for type Values
CrtLayout12 record and conforms to the ATTACHEDLABEL rule.
2. y1 field of the Pos record in the in the sequence of records that contains
this CrtLayout12 record and conforms to the ATTACHEDLABEL rule.
Legend
1. x1 field of the Pos record in the in the sequence of records that contains
this CrtLayout12 record and conforms to the LD rule.
2. y1 field of the Pos record in the in the sequence of records that contains
this CrtLayout12 record and conforms to the LD rule.
7. The fAutoSize of the Frame record in the in the sequence of records that
contains this CrtLayout12 record and conforms to the LD rule.
RETURN dwChecksum
The width and height of legend in pixels are calculated with the following steps:
1. Get chart area width in pixels as indicated by section 2.2.3.17 "Chart Area"
2. Get chart area height in pixels as indicated by section 2.2.3.17 "Chart Area"
legend width in pixels = dx field of Legend / 4000 * chart area width in pixels
legend height in pixels = dy field of Legend / 4000 * chart area height in pixels
B - autolayouttype (4 bits): An unsigned integer that specifies the automatic layout type of the
legend. MUST be ignored when this record is in the sequence of records that conforms to the
ATTACHEDLABEL rule. MUST be a value from the following table:
Value Meaning
0x0 Align to the bottom
0x1 Align to top right corner
249 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x2 Align to the top
0x3 Align to the right
0x4 Align to the left
x (8 bytes): An Xnum (section 2.5.342) value that specifies a horizontal offset. The meaning is
determined by wXMode.
y (8 bytes): An Xnum value that specifies a vertical offset. The meaning is determined by wYMode.
dx (8 bytes): An Xnum value that specifies a width or an horizontal offset. The meaning is
determined by wWidthMode.
dy (8 bytes): An Xnum value that specifies a height or an vertical offset. The meaning is determined
by wHeightMode.
2.4.67 CrtLayout12A
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
dwCheckSum
A reserved1 xTL
yTL xBR
yBR wXMode
wYMode wWidthMode
wHeightMode x
250 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
... y
...
... dx
...
... dy
...
... reserved2
frtHeader (12 bytes): An FrtHeader structure. The frtheader.rt field MUST be 0x08A7.
dwCheckSum (4 bytes): An unsigned integer that specifies the checksum. MUST be a value from
the following table:
A - fLayoutTargetInner (1 bit): A bit that specifies the type of plot area for the layout target.
Value Meaning
0x0 Outer plot area - The bounding rectangle that includes the axis labels, axis titles,
data table (2) and plot area of the chart.
0x1 Inner plot area – The rectangle bounded by the chart axes.
xTL (2 bytes): A signed integer that specifies the horizontal offset of the plot area's upper-left
corner, relative to the upper-left corner of the chart area (section 2.2.3.17), in SPRC.
yTL (2 bytes): A signed integer that specifies the vertical offset of the plot area's upper-left corner,
relative to the upper-left corner of the chart area (section 2.2.3.17), in SPRC.
251 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xBR (2 bytes): A signed integer that specifies the width of the plot area, in SPRC.
yBR (2 bytes): A signed integer that specifies the height of the plot area, in SPRC.
x (8 bytes): An Xnum (section 2.5.342)value that specifies a horizontal offset. The meaning is
determined by wXMode.
y (8 bytes): An Xnum value that specifies a vertical offset. The meaning is determined by wYMode.
dx (8 bytes): An Xnum value that specifies a width or a horizontal offset. The meaning is determined
by wWidthMode.
dy (8 bytes): An Xnum value that specifies a height or a vertical offset. The meaning is determined
by wHeightMode.
2.4.68 CrtLine
The CrtLine record specifies the presence of drop lines, high-low lines, series lines or leader
lines on the chart group. This record is followed by a LineFormat record which specifies the format of
the lines.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id
id (2 bytes): An unsigned integer that specifies the type of line that is present on the chart group.
This field value MUST be unique among the other id field values in CrtLine records in the current chart
group. This field MUST be greater than the id field values in preceding CrtLine records in the current
chart group. MUST be a value from the following table:
0x0000 Drop lines below the data points of line, area, and stock chart groups.
0x0001 High-low lines around the data points of line and stock chart groups.
0x0002 Series lines connecting data points of stacked column and bar chart
groups, and the primary pie to the secondary bar/pie of bar of pie
and pie of pie chart groups.
0x0003 Leader lines with non-default formatting connecting data labels to the
data point of pie and pie of pie chart groups.
2.4.69 CrtLink
252 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused
...
...
2.4.70 CrtMlFrt
The CrtMlFrt record specifies additional properties for chart elements, as specified by the Chart Sheet
Substream ABNF. These properties complement the record to which they correspond, and are stored
as a structure chain defined in XmlTkChain. An application can ignore this record without loss of
functionality, except for the additional properties. If this record is longer than 8224 bytes, it MUST be
split into several records. The first section of the data appears in this record and subsequent sections
appear in one or more CrtMlFrtContinue records that follow this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cb
xmltkChain (variable)
...
unused
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x089E.
cb (4 bytes): An unsigned integer that specifies the size, in bytes, of the XmlTkChain structure
starting in the xmltkChain field, including the data contained in the optional CrtMlFrtContinue
records. MUST be less than or equal to 0x7FFFFFEB.
xmltkChain (variable): An XmlTkChain structure that specifies a chain of structures. The size of the
XmlTkChain is specified by the cb field.
2.4.71 CrtMlFrtContinue
The CrtMlFrtContinue record specifies additional data for a CrtMlFrt record, as specified in the
CrtMlFrt record.
253 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
xmltkChain (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x089F.
xmltkChain (variable): An array of bytes that contains the continuation of the xmltkChain field of
the CrtMlFrt record associated with this record. If the length of this record is greater than 8224
bytes, additional CrtMlFrtContinue records follow.
2.4.72 CUsr
The CUsr record specifies the number of unique users that have this shared workbook open.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iCount
iCount (2 bytes): An unsigned integer that specifies the number of unique users that have this
shared workbook open. MUST be greater than or equal to 0 and less than or equal to 255.
2.4.73 Dat
The Dat record specifies the beginning of a collection of records as defined by the Chart Sheet
Substream ABNF. The collection of records specifies the options of the data table which can be
displayed within a chart area (section 2.2.3.17).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D reserved
A - fHasBordHorz (1 bit): A bit that specifies whether horizontal cell borders are displayed within
the data table.
B - fHasBordVert (1 bit): A bit that specifies whether vertical cell borders are displayed within the
data table.
C - fHasBordOutline (1 bit): A bit that specifies whether an outside outline is displayed around the
data table.
254 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fShowSeriesKey (1 bit): A bit that specifies whether the legend key is displayed next to the
name of the series. If the value is 1, the legend key symbols are displayed next to the name of
the series.
2.4.74 DataFormat
The DataFormat record specifies the data point or series that the formatting information that follows
applies to and specifies the beginning of a collection of records as defined by the Chart Sheet
Substream ABNF. This collection of records specifies formatting properties for the data point or series.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xi yi
iss A reserved
xi (2 bytes): An unsigned integer that specifies the zero-based index of the data point within the
series specified by yi. If this value is 0xFFFF, the formatting information that follows applies to
the series. Otherwise, the formatting information that follows applies to a data point. This value
MUST be less than or equal to 31999. This value MUST be less than or equal to 3999 for a chart
that contains a Chart3d record. This value MUST be 0xFFFF if the formatting information in this
record is applied to a trendline or error bar.
yi (2 bytes): An unsigned integer that specifies the zero-based index of a Series record in the
collection of Series records in this chart sheet substream. SHOULD<75> be less than or equal to
254.
iss (2 bytes): An unsigned integer that specifies properties of the data series, trendline or error bar,
depending on the type of records in sequence of records that conforms to the SERIESFORMAT rule
that contains the sequence of records that conforms to the SS rule that contains this record.
If the SERIESFORMAT rule does not contain a SerAuxTrend or SerAuxErrBar record, then this field
specifies the plot order of the data series. If the series order was changed, this field can be
different from yi. SHOULD<76> be less than or equal to the number of series in the chart. MUST
be unique among iss values for all instances of this record contained in the SERIESFORMAT rule
that does not contain a SerAuxTrend or SerAuxErrBar record.
If the SERIESFORMAT rule contains a SerAuxTrend record on the chart group, then this field
specifies the trendline number for the series.
If the SERIESFORMAT rule contains a SerAuxErrBar record on the chart group, then this field
specifies a zero-based index into a Series record in the collection of Series records in the current
chart sheet substream for which the error bar applies to.
2.4.75 DataLabExt
The DataLabExt record specifies the beginning of a collection of records as defined by the Chart
Sheet Substream ABNF. The collection specifies an extended data label.
255 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x086A.
2.4.76 DataLabExtContents
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x086B.
A - fSerName (1 bit): A bit that specifies whether the name of the series is displayed in the
extended data label.
B - fCatName (1 bit): A bit that specifies whether the category (2) name, or the horizontal value
on bubble or scatter chart groups, is displayed in the extended data label. MUST be a value from
the following table:
Value Meaning
0 Neither of the data values are displayed in the extended data label.
1 If bubble or scatter chart group, the horizontal value is displayed in the extended data
label. Otherwise, the category (2) name is displayed in the extended data label.
C - fValue (1 bit): A bit that specifies whether the data value, or the vertical value on bubble or
scatter chart groups, is displayed in the extended data label. MUST be a value from the following
table:
Value Meaning
1 If bubble or scatter chart group, the vertical value is displayed in the extended data label.
Otherwise, the data value is displayed in the extended data label.
256 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fPercent (1 bit): A bit that specifies whether the value of the corresponding data point,
represented as a percentage of the sum of the values of the series the data label is associated
with, is displayed in the extended data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not
a bar of pie, doughnut, pie, or pie of pie chart group.
E - fBubSizes (1 bit): A bit that specifies whether the bubble size is displayed in the data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not
a bubble chart group.
rgchSep (variable): A case-sensitive XLUnicodeStringMin2 structure that specifies the string that is
inserted between every data value to form the extended data label. For example, if fCatName
and fValue are set to 1, the labels will look like "Category Name<value of rgchSep>Data Value".
The length of the string is contained in the cch field of the XLUnicodeStringMin2 structure.
2.4.77 Date1904
The Date1904 record specifies the date system that the workbook uses.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
f1904DateSystem
f1904DateSystem (2 bytes): A Boolean (section 2.5.14) that specifies the date system used in this
workbook. MUST be a value from the following table:
Value Meaning
0x0000 The workbook uses the 1900 date system. The first date of the 1900 date
system is 00:00:00 on January 1, 1900, specified by a serial value of 1.
0x0001 The workbook uses the 1904 date system. The first date of the 1904 date
system is 00:00:00 on January 1, 1904, specified by a serial value of 0.
2.4.78 DBCell
The DBCell record specifies a row block, which is a series of up to 32 consecutive rows.
DBCell, combined with the Index record, is used to optimize the lookup of cells in a cell table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dbRtrw
rgdb (variable)
257 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
dbRtrw (4 bytes): An unsigned integer that specifies the offset in bytes from the starting file
position of this record to the file position of the first Row record. If the value is 0, the referenced
row block does not contain any rows that contain cells that have data.
rgdb (variable): An array of 2-byte unsigned integers that specify the file offset in bytes to the first
record that specifies a CELL in each row that is a part of this row block. For the first array
element, the starting position of the file offset is specified relative to the file position of the end of
the first Row record in the row block. For all other elements, the file offset is specified relative to
the file position of the CELL record specified by the previous element in this array. The number of
elements in the array MUST be less than or equal to 32.
2.4.79 DbOrParamQry
The DbOrParamQry record specifies a DbQuery or ParamQry record depending on the record that
precedes this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgb (variable)
...
rgb (variable): A variable type field that specifies a DbQuery or ParamQry record depending on the
record that precedes this record as specified by the following table:
SXString ParamQry
2.4.80 DbQuery
The DbQuery record specifies information about an external connection. This record is followed by
SXString and ParamQry records that specify the strings and parameters. The records MUST be in the
following order:
If and only if fSql equals 1, zero or more SXString records as specified by cstQuery.
If and only if fOdbcConn equals 1, zero or more SXString records as specified by cstOdbcConn.
If and only if fWeb equals 1, zero or more SXString records as specified by cstQuery.
If and only if fWeb equals 1, zero or more SXString records as specified by cstWebPost.
If and only if fSqlSav equals 1, zero or more SXString records as specified by cstSQLSav.
258 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cstQuery cstWebPost
cstSQLSav cstOdbcConn
dbt (3 bits): An unsigned integer that specifies the data source type. MUST be a value from the
following table:
Value Meaning
0x1 ODBC data source
0x2 DAO record set
0x4 Web query
0x5 OLE DB database
0x6 Text query
0x7 ADO query
A - fOdbcConn (1 bit): A bit that specifies whether the data source type is ODBC. MUST be 1 if dbt
is equal to 0x1.
B - fSql (1 bit): A bit that specifies whether there is a database command string. MUST be 0 if fWeb
is 1. If the value of dbt is 5 see the grbitDbt field of the DBQueryExt record for details on what
the database command string specifies. Otherwise the database command string specifies an
Structured Query Language (SQL) query string. The database command string is contained by
zero or more SXString records following this record, as specified by cstQuery.
C - fSqlSav (1 bit): A bit that specifies whether there is a SQL query string for server-based fields.
For more information about server-based fields see the source data section. If and only if fSqlSav
equals 1, the SQL query string for server-based fields is contained by zero or more SXString
records following this record, as specified by cstSQLSav.
D - fWeb (1 bit): A bit that specifies whether there is a Uniform Resource Locator (URL) for a
Web query. MUST be 1 if dbt is equal to 0x4. The URL is the command string contained in zero
or more SXString records following this record, as specified by cstQuery.
E - fSavePwd (1 bit): A bit that specifies whether the password is saved with the ODBC connection
string specified by SXString records following this record. MUST be a value from the following
table:
Value Meaning
F - fTablesOnlyHTML (1 bit): A bit that specifies whether Web queries only works on HTML tables.
259 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cparams (2 bytes): A signed integer that specifies the number of SQL parameters. Each parameter
consists of an SXString record followed by a ParamQry record. The SXString record specifies the
name of the parameter and the ParamQry record specifies the query parameters. MUST be greater
than or equal to zero.
cstQuery (2 bytes): A signed integer that specifies the number of SXString records that contain the
command string, see fWeb and fSql for more details. Each SXString record specifies up to 255
characters of the complete command string. MUST be greater than or equal to zero.
cstWebPost (2 bytes): A signed integer that specifies the number of SXString records that contain
the Web query statement. Each SXString record specifies up to 255 characters of the complete
query statement. MUST be greater than or equal to zero. MUST be 0 if fWeb is equal to 0.
cstSQLSav (2 bytes): A signed integer that specifies the number of SXString records that contain
the SQL statement for server-based fields. For more information about server-based fields see the
source data section. Each SXString record specifies up to 255 characters of the complete SQL
statement. MUST be greater than or equal to zero. MUST be 0 if fSqlSav is equal to 0.
cstOdbcConn (2 bytes): A signed integer that specifies the number of SXString records that contain
the ODBC connection string. Each SXString record specifies up to 255 characters of the complete
connection string. MUST be greater than or equal to zero. MUST be 0 if fOdbcConn is equal to 0.
2.4.81 DBQueryExt
The DBQueryExt record specifies information about an external connection. This record specifies the
beginning of a collection of records as specified by the Worksheet Substream ABNF. The collection
specifies more information about the external connection. See the QsiSXTag record for details about
how the query table or PivotCache for the external connection is determined. The records of the
collection MUST be in the following order:
The first record MUST be an ExtString record that specifies the comma-delimited list of table
names to import, if and only if fTableNames is equal to 1.
The next record MUST be a TxtQry record, if and only if fTxtWiz is equal to 1.
The next record or records MUST be zero or more OleDbConn records as specified by coledb.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
dbt A B C D E F G reserved1
grbitDbt (variable)
...
wRefreshInterval wHtmlFmt
260 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cwParamFlags rgPbt (variable)
...
rgbFutureBytes (variable)
...
A - fMaintain (1 bit): A bit that specifies whether the connection with the database remains open
once established.
B - fNewQuery (1 bit): A bit that specifies whether the connection was not refreshed. MUST be a
value from the following table:
Value Meaning
0 Connection was refreshed one or more times
1 Connection was not refreshed
C - fImportXmlSource (1 bit): A bit that specifies whether the underlying XML source or the Web
page table is imported. MUST be ignored if dbt is not equal to 0x0004. MUST be a value from the
following table:
Value Meaning
0 Web page table is imported
1 XML source is imported
D - fSPListSrc (1 bit): A bit that specifies if the external connection is using the Web based data
provider.
E - fSPListReinitCache (1 bit): A bit that specifies whether the Web based data is reinitialized
rather than refreshed. MUST be ignored if fSPListSrc is equal to 0. MUST be a value from the
following table:
Value Meaning
0 Web based data is refreshed.
1 Web based data is reinitialized by reconnecting to the Web based data provider.
G - fSrcIsXml (1 bit): A bit that specifies whether the external connection source is XML.
grbitDbt (variable): A ConnGrbitDbt structure that specifies external connection properties specific
to dbt.
261 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
H - fTxtWiz (1 bit): A bit that specifies whether this is a text query. If the value is equal to 1, this
record MUST be followed by a TxtQry record.
I - fTableNames (1 bit): A bit that specifies whether the tables to import are specified in the
ExtString record that follows this record.
bVerDbqueryEdit (1 byte): A DataFunctionalityLevel value that specifies the data functionality level
the external connection was last edited with.
coledb (2 bytes): An unsigned integer that specifies the count of OleDbConn records that follow this
record. MUST be zero if dbt is not equal to DBT_OLEDB.
cstFuture (2 bytes): An unsigned integer that specifies the count of bytes in rgbFutureBytes.
wRefreshInterval (2 bytes): An unsigned integer that specifies the number of minutes to wait
between automatic refreshes of the external connection. The value MUST be greater than or equal
to 0. A value of 0 specifies that the timed refresh is off.
wHtmlFmt (2 bytes): An unsigned integer that specifies the HTML formatting to apply to the
imported data for a Web query. MUST be ignored if dbt is not equal to 0x0004. MUST be a value
from the following table:
Value Meaning
0x0001 No formatting is applied
0x0002 Rich text formatting only
0x0003 Full HTML formatting, including cell formatting
cwParamFlags (2 bytes): An unsigned integer that specifies the count of PBT items in rgPbt.
rgPbt (variable): An array of PBT items, each of which specifies information about the query
parameters. The PBT items in the array specify information about same query parameters as the
collection of ParamQry records of the external connection. The nth PBT item in this array
corresponds to the nth ParamQry record within the collection.
rgbFutureBytes (variable): Information from future versions. The byte count MUST be equal to
cstFuture.
2.4.82 DCon
The DCon record specifies the data consolidation settings of the associated sheet and specifies the
beginning of a collection of records as defined by the Macro Sheet Substream ABNF and Worksheet
262 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Substream ABNF. The collection of records specifies the source data ranges. Data consolidation
settings can exist in a sheet that does not have a data consolidation range.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iiftab fLeftCat
fTopCat fLinkConsole
iiftab (2 bytes): An unsigned integer that specifies the function used to aggregate the source data.
MUST be a value from the following table:
fLeftCat (2 bytes): A Boolean (section 2.5.14) that specifies how to identify rows for data
consolidation. MUST be a value from the following table:
Value Meaning
0x0000 Data consolidation is based on the position of the
row in the source data ranges.
0x0001 Data consolidation is based on row labels from the
leftmost column of the source data ranges. String
comparison is case independent and the
consolidated data contains a row for each unique
row label. The unique row labels appear in the first
column in the consolidation range, if it exists.
fTopCat (2 bytes): A Boolean that specifies how to identify columns for data consolidation. MUST
be a value from the following table:
Value Meaning
0x0000 Data consolidation is based on the position of the
column in the source data ranges.
263 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0001 Data consolidation is based on column labels from
the top row of the source data ranges. String
comparison is case independent and the
consolidated data contains a column for each
unique column label. The unique column labels
appear in the top row of the consolidation range, if
it exists.
fLinkConsole (2 bytes): A Boolean that specifies whether data consolidation will create references
to the source data. MUST be a value from the following table:
Value Meaning
0x0000 References are not created to the source data.
0x0001 References are created to the source data.
2.4.83 DConBin
The DConBin record specifies a built-in named range that is a data source for a PivotTable or a
data source for the data consolidation settings of the associated sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
unused (variable)
...
nBuiltin (1 byte): An unsigned integer that specifies the built-in defined name for the range. MUST
be a value from the following table:
Value Meaning
0x00 "Consolidate_Area"
0x01 "Auto_Open"
0x02 "Auto_Close"
0x03 "Extract"
264 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x04 "Database"
0x05 "Criteria"
0x06 "Print_Area"
0x07 "Print_Titles"
0x08 "Recorder"
0x09 "Data_Form"
0x0A "Auto_Activate"
0x0B "Auto_Deactivate"
0x0C "Sheet_Title"
0x0D "_FilterDatabase"
cchFile (2 bytes): An unsigned integer that specifies the character count of stFile. MUST be 0x0000,
or greater than or equal to 0x0002. A value of 0x0000 specifies that the built-in defined name
specified in nBuiltin has a workbook scope and is contained in this file.
stFile (variable): An DConFile structure that specifies the workbook or workbook and sheet that
contains the range specified in nBuiltin. This field MUST exist if and only if the value of cchFile is
greater than zero. If the built-in defined name has workbook scope this field specifies the
workbook file that contains the built-in defined name and its associated range. If the built-in
defined name has a sheet–level scope this field specifies both the sheet name and the workbook
file that contains the built-in defined name and its associated range.
unused (variable): An array of bytes that is unused and MUST be ignored. MUST exist if and only if
cchFile is greater than 0 and stFile specifies a self-reference (the value of stFile.stFile.rgb[0] is
2). If the value stFile.stFile.fHighByte is 0 the size of this array is 1. If the value of
stFile.stFile.fHighByte is 1 the size of this array is 2.
2.4.84 DConn
265 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
dbt A B C D E F G H I unused1
cParams reserved1
...
... credMethod
...
rgchSourceConnectionFile (variable)
...
rgchConnectionName (variable)
...
rgchConnectionDesc (variable)
...
rgchSSOApplicationID (variable)
...
tableNames (variable)
...
params (variable)
...
connection (variable)
...
266 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbSQL (variable)
...
rgbSQLSav (variable)
...
rgbEditWebPage (variable)
...
id (variable)
...
dbt (2 bytes): A DataSourceType that specifies the type of this data connection.
A - fSavePwd (1 bit): A bit that specifies whether a password is saved for this data connection. This
field MUST be ignored if dbt is not equal to 0x0001 or 0x0005.
B - fTablesOnlyHtml (1 bit): A bit that specifies whether web queries retrieve data from HTML
tables only. MUST be ignored if dbt is not equal to 0x0004. MUST be a value from the following
table:
Value Meaning
0x0 Web queries retrieve data from the entire page.
0x1 Web queries retrieve data from HTML tables only.
C - fTableNames (1 bit): A bit that specifies whether there are any HTML tables saved for this data
connection. MUST be ignored if dbt is not equal to 0x0004. Value MUST equal 1 if
fTablesOnlyHtml is equal to 1.
D - fDeleted (1 bit): A bit that specifies whether the data connection associated with the workbook
has been deleted.
E - fStandAlone (1 bit): A bit that specifies whether the data connection is used by the workbook.
F - fAlwaysUseConnectionFile (1 bit): A bit that specifies whether the data connection information
in the connection file is used when the data is refreshed. This field MUST be ignored if dbt is not
equal to 0x0001 or 0x0005.
G - fBackgroundQuery (1 bit): A bit that specifies whether the data connection is refreshed
asynchronously.
H - fRefreshOnLoad (1 bit): A bit that specifies whether the data connection is refreshed after the
file is loaded.
I - fSaveData (1 bit): A bit that specifies if the data for the data connection is persisted in the
workbook.
267 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cParams (2 bytes): An unsigned integer that specifies the number of parameters for a
parameterized query. The value MUST equal 0 if fStandAlone equals 0.
J - fMaintain (1 bit): A bit that specifies whether the data connection remains open once it is
established.
K - fNewQuery (1 bit): A bit that specifies whether the data connection has been refreshed. MUST
be a value from the following table:
Value Meaning
0 Connection has been refreshed one or more times
1 Connection has not yet been refreshed
L - fImportXmlSource (1 bit): A bit that specifies whether the underlying XML source or the Web
page table has been imported. MUST be ignored if dbt is not equal to 0x0004. MUST be a value
from the following table:
Value Meaning
0 Web page table has been imported
1 XML source has been imported
M - fSPListSrc (1 bit): A bit that specifies whether the query is using a Web-based data provider.
MUST be ignored if dbt is not equal to 0x0005.
N - fSPListReinitCache (1 bit): A bit that specifies whether the Web based data is reinitialized
rather than refreshed. MUST be ignored if dbt is not equal to 0x0005. MUST be a value from the
following table:
Value Meaning
0 List is refreshed
1 List is reinitialized by reconnecting to the data provider
P - fSrcIsXml (1 bit): A bit that specifies whether the query source is XML. MUST be ignored if dbt
is not equal to 0x0004.
bVerDbqueryEdit (1 byte): A DataFunctionalityLevel that specifies the data functionality level the
query was last edited with.
268 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
wRefreshInterval (2 bytes): An unsigned integer that specifies the number of minutes to wait
between automatic refreshes of the query. The value MUST be greater than or equal 0.
wHtmlFmt (2 bytes): An unsigned integer that specifies the HTML formatting to apply to the
imported data for a Web query. MUST be ignored if dbt is not equal to 0x0004. MUST be a value
from the following table:
Value Meaning
0x0001 None
0x0002 Rich text formatting only
rcc (4 bytes): An unsigned integer that specifies the reconnection method. MUST be a value from the
following table:
Value Meaning
0x00000000 Reconnection method is determined by the application.
0x00000001 Reconnect. When the data connection is refreshed, the updated connection information
is retrieved if it is available. This information is used instead of the persisted
connection information.
0x00000002 Never reconnect. Updated connection information is never used even if the information
is available and the existing connection information is invalid.
credMethod (1 byte): An unsigned integer that specifies the credentials used during reconnection.
MUST be a value from the following table:
Value Meaning
0x00 Integrated authentication
0x01 Use no credentials
0x02 Use stored credentials
0x03 Prompt for credentials
269 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
params (variable): An array of DConnParameter that specifies the parameters of a parameterized
query. The size of the array is determined by cParams. MUST NOT exist if fStandAlone is equal
to 0.
connection (variable): A variable type field. The data type and meaning vary depending on the
value of dbt.
Value
of dbt Meaning
1 connection is a DConnUnicodeStringSegmented that specifies the connection string. If field
fStandAlone is 0, then connection.st.cch MUST be 0.
4 connection is a DConnConnectionWeb that specifies the connection information for a Web
query.
5 connection is a DConnConnectionOleDb that specifies the connection information for an OLE
DB connection string.
6 connection is a TxtQry that specifies information for a text query.
Any connection does not exist.
other
value
rgbSQL (variable): A DConnStringSequence that specifies the database command. For an OLE DB
data source, the meaning of the dbost field of ConnGrbitDbtOledb determines the meaning of
this field. For an ODBC data source, this string specifies the SQL statement. MUST be ignored if
dbt does not equal 0x0001 or 0x0005.
rgbEditWebPage (variable): A DConnStringSequence that specifies the URL for the Web query edit
query dialog. MUST be ignored if dbt does not equal 0x0004.
id (variable): A DConnId that specifies the object that this connection is associated with.
2.4.85 DConName
The DConName record specifies a named range that is a data source for a PivotTable or a data
source for the data consolidation settings of the associated sheet. The range is specified as a
reference to an external workbook or a defined name in this workbook. If the named range is in an
external workbook, this record specifies the path to the external workbook. If the named range has a
defined name that has a sheet-level scope, this record also specifies the name of the sheet that
contains the range.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stName (variable)
...
...
unused (variable)
270 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
stName (variable): An XLNameUnicodeString structure that specifies a defined name for the source
range.
cchFile (2 bytes): An unsigned integer that specifies the character count of stFile. MUST be 0x0000,
or greater than or equal to 0x0002. A value of 0x0000 specifies that the defined name in stName
has a workbook scope and is contained in this file.
stFile (variable): A DConFile structure that specifies the workbook, or workbook and sheet, that
contains the range specified in stName. This field exists only if the value of cchFile is greater
than zero. If the defined name in stName has workbook scope, this field specifies the workbook
file that contains the defined name and its associated range. If the defined name in stName has a
sheet-level scope, this field specifies both the sheet name and the workbook that contains the
defined name and its associated range.
unused (variable): An array of bytes that is unused and MUST be ignored. MUST exist if and only if
cchFile is greater than 0 and stFile specifies a self-reference (the value of stFile.stFile.rgb[0] is
2). If the value stFile.stFile.fHighByte is 0, the size of this array is 1. If the value of
stFile.stFile.fHighByte is 1, the size of this array is 2.
2.4.86 DConRef
The DConRef record specifies a range in this workbook or in an external workbook that is a data
source for a PivotTable or a data source for the data consolidation settings of the associated sheet.
If the range specified is in an external workbook this record also specifies the path to the external
workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
... cchFile
stFile (variable)
...
unused (variable)
...
ref (6 bytes): A RefU structure that specifies the range. If this record is part of an SXTBL production
as specified in the Globals Substream ABNF and this field has a rwFirst equal to 0 and a rwLast
equal to 16383, this reference specifies all rows within the columns specified by colFirst and
colLast.
cchFile (2 bytes): An unsigned integer that specifies the count of characters in stFile. MUST be
greater than or equal to 0x0002.
stFile (variable): A DConFile structure that specifies the workbook and sheet that contains the range
specified in the ref field.
271 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused (variable): An array of bytes that is unused and MUST be ignored. MUST exist if and only if
stFile specifies a self reference (the value of stFile.stFile.rgb[0] is 2). If the value
stFile.stFile.fHighByte is 0 the size of this array is 1. If the value of stFile.stFile.fHighByte is
1 the size of this array is 2.
2.4.87 DefaultRowHeight
The DefaultRowHeight record specifies the height of all empty rows in the current sheet. An empty
row is a row that only contains cells without data or formatting.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
miyRwHidden (optional)
A - fUnsynced (1 bit): A bit that specifies whether the default settings for the row height have been
changed.
B - fDyZero (1 bit): A bit that specifies whether empty rows have a height of zero.
C - fExAsc (1 bit): A bit that specifies whether all empty rows have a thick border style applied to
the top border (as specified in field fExAsc of record Row).
D - fExDsc (1 bit): A bit that specifies whether all empty rows have a thick border style applied to
the bottom border (as specified in field fExDes of record Row).
miyRw (2 bytes): A signed integer that specifies the default row height, in twips, for empty rows.
MUST exist if and only if fDyZero is 0. MUST be greater than or equal to 1 and less than or equal
to 8179.
miyRwHidden (2 bytes): A signed integer that specifies the default row height, in twips, to apply to
a hidden row when unhidden. MUST exist if and only if fDyZero is 1. MUST be greater than or
equal to 0 and less than or equal to 8179.
2.4.88 DefaultText
The DefaultText record specifies the text elements that are formatted using the information specified
by the Text record immediately following this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id
id (2 bytes): An unsigned integer that specifies the text elements that are formatted using the
position and appearance information specified by the Text record immediately following this
record. MUST be a value from the following table.
If this record is in a sequence of records that conforms to the CRT rule as specified by the Chart
Sheet Substream ABNF, then this field MUST be 0x0000 or 0x0001. If this record is not in a
sequence of records that conforms to the CRT rule as specified by the Chart Sheet Substream
ABNF, then this field MUST be 0x0002 or 0x0003.
272 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0000 Format all Text records in the chart group where fShowPercent is
equal to 0 or fShowValue is equal to 0.
0x0001 Format all Text records in the chart group where fShowPercent is
equal to 1 or fShowValue is equal to 1.
0x0002 Format all Text records in the chart where the value of fScaled of the
associated FontInfo structure is equal to 0.
0x0003 Format all Text records in the chart where the value of fScaled of the
associated FontInfo structure is equal to 1.
2.4.89 DefColWidth
The DefColWidth record specifies the default column width of a sheet and specifies the beginning of
a collection of ColInfo records as defined by the Macro Sheet Substream ABNF and Worksheet
Substream ABNF. The collection of ColInfo records specifies the column formatting for a range of
columns.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cchdefColWidth
cchdefColWidth (2 bytes): An unsigned integer that specifies the default width, in number of
characters, of the columns in the sheet. MUST be less than or equal to 255.
2.4.90 Dimensions
The Dimensions record specifies the used range of the sheet. It specifies the row and column
bounds of used cells in the sheet. Used cells include all cells with formulas (section 2.2.2) or data.
Used cells also include all cells with formatting applied directly to the cell. Cells can also be formatted
by default row or column formatting. If a row has default formatting then the used range includes that
row in its row bounds, but does not affect the used range column bounds, unless the used range
would otherwise be empty, in which case the column bounds are set to include the first column. If a
column has default formatting then the used range includes that column in its column bounds, but
does not affect the used range row bounds, unless the used range would otherwise be empty, in which
case the row bounds are set to include the first row.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwMic
rwMac
colMic colMac
reserved
rwMic (4 bytes): A RwLongU structure that specifies the first row in the sheet that contains a used
cell.
273 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rwMac (4 bytes): An unsigned integer that specifies the zero-based index of the row after the last
row in the sheet that contains a used cell. MUST be less than or equal to 0x00010000. If this
value is 0x00000000, no cells on the sheet are used cells.
colMic (2 bytes): A ColU structure that specifies the first column in the sheet that contains a used
cell.
colMac (2 bytes): An unsigned integer that specifies the zero-based index of the column after the
last column in the sheet that contains a used cell. MUST be less than or equal to 0x0100. If this
value is 0x0000, no cells on the sheet are used cells.
2.4.91 DocRoute
The DocRoute record specifies the document routing information for a routing slip<77> that is used
to send a document in an e-mail message and specifies the beginning of a collection of RecipName
records as defined by the Globals Substream ABNF. The collection of RecipName records specifies the
recipients of the routing slip.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iStage cRecip
delOption A B C D E F unused2
cchSubject cchMessage
cchRouteID cchCustType
cchBookTitle cchOrg
ulEIDSize
szSubject (variable)
...
szMessage (variable)
...
szRouteID (variable)
...
szCustType (variable)
...
szBookTitle (variable)
274 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
szOrg (variable)
...
rgchSSAddr (variable)
...
iStage (2 bytes): An unsigned integer that specifies the routing stage of the slip. This value MUST
be less than or equal to the cRecip field +1.
cRecip (2 bytes): An unsigned integer that specifies the number of recipients. MUST equal the
actual number of RecipName records that follow this record.
delOption (2 bytes): An unsigned integer that specifies the delivery option. MUST be a value from
the following table:
Value Meaning
0x00 Deliver to one recipient at a time
0x01 Deliver to all recipients at once
A - fRouted (1 bit): A bit that specifies whether the document has been routed.
B - fReturnOrig (1 bit): A bit that specifies whether the document is returned to the originator after
being routed to the last recipient.
C - fTrackStatus (1 bit): A bit that specifies whether a status message is sent to the originator after
the document is routed.
D - fCustomType (1 bit): A bit that specifies whether there is a custom message type defined by
szCustType.
F - fSaveRouteInfo (1 bit): A bit that specifies whether the routing information is saved with the
document. MUST equal 1.
cchSubject (2 bytes): An unsigned integer that specifies the count of characters in the szSubject
field string. MUST be less than or equal to 256.
cchMessage (2 bytes): An unsigned integer that specifies the count of characters in the
szMessage field string. MUST be less than or equal to 256.
cchRouteID (2 bytes): An unsigned integer that specifies the count of characters in the szRouteID
field string. MUST be less than or equal to 256.
cchCustType (2 bytes): An unsigned integer that specifies the count of characters in the
szCustType field string. MUST be less than or equal to 256. MUST equal 0 if the fCustomType
field equals 0.
cchBookTitle (2 bytes): An unsigned integer that specifies the count of characters in the
szBookTitle field string. MUST be less than or equal to 256.
275 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchOrg (2 bytes): An unsigned integer that specifies the count of characters in the szOrg field
string. MUST be less than or equal to 256.
ulEIDSize (4 bytes): An unsigned integer that specifies the count of characters in the rgchSSAddr
field string. When combined with the values of cchSubject, cchMessage, cchRouteID,
cchCustType, cchBookTitle, and cchOrg fields, the value MUST be less than or equal to 8202.
szSubject (variable): A NULL terminated array of ANSI characters that specifies the subject of the
routed document. The length of the string MUST be specified by the cchSubject field. The field
MUST NOT exist if the cchSubject field is 0.
szMessage (variable): A NULL terminated array of ANSI characters that specifies the message of
the routed document. The length of the string MUST be specified by the cchMessage field. The
field MUST NOT exist if the cchMessage field is 0.
szRouteID (variable): A NULL terminated array of ANSI characters that specifies the name of the
routing identifier. The length of the string MUST be specified by the cchRouteID field. The field
MUST NOT exist if the cchRouteID field is 0.
szCustType (variable): A NULL terminated array of ANSI characters that specifies a custom
message. The length of the string MUST be specified by the cchCustType field. The field MUST
NOT exist if the field cchCustType is 0.
szBookTitle (variable): A NULL terminated array of ANSI characters that specifies the workbook
title. The length of the string MUST be specified by the cchBookTitle field. The field MUST NOT
exist if the cchBookTitle field is 0.
szOrg (variable): A NULL terminated array of ANSI characters that specifies the originator’s
friendly name. The length of the string MUST be specified by the cchOrg field. The field MUST
NOT exist if the cchOrg field is 0.
rgchSSAddr (variable): A NULL terminated array of ANSI characters that specifies the identifier
used by the messaging system service provider to identify the originator’s e-mail address. The
length of the string MUST be specified by the ulEIDSize field. The field MUST NOT exist if the
ulEIDSize field is 0.
2.4.92 DropBar
The DropBar record specifies the attributes of the up bars or the down bars between multiple series
of a line chart group and specifies the beginning of a collection of records as defined by the Chart
Sheet Substream ABNF. The first of these collections in the line chart group specifies the attributes of
the up bars. The second specifies the attributes of the down bars. If this record exists, then the chart
group type MUST be line and the field cSer in the record SeriesList MUST be greater than 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
pcGap
pcGap (2 bytes): A signed integer that specifies the width of the gap between the up bars or the
down bars. MUST be a value between 0 and 500. The width of the gap in SPRCs can be calculated
by the following formula:
276 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.93 DropDownObjIds
The DropDownObjIds record specifies the object identifiers that can be reused by the application
when creating the dropdown objects for the AutoFilter at runtime in a sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0874.
cidObj (2 bytes): An unsigned integer that specifies the count of the object identifiers in rgidObj.
rgidObj (variable): An array of 2-byte unsigned integers that specifies the object identifiers that can
be reused by the application when creating the dropdown objects for the AutoFilter at runtime in a
sheet. These object identifiers MUST NOT equal an existing ObjId structure in the worksheet
substream.
2.4.94 DSF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
2.4.95 Dv
The Dv record specifies a single set of data validation criteria defined for a range on this sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
PromptTitle (variable)
...
ErrorTitle (variable)
277 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
Prompt (variable)
...
Error (variable)
...
formula1 (variable)
...
formula2 (variable)
...
sqref (variable)
...
valType (4 bits): An unsigned integer that specifies the type of data validation. MUST be a value
from the following table:
Value Meaning
0x0 Specifies that the data validation allows any type of value and does not check for a type or
range of values.
0x1 Specifies that the data validation checks for and allows whole number values satisfying the
given condition.
0x2 Specifies that the data validation checks for and allows decimal values satisfying the given
condition.
0x3 Specifies that the data validation checks for and allows a value that matches one in a list of
values.
0x4 Specifies that the data validation checks for and allows date values satisfying the given
condition.
0x5 Specifies that the data validation checks for and allows time values satisfying the given
condition.
0x6 Specifies that the data validation checks for and allows text values whose length satisfies
the given condition.
0x7 Specifies that the data validation uses a custom formula (section 2.2.2) to check the cell
value.
A - errStyle (3 bits): An unsigned integer that specifies the style of error alert to be used in the
error message which is shown if the fShowErrorMsg bit is set to 1. MUST be a value from the
following table:
Value Meaning
0x0 Specifies that the data validation error style uses a stop icon in the error alert.
0x1 Specifies that the data validation error style uses a warning icon in the error alert.
278 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x2 Specifies that the data validation error style uses an information icon in the error alert
B - fStrLookup (1 bit): A bit that specifies whether a list of valid inputs was specified for data
validation. MUST be ignored if valType is not equal to 3.
C - fAllowBlank (1 bit): A bit that specifies whether the data validation treats empty or blank entries
as valid.
D - fSuppressCombo (1 bit): A bit that specifies whether to suppress the display of the in-cell drop-
down when the cell is selected. MUST be ignored if valType is not equal to 3.
mdImeMode (8 bits): An unsigned integer that specifies the Input Method Editor (IME) mode
enforced by this data validation. This value is only used when the input language is one of the
following languages:
The input for the cell can be restricted to specific sets of characters, as specified by the value of
mdImeMode. MUST be a value from the following table:
Value Meaning
0x00 No Control
0x01 On
0x02 Off (English)
0x04 Hiragana
0x05 wide katakana
0x06 narrow katakana
0x07 Full-width alphanumeric
0x08 Half-width alphanumeric
0x09 Full-width hangul
0x0A Half-width hangul
E - fShowInputMsg (1 bit): A bit that specifies whether to show an input prompt when the cell is
selected.
F - fShowErrorMsg (1 bit): A bit that specifies whether to display an error message when the data
validation fails.
G - typOperator (4 bits): An unsigned integer that specifies the relational operator used with this
data validation. If valType is equal to 0, 3 or 7, the value of the typOperator field is undefined
and MUST be ignored. MUST be a value from the following table:
Value Meaning
0x0 Between
0x1 Not Between
0x2 Equals
279 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x3 Not Equals
0x4 Greater Than
0x5 Less Than
0x6 Greater Than or Equal To
0x7 Less Than or Equal To
PromptTitle (variable): An XLUnicodeString structure that specifies the title of the input prompt
that is displayed when the cell is selected. The number of characters in this string MUST be less
than or equal to 32.
ErrorTitle (variable): An XLUnicodeString structure that specifies the title of the error that is
displayed when the cell value entered fails the data validation criteria. The number of characters in
this string MUST be less than or equal to 32.
Prompt (variable): An XLUnicodeString structure that specifies the message shown in the input
prompt that is displayed when the cell is selected. The number of characters in this string MUST
be less than or equal to 255.
Error (variable): An XLUnicodeString structure that specifies the error message that is displayed
when the cell value entered fails the data validation criteria. The number of characters in this
string MUST be less than or equal to 225.
formula1 (variable): A DVParsedFormula structure that specifies the first formula (section 2.2.2)
used in data validation.
If valType is equal to 0, this formula MUST be ignored and formula1.cce MUST be zero.
If valType is not one of 0, 3, or 7 and typOperator is equal to 0 or 1, this formula is used as the
lesser of two bounding values and formula1.cce MUST be greater than or equal to 1.
Otherwise, this formula is the only formula for those cases, and formula1.cce MUST be greater
than or equal to 1.
formula2 (variable): A DVParsedFormula structure that specifies the second formula used in data
validation.
Otherwise, this formula is used as the greater of two bounding values and formula2.cce MUST be
greater than or equal to 1.
sqref (variable): A SqRefU structure that specifies all the ranges over which data validation is
applied. The value of sqref.cref MUST be greater than 0 and less than or equal to 432.
2.4.96 DVal
The DVal record specifies data validation information that is common to all cells in a sheet that
have data validation applied and specifies the beginning of a collection of Dv records as defined by the
Worksheet Substream ABNF. The collection of Dv records specifies data validation criteria for
individual ranges in the sheet.
280 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved2 xLeft
... yTop
... idObj
... idvMac
...
A - fWnClosed (1 bit): A bit that specifies whether the window used for input is closed.
xLeft (4 bytes): An unsigned integer that specifies the X-coordinate of the top left corner of the
window used for input relative to the window used to display the sheet, in pixels. MUST be less
than or equal to 65535.
yTop (4 bytes): An unsigned integer that specifies the Y-coordinate of the top left corner of the
window used for input relative to the window used to display the sheet, in pixels. MUST be less
than or equal to 65535.
idObj (4 bytes): A signed integer that specifies a reference to an Obj that represents the drop-down
button displayed if a cell with a drop-down button is the selected cell at the time the file is
saved. The value of this field specifies the value of the cmo.id field of the associated Obj record.
MUST be greater than 0 and less than or equal to 32767 if the drop-down button is displayed.
MUST be -1 if there is no drop-down button being displayed in the selected cell at the time the file
is saved.
idvMac (4 bytes): An unsigned integer that specifies the number of Dv records that follow this
record. MUST be greater than or equal to 0 and less than or equal to 65534. There MUST be
exactly that many Dv records following this record.
2.4.97 DXF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
281 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 2189.
B - fNewBorder (1 bit): A bit that specifies whether it is possible to specify internal border
formatting in xfprops. Internal border formatting is formatting that applies to borders that lie
between a range of cells.
Value Meaning
0x0 Specifies that internal border formatting cannot be used in
xfprops.
0x1 Specifies that internal border formatting can be used in
xfprops.
2.4.98 DxGCol
The DxGCol record specifies the default column width for all sheet columns that do not have a
column width explicitly specified. If an explicit column width was specified for a column, it is stored in
a ColInfo record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dxgCol
dxgCol (2 bytes): An unsigned integer that specifies the default column width. For the purposes of
this field specification, a standard digit is defined to be the widest digit in the Normal style font.
The default column width is measured in the number of standard digits that fit in the column
multiplied by 256 and rounded down. The value MUST be less than or equal to 65535 or be equal
to 0xFFFFFFFF. If the value is 0xFFFFFFFF, this value MUST be ignored.
2.4.99 End
The End record specifies the end of a collection of records as defined by the Chart Sheet Substream
ABNF. The collection of records specifies properties of a chart.
2.4.100 EndBlock
The EndBlock record specifies the end of a collection of records. Future records contained in this
collection specify saved features to allow applications that do not support the feature to preserve the
information. This record MUST have an associated StartBlock record. StartBlock and EndBlock pairs
can be nested. Up to 100 levels of blocks can be nested.
282 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If there exists a StartBlock record with iObjectKind equal to 0x0000 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Axis Group.
If there exists a StartBlock record with iObjectKind equal to 0x0002 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current AttachedLabel.
If there exists a StartBlock record with iObjectKind equal to 0x0004 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Axis.
If there exists a StartBlock record with iObjectKind equal to 0x0005 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current chart group.
If there exists a StartBlock record with iObjectKind equal to 0x0006 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
sequence of records containing the StartBlock and conforming to the DAT rule.
If there exists a StartBlock record with iObjectKind equal to 0x0007 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
sequence of records containing the StartBlock and conforming to the FRAME rule.
If there exists a StartBlock record with iObjectKind equal to 0x0009 without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Legend.
If there exists a StartBlock record with iObjectKind equal to 0x000A without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Begin and End collection that exists immediately after LegendException in the sequence of
records conforming to the SERIESFORMAT rule.
If there exists a StartBlock record with iObjectKind equal to 0x000C without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Series.
If there exists a StartBlock record with iObjectKind equal to 0x000D without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current Sheet.
If there exists a StartBlock record with iObjectKind equal to 0x000E without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
current SS production.
If there exists a StartBlock record with iObjectKind equal to 0x000F without a matching
EndBlock, then a matching EndBlock record MUST exist immediately before the End record of the
sequence of records containing the StartBlock and conforming to the DROPBAR rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
283 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iObjectKind (2 bytes): An unsigned integer that specifies the type of object that is encompassed by
the block. MUST equal the iObjectKind field of the associated StartBlock record. MUST be a value
from the following table:
0x0002 AttachedLabel
0x0004 Axis
0x0006 Dat
0x0007 Frame
0x0009 Legend
0x000A LegendException
0x000C Series
0x000D Sheet
0x000E DataFormat
0x000F DropBar
2.4.101 EndObject
The EndObject record specifies properties of an Future Record Type (FRT) as defined by the Chart
Sheet Substream ABNF. The collection of records specifies a feature saved as an FRT such that an
application not supporting the feature can preserve it. This record MUST have an associated
StartObject record. StartObject and EndObject pairs can be nested. Up to 100 levels of blocks can be
nested.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
284 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iObjectKind (2 bytes): An unsigned integer that specifies the type of object that is encompassed by
the block. MUST equal the iObjectKind field of the associated StartObject record. MUST be a value
from the following table:
0x0010 YMult
0x0011 FrtFontList
0x0012 DataLabExt
2.4.102 EntExU2
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgb (variable)
...
rgb (variable): An array of bytes that specifies an application-specific cache of information. This
cache exists for performance reasons only, and can be rebuilt based on information stored
elsewhere in the file without affecting calculation results.
2.4.103 EOF
The EOF record specifies the end of a collection of records as defined by Globals Substream ABNF,
Worksheet Substream ABNF, Dialog Sheet Substream ABNF, Chart Sheet Substream ABNF, macro
sheet substream ABNF, revision stream ABNF, and pivot cache storage ABNF.
2.4.104 Excel9File
The Excel9File record is optional and is unused. It doesn’t exist on files that were last saved in a
specific version of the application<81>.
2.4.105 ExternName
The ExternName record specifies an external defined name, a User Defined Function (UDF) reference
on a XLL or COM add-in, a DDE data item or an OLE data item, depending on the value of the
virtPath field in the preceding SupBook record. If the cch field in the preceding SupBook record is
0x3A01, then this record specifies a UDF reference. Otherwise if the virtPath field in the preceding
SupBook record conforms to the ole-link rule specified in the VirtualPath ABNF, then this record
specifies a DDE data item or an OLE data item. Otherwise, this record specifies an external defined
name.
285 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E cf F body (variable)
...
A - fBuiltIn (1 bit): A bit that specifies whether this record specifies a user-defined or built-in
external defined name. The value MUST be 0 if this record specifies a DDE data item, an OLE data
item or a UDF reference on a XLL or COM add-in. Otherwise, MUST be one of the following:
Value Meaning
B - fWantAdvise (1 bit): A bit that specifies whether this record is an automatic DDE data item or
OLE data item. MUST be one of the following:
Value Meaning
C - fWantPict (1 bit): A bit that specifies whether this record's linked data uses a picture format. The
value MUST be 0 if this record specifies an external defined name or a UDF reference on a XLL or
COM add-in.
D - fOle (1 bit): A bit that, together with the value of fOleLink, specifies the structure of body. The
value MUST be 0 if this record is an external defined name, an OLE data item or a UDF reference
on a XLL or COM add-in. If this value is 1, fOleLink MUST be 0.
E - fOleLink (1 bit): A bit that, together with the value of fOle, specifies the structure of body. The
value MUST be 0 if this record is an external defined name or a UDF reference on a XLL or COM
add-in. If this value is 1, fOle MUST be 0 and this record specifies an OLE data item.
cf (10 bits): A signed integer that specifies the type of the cached clipboard format for a DDE data
item or an OLE data item. The value MUST be 0 if this record is an external defined name or a UDF
reference on a XLL or COM add-in. The value MUST be one of the values in the following table:
Value Meaning
-1 There is no cached clipboard format.
0 This record is an external defined name or the cached clipboard format is text. For the text
format, each line ends with a carriage return/linefeed (CR-LF) combination. A null character
signals the end of the data.
286 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
2 Cached clipboard format is Enhanced Metafile.
5 Cached clipboard format is CSV (comma-delimited).
6 Cached clipboard format is Microsoft Symbolic Link (SYLK). SYLK is a format used to exchange
data between applications.
44 Cached clipboard format is Unicode text. Each line ends with a carriage return/linefeed (CR-LF)
combination. A null character signals the end of the data.
F - fIcon (1 bit): A bit that specifies whether linked data is displayed as an icon. The value MUST be
0 if this record is an external defined name, a DDE data item or a UDF reference on a XLL or COM
add-in.
body (variable): A variable type field whose type and meaning is dictated by the values of fOle and
fOleLink, as specified in the following table:
2.4.106 ExternSheet
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cXTI (2 bytes): An unsigned integer that specifies the number of elements in the rgXTI array.
287 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgXTI (variable): An array of XTI structures. The number of elements in this array MUST be cXTI.
2.4.107 ExtSST
The ExtSST record specifies the location of sets of strings within the shared string table, specified in
the SST record. This record is used to perform a quick lookup of a string within the shared string
table, given the string’s index into the table (as specified in LabelSst). To do that, first use the string’s
index and the value of dsst to find the set the string is in, then use the corresponding element in
rgISSTInf to find the beginning of that set, and finally search incrementally forward in that set to
locate the string.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
dsst (2 bytes): An unsigned integer that specifies the number of strings in each set specified by
ISSTInf. Number of strings in each set except the last set MUST be equal to the value specified by
the following formula:
Number of strings in the last set MUST be less than or equal to the value specified by the following
formula:
rgISSTInf (variable): An array of ISSTInf structures. Each array element specifies the location of a
set of strings within the SST record. The number of elements is determined by first evaluating the
following formula<83>:
If the result of the previous formula is equal to 0, then the number of elements MUST be equal to
the value as specified by the following formula:
(SST.cstUnique / ExtSST.dsst)
Otherwise, the number of elements MUST be equal to the value as specified by the following
formula:
(SST.cstUnique / ExtSST.dsst) + 1
2.4.108 ExtString
The ExtString record specifies the connection string for a query that retrieves external data.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
string (variable)
288 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
unused1 (variable)
...
unused1 (variable): Undefined and MUST be ignored. MUST exist if and only if the value of the
following formula is less than 12 bytes:
The size of this field, in bytes, is calculated using the following formula:
2.4.109 Fbi
The Fbi record specifies the font information at the time the scalable font is added to the chart.<84>
If the scaled font size matches the font size of the Font record (as specified by ifnt and
Font.dyHeight), then that Font record is used to render the scaled fonts. If the scaled font size
doesn't match the size of the Font record (as specified by ifnt), then a new Font record is added to
the font table and the following font scaling algorithm is used to determine the scaled font size:
1. Start with the current chart area (section 2.2.3.17) in dots or pixels at 96 DPI. Convert this size
to Twips by multiplying width and height by 1440 Twips per inch / 96 dots per inch. Call this dmix
and dmiy respectively.
2. If the scale basis scab is plot area (1), then apply the plot area scaling factors
PlotGrowth.dxPlotGrowth/65536 and PlotGrowth.dyPlotGrowth/65536 to dmix and dmiy
respectively.
3. Determine the scaled height basis by multiplying twpHeightBasis by dmix / dmixBasis; name
this twpX.
5. Take the smaller of twpX and twpY and name this twpNew. If this value is less than 10, set it
equal to 10.
7. If the value of twpHeightBasis is between 160 (inclusive) and 240 (inclusive), and the value of
twpNew is between 120 (inclusive) and 160, make twpNew equal to 160. If the value of
Fbi.twpHeightBasis is between 160 (inclusive) and 240 (inclusive), and value of twpNew is
between 240 and 280 (inclusive), make twpNew equal to 240.
8. twpNew is the new scaled font size. If the dyHeight field of the Font record (as specified by
Fbi.ifnt) is the same as the value of twpNew, then load that Font record for the scaled font. If it
isn't the same, twpNew is the new scaled font size and a new Font record is added to the font
table.
289 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dmixBasis dmiyBasis
twpHeightBasis scab
ifnt
dmixBasis (2 bytes): An unsigned integer that specifies the font width, in twips, when the font was
first applied. MUST be greater than or equal to 0 and less than or equal to 0x7FFF.
dmiyBasis (2 bytes): An unsigned integer that specifies the font height, in twips, when the font was
first applied. MUST be greater than or equal to 0 and less than or equal to 0x7FFF.
twpHeightBasis (2 bytes): An unsigned integer that specifies the default font height in twips.
MUST be greater than or equal to 20 and less than or equal to 8180.
scab (2 bytes): A Boolean (section 2.5.14) that specifies the scale to use. The value MUST be one of
the following values:
Value Meaning
0x0000 Scale by chart area (section 2.2.3.17)
0x0001 Scale by plot area
ifnt (2 bytes): A FontIndex structure that specifies the font. MUST be used when ifnt is less than or
equal to 255.
2.4.110 Fbi2
The Fbi2 record specifies the font information at the time the scalable font is added to the
chart.<85>
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dmixBasis dmiyBasis
twpHeightBasis scab
ifnt
dmixBasis (2 bytes): An unsigned integer that specifies the font width, in twips, when the font was
first applied. MUST be greater than or equal to 0 and less than or equal to 0x7FFF.
dmiyBasis (2 bytes): An unsigned integer that specifies the font height, in twips, when the font was
first applied. MUST be greater than or equal to 0 and less than or equal to 0x7FFF
twpHeightBasis (2 bytes): An unsigned integer that specifies the default font height in twips.
MUST be greater than or equal to 20 and less than or equal to 8180.
scab (2 bytes): A Boolean (section 2.5.14) that specifies the scale to use. The value MUST be one of
the following values:
290 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0000 Scale by chart area (section 2.2.3.17)
0x0001 Scale by plot area
ifnt (2 bytes): A FontIndex structure that specifies the font. MUST be used when ifnt is greater than
255.
2.4.111 Feat
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
... cref
... cbFeatData
...
rgbFeat (variable)
...
isf (2 bytes): A SharedFeatureType enumeration that specifies the type of Shared Feature data
stored in the rgbFeat field. MUST NOT be ISFLIST.
cref (2 bytes): An unsigned integer that specifies the number of elements in the refs field.
cbFeatData (4 bytes): An unsigned integer whose meaning is determined by the value of isf. If isf
is ISFFEC2, this field specifies the size in bytes of Shared Feature data that is stored in the
rgbFeat field. Otherwise, this field MUST be zero and MUST be ignored.
refs (variable): An array of Ref8U structures. Specifies the ranges referenced by the Shared
Feature. The number of elements in the array is specified by cref.
291 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbFeat (variable): A variable type field that specifies Shared Feature data. The type is dictated by
the value of isf, as specified in the following table:
2.4.112 FeatHdr
The FeatHdr record specifies common information for Shared Features and specifies the beginning of
a collection of records as defined by the Globals Substream ABNF, macro sheet substream ABNF and
worksheet substream ABNF. The collection of records specifies Shared Feature data.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
isf (2 bytes): A SharedFeatureType enumeration that specifies the type of Shared Feature. MUST be
ISFPROTECTION, ISFFEC2 or ISFFACTOID.
cbHdrData (4 bytes): An unsigned integer that specifies whether rgbHdrData exists. MUST be a
value from the following table:
Value Meaning
0x00000000 rgbHdrData MUST NOT exist.
0xFFFFFFFF rgbHdrData MUST exist.
rgbHdrData (variable): A variable type field containing data whose type and meaning is dictated by
the value of the isf field of this record and the value of the dt field of the BOF record preceding
this record, as specified in the following table:
292 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of isf Containing substream Meaning of rgbHdrData
ISFFACTOID Globals A PropertyBagStore as defined in [MS-OSHARED] section
2.3.4.1 that specifies smart tag header data.
Worksheet or Macro Sheet rgbHdrData MUST NOT exist.
2.4.113 FeatHdr11
The FeatHdr11 record specifies common information for all tables on a sheet and specifies the
beginning of a collection as specified by the Worksheet Substream ABNF. The collection of records
specifies table information, AutoFilter information and data used for sorting a range
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
... reserved3
... idListNext
... reserved4
...
isf (2 bytes): A SharedFeatureType enumeration that specifies the type of Shared Feature. MUST be
ISFLIST.
idListNext (4 bytes): An unsigned integer that specifies the next identifier to try when assigning a
unique identifier to a new table.
2.4.114 Feature11
The Feature11 record specifies specific shared feature data. The only shared feature type stored in
this record is a table in a worksheet.
293 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If this record is not a Feature12 record, then these rules apply:
If crwHeader of the embedded TableFeatureType is zero then and fSingleCell of the embedded
TableFeatureType MUST be zero.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
...
... cref2
... cbFeatData
...
rgbFeat (variable)
...
frtRefHeaderU (12 bytes): An FrtRefHeaderU. The frtRefHeaderU.rt field MUST be 0x0872. The
frtRefHeaderU.ref8 MUST refer to a range of cells associated with this record.
isf (2 bytes): A SharedFeatureType enumeration that specifies the type of Shared Feature data
stored in the rgbFeat field. MUST be ISFLIST.
cref2 (2 bytes): An unsigned integer that specifies the count of Ref8U records within the refs2 field.
cbFeatData (4 bytes): An unsigned integer that specifies the size in bytes of the rgbFeat variable-
size field. If the value is 0x0000, the size of the rgbFeat field is calculated by the following formula:
size of rgbFeat = total size of record in bytes – size of refs2 in bytes – 27 bytes
refs2 (variable): An array of Ref8U structures that specifies references to ranges of cells within the
worksheet associated with the feature. The count of records within this field is specified by the cref2
field.
294 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbFeat (variable): A variable-size structure that contains feature specific data. The size of the
structure is specified by the cbFeatData field. This field MUST contain a TableFeatureType structure.
2.4.115 Feature12
The Feature12 record specifies shared feature data that is used to describe a table in a worksheet.
This record is used to encapsulate a table that has properties not supported by the Feature11 record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
feature (variable)
...
2.4.116 FileLock
The FileLock record specifies that the shared workbook was locked by a particular user.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
lPurpose
stUsrName (variable)
...
unused (variable)
...
lPurpose (4 bytes): An unsigned integer that specifies the purpose of the file lock. MUST be one of
the following:
Value Meaning
0x00000000 The shared workbook is not locked.
295 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00010008 The shared workbook is locked to be deleted or
renamed.
stUsrName (variable): An XLUnicodeString structure that specifies the user name. The string
length MUST be less than or equal to 52.
unused (variable): Undefined and MUST be ignored. This size of this field in bytes is specified by the
following formula:
2.4.117 FilePass
The FilePass record specifies the encryption algorithm used to encrypt the workbook and the
structure that is used to verify the password provided when attempting to open the workbook. If this
record exists, the workbook MUST be encrypted. Refer to the Encryption (Password to Open) overview
to understand the details of workbook files that have been encrypted.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
wEncryptionType (2 bytes): A Boolean (section 2.5.14) that specifies the encryption type. MUST
be a value from the following table:<86>
encryptionInfo (variable): A variable type field. The type and meaning of this field is dictated by
the value of wEncryptionType. If wEncryptionType is equal to 0x0000, this field is an
XORObfuscation structure. If wEncryptionType is equal to 0x0001, this field is an RC4 encryption
header structure as specified in [MS-OFFCRYPTO], 2.3.5.1 or [MS-OFFCRYPTO], 2.3.6.1 depending on
the value of the first two bytes. The first two bytes of the RC4 encryption header structure MUST be a
value from the following table:
296 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.118 FileSharing
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fReadOnlyRec wResPass
...
fReadOnlyRec (2 bytes): A Boolean (section 2.5.14) that specifies whether the read-only
recommended option is selected for this file. If the value is 1, the read-only recommended is
selected for this file.
wResPass (2 bytes): An unsigned integer that specifies the password verifier for write
reservation. If the value is 0, there is no write reservation password. The algorithm is specified in
Password Verifier Algorithm.
iNoResPass (2 bytes): An unsigned integer that specifies that there is no write reservation
password. This field exists if and only if wResPass is 0. The value MUST be 0.
stUNUsername (variable): An XLUnicodeString structure that specifies the user name that added
the write reservation password. This field exists if and only if wResPass is not 0. The value of
stUNUsername.cch MUST be less than or equal to 54.
2.4.119 FilterMode
The FilterMode record specifies that the containing sheet data was filtered. If this record exists one
or more AutoFilter or AutoFilter12 records MUST exist within the containing sheet.
2.4.120 FnGroupName
The FnGroupName record specifies a user-defined function category in the current workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgch (variable)
...
rgch (variable): An XLUnicodeString structure that specifies the function category name. MUST be
less than or equal to 32 characters in length. The value of this field MUST NOT equal any of the
category (2) names specified by FnGroupName and FnGrp12.
2.4.121 FnGrp12
The FnGrp12 record specifies the name of a user-defined function category in the current
workbook. The user-defined function categories include the function categories defined in both
FnGroupName records and FnGrp12 records. The sum of the built-in function categories as specified
by BuiltInFnGroupCount and the user defined function categories in the current workbook MUST be
297 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
less than or equal to 256. This record specifies the name of a function category after the 32 nd function
category.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
astFnGrp (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0898.
astFnGrp (variable): An XLUnicodeString structure that specifies the name of the function category.
The length of this string MUST be less than or equal to 32 characters. The value of this field MUST
NOT equal any of the category (2) names specified by FnGrp12 and FnGroupName.
2.4.122 Font
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dyHeight A B C D E F G H reserved
icv bls
...
dyHeight (2 bytes): An unsigned integer that specifies the height of the font in twips.
SHOULD<87> be greater than or equal to 20 and less than or equal to 8191. MUST be greater
than or equal to 20 and less than or equal to 8191, or 0.
C - unused2 (1 bit): Undefined and MUST be ignored. MUST be 1 when uls is greater than 0x00.
D - fStrikeOut (1 bit): A bit that specifies whether the font has strikethrough formatting applied.
E - fOutline (1 bit): A bit that specifies whether the font has an outline effect applied.
F - fShadow (1 bit): A bit that specifies whether the font has a shadow effect applied.
298 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
G - fCondense (1 bit): A bit that specifies whether the font is condensed.
icv (2 bytes): An unsigned integer that specifies the color of the font. The value SHOULD<88> be
an IcvFont value. The value MUST be an IcvFont value, or 0.
bls (2 bytes): An unsigned integer that specifies the font weight. The value SHOULD<89> be a
value from the following table. This value MUST be 0, or greater than or equal to 100 and less
than or equal to 1000.
Value Meaning
sss (2 bytes): An unsigned integer that specifies whether superscript, subscript, or normal script is
used. The value MUST be one of the following:
Value Meaning
0x0001 Superscript
0x0002 Subscript
uls (1 byte): An unsigned integer that specifies the underline style. The value MUST be one of the
following:
Value Meaning
0x00 No underline
bFamily (1 byte): An unsigned integer that specifies the font family this font belongs to. MUST be
a value from the following table:<90>
Value Meaning
0x00 Not applicable
0x01 Roman
0x02 Swiss
0x03 Modern
299 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x04 Script
0x05 Decorative
For more information about font family, see the Windows API LOGFONT structure in [MSDN-FONTS].
bCharSet (1 byte): An unsigned integer that specifies the character set. MUST be a value from the
following table:
Value Meaning
0x00 ANSI_CHARSET
0x01 DEFAULT_CHARSET
0x02 SYMBOL_CHARSET
0x4D MAC_CHARSET
0x80 SHIFTJIS_CHARSET
0x81 HANGEUL_CHARSET
0x81 HANGUL_CHARSET
0x82 JOHAB_CHARSET
0x86 GB2312_CHARSET
0x88 CHINESEBIG5_CHARSET
0xA1 GREEK_CHARSET
0xA2 TURKISH_CHARSET
0xA3 VIETNAMESE_CHARSET
0xB1 HEBREW_CHARSET
0xB2 ARABIC_CHARSET
0xBA BALTIC_CHARSET
0xCC RUSSIAN_CHARSET
0xDD THAI_CHARSET
0xEE EASTEUROPE_CHARSET
0xFF OEM_CHARSET
For more information about character set, see the Windows API LOGFONT structure in [MSDN-FONTS].
fontName (variable): A ShortXLUnicodeString structure that specifies the name of this font. String
length MUST be greater than or equal to 1 and less than or equal to 31. The
fontName.fHighByte field MUST equal 1. MUST NOT contain any null characters.
2.4.123 FontX
The FontX record specifies the font for a given text element. The Font record referenced by iFont
can exist in this chart sheet substream or the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iFont
iFont (2 bytes): An unsigned integer that specifies the font to use for subsequent records. This font
can either be the default font of the chart, part of the collection of Font records following the
FrtFontList record, or part of the collection of Font records in the Globals Substream. If iFont is
0x0000, this record specifies the default font of the chart. If iFont is less than or equal to the
number of Font records in the Globals Substream, iFont is a one-based index to a Font record in
300 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
the Globals Substream. Otherwise iFont is a one-based index into the collection of Font records
in this chart sheet substream where the index is equal to iFont – n, where n is the number of Font
records in the Globals Substream.
2.4.124 Footer
The Footer record specifies the footer text of the current sheet when printed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ast (variable)
...
ast (variable): An XLUnicodeString structure that specifies the footer text for the current sheet. It is
optional and exists only if the record size is not zero. The footer text appears at the bottom of
every page when printed. The length of the text MUST be less than or equal to 255. The footer
text can contain special commands, for example a placeholder for the page number, current date
or text formatting attributes, as specified in the ABNF grammar for special commands as specified
in Header.
2.4.125 ForceFullCalculation
The ForceFullCalculation record specifies the value of the forced calculation mode for this
workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
fNoDeps
fNoDeps (4 bytes): A Boolean (section 2.5.14) that specifies whether all cells in the workbook are
calculated or not. MUST be one of the following:
Value Meaning
0 Dependencies are respected and only formulas
(section 2.2.2) that depend on cells that changed in
the workbook are calculated.
1 Dependencies are ignored and all cell formulas in
this workbook fully calculate every time a
calculation is triggered.
301 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.126 Format
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
ifmt (2 bytes): An IFmt structure that specifies the identifier of the format string specified by
stFormat. The value of ifmt.ifmt SHOULD<91> be a value within one of the following ranges.
The value of ifmt.ifmt MUST be a value within one of the following ranges or within 383 to 392.
5 to 8
23 to 26
41 to 44
63 to 66
164 to 382
stFormat (variable): An XLUnicodeString structure that specifies the format string for this number
format. The format string indicates how to format the numeric value of the cell. The length of this
field MUST be greater than or equal to 1 character and less than or equal to 255 characters. For
more information about how format strings are interpreted, see [ECMA-376] Part 4: Markup
Language Reference, section 3.8.31.
For a string to be considered a valid format string, it MUST be well-formed according to the
following ABNF specification.
These definitions are for en-US locale. International consideration as specified in [ECMA-376] Part 4:
Markup Language Reference, section 3.8.31 MUST be accounted for and the ABNF MUST be modified
accordingly for specific international number formats.
The following rules are not expressed in the ABNF grammar, but apply to the grammar:
1. In the following ABNF specification, the following tokens in the first table that follows can occur 0
or more times anywhere in the grammar, as long as they do not break apart the elements in the
second table that follows:
Token
LITERAL-STRING
LITERAL-CHAR-REPEAT
LITERAL-CHAR-SPACE
Elements
INTL*
302 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Elements
LITERAL*
NFDateTimeToken
NFPartExponential
NFPartCond
NFPartLocaleID
NFPartColor
NFPartIntNum
NFPartStrColor
Elements
INTL*
LITERAL*
NFDateTimeToken
NFPartExponential
NFPartCond
NFPartLocaleID
NFPartColor
NFPartIntNum
NFPartStrColor
2. The following token MUST occur 0 or 1 times in each section as defined in [ECMA-376] Part 4:
Markup Language Reference, section 3.8.31.
NFPartLocaleID
An absolute time token, such as NFPartAbsHour, MUST NOT coexist with a non-absolute equivalent
token, such as NFPartHour, in NFDateTime.
303 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
NFAnyNoText = [NFPartColor] [NFPartCond] (NFNumber / NFFraction / ([NFDateTime] [NFGeneral]
[NFDateTime]))
NFGeneral = INTL-NUMFMT-GENERAL
NFPartMonth = 1*5(ASCII-SMALL-LETTER-M)
NFPartDay = 1*4(ASCII-SMALL-LETTER-D)
NFPartHour = 1*2(ASCII-SMALL-LETTER-H)
NFPartMinute = 1*2(ASCII-SMALL-LETTER-M)
NFPartSecond = 1*2(ASCII-SMALL-LETTER-S)
304 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
NFPartCondNum = [ASCII-HYPHEN-MINUS] NFPartIntNum [INTL-CHAR-DECIMAL-SEP NFPartIntNum]
[NFPartExponential NFPartIntNum]
NFPartIntNum = 1*ASCII-DIGIT
INTL-CHAR-DECIMAL-SEP = ASCII-FULL-STOP
INTL-CHAR-NUMGRP-SEP = ASCII-COMMA
INTL-CHAR-DATE-SEP = ASCII-SOLIDUS
INTL-CHAR-TIME-SEP = ASCII-COLON
305 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
INTL-NUMFMT-GENERAL = ASCII-CAPITAL-LETTER-G ASCII-SMALL-LETTER-E ASCII-SMALL-LETTER-N ASCII-
SMALL-LETTER-E ASCII-SMALL-LETTER-R ASCII-SMALL-LETTER-A ASCII-SMALL-LETTER-L
UTF16-ANY = %x0000-FFFF
ASCII-SPACE = %x20
ASCII-EXCLAMATION-MARK = %x21
ASCII-QUOTATION-MARK = %x22
ASCII-NUMBER-SIGN = %x23
ASCII-DOLLAR-SIGN = %x24
ASCII-PERCENT-SIGN = %x25
ASCII-AMPERSAND = %x26
ASCII-APOSTROPHE = %x27
ASCII-LEFT-PARENTHESIS = %x28
ASCII-RIGHT-PARENTHESIS = %x29
ASCII-ASTERISK = %x2A
ASCII-PLUS-SIGN = %x2B
ASCII-COMMA = %x2C
ASCII-HYPHEN-MINUS = %x2D
ASCII-FULL-STOP = %x2E
ASCII-SOLIDUS = %x2F
ASCII-DIGIT-ZERO = %x30
ASCII-DIGIT-ONE = %x31
ASCII-DIGIT-TWO = %x32
ASCII-DIGIT-THREE = %x33
ASCII-DIGIT-FOUR = %x34
ASCII-DIGIT-FIVE = %x35
ASCII-DIGIT-SIX = %x36
ASCII-DIGIT-SEVEN = %x37
ASCII-DIGIT-EIGHT = %x38
ASCII-DIGIT-NINE = %x39
306 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ASCII-COLON = %x3A
ASCII-SEMICOLON = %x3B
ASCII-LESS-THAN-SIGN = %x3C
ASCII-EQUALS-SIGN = %x3D
ASCII-GREATER-THAN-SIGN = %x3E
ASCII-QUESTION-MARK = %x3F
ASCII-COMMERCIAL-AT = %x40
ASCII-CAPITAL-LETTER-A = %x41
ASCII-CAPITAL-LETTER-B = %x42
ASCII-CAPITAL-LETTER-C = %x43
ASCII-CAPITAL-LETTER-D = %x44
ASCII-CAPITAL-LETTER-E = %x45
ASCII-CAPITAL-LETTER-F = %x46
ASCII-CAPITAL-LETTER-G = %x47
ASCII-CAPITAL-LETTER-H = %x48
ASCII-CAPITAL-LETTER-I = %x49
ASCII-CAPITAL-LETTER-J = %x4A
ASCII-CAPITAL-LETTER-K = %x4B
ASCII-CAPITAL-LETTER-L = %x4C
ASCII-CAPITAL-LETTER-M = %x4D
ASCII-CAPITAL-LETTER-N = %x4E
ASCII-CAPITAL-LETTER-O = %x4F
ASCII-CAPITAL-LETTER-P = %x50
ASCII-CAPITAL-LETTER-Q = %x51
ASCII-CAPITAL-LETTER-R = %x52
ASCII-CAPITAL-LETTER-S = %x53
ASCII-CAPITAL-LETTER-T = %x54
ASCII-CAPITAL-LETTER-U = %x55
ASCII-CAPITAL-LETTER-V = %x56
ASCII-CAPITAL-LETTER-W = %x57
307 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ASCII-CAPITAL-LETTER-X = %x58
ASCII-CAPITAL-LETTER-Y = %x59
ASCII-CAPITAL-LETTER-Z = %x5A
ASCII-LEFT-SQUARE-BRACKET = %x5B
ASCII-REVERSE-SOLIDUS = %x5C
ASCII-RIGHT-SQUARE-BRACKET = %x5D
ASCII-CIRCUMFLEX-ACCENT = %x5E
ASCII-LOW-LINE = %x5F
ASCII-GRAVE-ACCENT = %x60
ASCII-SMALL-LETTER-A = %x61
ASCII-SMALL-LETTER-B = %x62
ASCII-SMALL-LETTER-C = %x63
ASCII-SMALL-LETTER-D = %x64
ASCII-SMALL-LETTER-E = %x65
ASCII-SMALL-LETTER-F = %x66
ASCII-SMALL-LETTER-G = %x67
ASCII-SMALL-LETTER-H = %x68
ASCII-SMALL-LETTER-I = %x69
ASCII-SMALL-LETTER-J = %x6A
ASCII-SMALL-LETTER-K = %x6B
ASCII-SMALL-LETTER-L = %x6C
ASCII-SMALL-LETTER-M = %x6D
ASCII-SMALL-LETTER-N = %x6E
ASCII-SMALL-LETTER-O = %x6F
ASCII-SMALL-LETTER-P = %x70
ASCII-SMALL-LETTER-Q = %x71
ASCII-SMALL-LETTER-R = %x72
ASCII-SMALL-LETTER-S = %x73
ASCII-SMALL-LETTER-T = %x74
ASCII-SMALL-LETTER-U = %x75
308 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ASCII-SMALL-LETTER-V = %x76
ASCII-SMALL-LETTER-W = %x77
ASCII-SMALL-LETTER-X = %x78
ASCII-SMALL-LETTER-Y = %x79
ASCII-SMALL-LETTER-Z = %x7A
ASCII-LEFT-CURLY-BRACKET = %x7B
ASCII-VERTICAL-LINE = %x7C
ASCII-RIGHT-CURLY-BRACKET = %x7D
ASCII-TILDE = %x7E
ASCII-DELETE = %x7F
ASCII-CRLF = %x0d.0a
2.4.127 Formula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
... val
...
... A B C D E F reserved3
chn
formula (variable)
...
val (8 bytes): A FormulaValue structure that specifies the value of the formula.
309 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fAlwaysCalc (1 bit): A bit that specifies whether the formula needs to be calculated during the
next recalculation.
C - fFill (1 bit): A bit that specifies whether the cell has a fill alignment or a center-across-
selection alignment.
Value Meaning
0 Cell does not have a fill alignment or a center-across-selection alignment.
1 Cell has either a fill alignment or a center-across-selection alignment.
D - fShrFmla (1 bit): A bit that specifies whether the formula is part of a shared formula as defined
in ShrFmla. If this formula is part of a shared formula, formula.rgce MUST begin with a PtgExp
structure.
F - fClearErrors (1 bit): A bit that specifies whether the formula is excluded from formula error
checking.
chn (4 bytes): A field that specifies an application-specific cache of information. This cache exists for
performance reasons only, and can be rebuilt based on information stored elsewhere in the file
without affecting calculation results.
2.4.128 Frame
The Frame record specifies the type, size and position of the frame around a chart element as defined
by the Chart Sheet Substream ABNF. A chart element’s frame is specified by the Frame record
following it.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frt A B reserved
frt (2 bytes): An unsigned integer that specifies the type of frame to be drawn. MUST be a value
from the following table:
A - fAutoSize (1 bit): A bit that specifies if the size of the frame is automatically calculated. If the
value is 1, the size of the frame is automatically calculated. In this case, the width and height
specified by the chart element are ignored and the size of the frame is calculated automatically. If
the value is 0, the width and height specified by the chart element are used as the size of the
frame.
310 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - fAutoPosition (1 bit): A bit that specifies if the position of the frame is automatically calculated.
If the value is 1, the position of the frame is automatically calculated. In this case, the (x, y)
specified by the chart element are ignored, and the position of the frame is automatically
calculated. If the value is 0, the (x, y) location specified by the chart element are used as the
position of the frame.
2.4.129 FrtFontList
The FrtFontList record specifies font information used on the chart and specifies the beginning of a
collection of Font records as defined by the Chart Sheet Substream ABNF.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
rgFontInfo (variable)
...
verExcel (1 byte): An unsigned integer that specifies the application version where new chart
elements were introduced that use the font information specified by rgFontInfo. MUST be a value
from the following table and MUST be equal to iObjectInstance1 of the StartObject record that
immediately follows this record as defined by the Chart Sheet Substream ABNF:
Value Meaning
0x09 This record pertains to new objects introduced in an application version<92>.
rgFontInfo specifies the font information that is used by display units labels
specified by YMult.
0x0A This record pertains to new objects introduced in an application version<93>.
rgFontInfo specifies the font information that is used by extended data label
specified by DataLabExt.
cFont (2 bytes): An unsigned integer that specifies the number of items in rgFontInfo.
rgFontInfo (variable): An array of FontInfo structures that specify the font information. The
number of elements in this array MUST be equal to the value specified in cFont.
2.4.130 FrtWrapper
The FrtWrapper record wraps around a non-Future Record Type (FRT) record and converts it into an
FRT record.
311 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
wrappedRecord (variable)
...
frtWrapperPadding (variable)
...
frtWrapperPadding (variable): An array of bytes that is used to pad FrtWrapper. Each element
MUST be zero and MUST be ignored. This field MUST be present if and only if the size of the
wrappedRecord is less than 8 bytes. If present, the size of frtWrapperPadding MUST be
specified by the following formula:
The size of the padded FrtWrapper MUST be no less than the size of the FrtHeader structure (12
bytes).
2.4.131 GelFrame
The GelFrame record specifies the properties of a fill pattern for parts of a chart. The record consists
of an OfficeArtFOPT, as specified in [MS-ODRAW] section 2.2.9, and an OfficeArtTertiaryFOPT, as
specified in [MS-ODRAW] section 2.2.11, that both contain properties for the fill pattern applied.<94>
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
OPT1 (variable)
...
OPT2 (variable)
...
OPT1 (variable): An OfficeArtFOPT, as specified in [MS-ODRAW] section 2.2.9, specifies the primary
properties of the fill pattern. MUST only contain the subset of OfficeArtFOPT properties specified in
the following list:
312 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillOpacity, as specified in [MS-ODRAW] section 2.3.7.3
313 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
OPT2 (variable): An OfficeArtTertiaryFOPT, as specified in [MS-ODRAW] section 2.2.11 specifies the
additional properties of the fill pattern. MUST only contain the subset of OfficeArtTertiaryFOPT
properties specified in the following list<95>:
2.4.132 GridSet
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
gridset
2.4.133 GUIDTypeLib
The GUIDTypeLib record specifies the GUID as specified by [MS-DTYP] that uniquely identifies the
type library of the application that wrote the Visual Basic for Applications (VBA) project in the
file.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0897.
guid (16 bytes): A GUID as specified by [MS-DTYP] that uniquely identifies the type library of the
application that wrote the VBA project. The value SHOULD<96> be 0x0.
314 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.134 Guts
The Guts record specifies the maximum outline levels for row and column gutters.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused1 unused2
iLevelRwMac iLevelColMac
iLevelRwMac (2 bytes): An unsigned integer that specifies the maximum outline level for the row
gutter. The value MUST be one of the values specified in the following table.
iLevelColMac (2 bytes): An unsigned integer that specifies the maximum outline level for the
column gutter. The value MUST be one of the values specified in the following table.
2.4.135 HCenter
The HCenter record specifies whether the sheet is to be centered horizontally when printed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hcenter
hcenter (2 bytes): A Boolean (section 2.5.14) that specifies whether the sheet is to be centered
between LeftMargin and RightMargin when printed.
2.4.136 Header
The Header record specifies the header text of the current sheet when printed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ast (variable)
315 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
ast (variable): An XLUnicodeString structure that specifies the header text for the current sheet. It is
optional and exists only if the record size is not zero. The text appears at the top of every page
when printed. The length of the text MUST be less than or equal to 255. The header text can
contain special commands, for example a placeholder for the page number, current date or text
formatting attributes. Special commands are represented by single letter with a leading
ampersand ("&"). The following ABNF lists the possible commands and how they are used:
UNICHAR = %x0020-FFFF
This code specifies Unicode characters, starting with the space character (%x0020).
DIGIT = %x0030-0039
DQUOTE = %x0022
left = "&L"
This code specifies the beginning of the left section. There are three header and footer
sections: left, center, and right. When two or more of this section marker exist, the
contents from all markers are concatenated, in the order of appearance, and placed
into the left section.
pagenum = "&P"
316 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This code specifies the text font size, where font size is measured in points.
strikethrough = "&S"
This code specifies whether the strikethrough text style is on or off. The first
occurrence of this code MUST turn the strikethrough text style on, and the second
occurrence MUST turn it off.
superscript = "&X"
This code specifies whether the superscript text style is on or off. The first occurrence
of this code MUST turn the superscript text style on, and the second occurrence MUST
turn it off. The superscript and subscript codes MUST NOT both be on at same time. If
both codes occur in the string, the code that occurs first is applied and the other is
ignored.
subscript = "&Y"
This code specifies whether the subscript text style is on or off. The first occurrence of
this code MUST turn the subscript text style on, and the second occurrence MUST turn
it off. The superscript and subscript codes MUST NOT both be on at same time. If both
codes occur in the string, the code that occurs first is applied and the other is ignored.
center = "&C"
This code specifies the beginning of the center section. When two or more of this
section marker exist, the contents from all markers are concatenated, in the order of
appearance, and placed into the center section.
date = "&D"
time = "&T"
picture = "&G"
underline = "&U"
This code specifies whether the single underline text style is on or off. The first
occurrence of this code MUST turn the underline text style on, and the second
occurrence MUST turn it off.
doubleunderline = "&E"
317 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This code specifies whether the double underline text style is on or off. The first
occurrence of this code MUST turn the double underline text style on, and the second
occurrence MUST turn it off.
right = "&R"
This code specifies the beginning of the right section. When two or more of this section
marker exist, the contents from all markers are concatenated, in the order of
appearance, and placed into the right section.
bookpath = "&Z"
bookname = "&F"
sheetname = "&A"
This code specifies the text font name. When the font name is a hyphen, no font is
specified. This can be a localized string.
This code specifies the text font type. This can be a localized string.
bold = "&B"
This code specifies whether the bold text style is on or off. The first occurrence of this
code MUST turn the bold text style on, and the second occurrence MUST turn it off.
italic = "&I"
This code specifies whether the italic text style is on or off. The first occurrence of this
code MUST turn the italic text style on, and the second occurrence MUST turn it off.
ampersand = "&&"
318 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This code specifies an ampersand character.
This code specifies an unidentified token. If just "&" appears, or if there is a UNICHAR
specified after "&" and it is not one of the UNICHAR characters listed in the preceding
rules, then the token is interpreted as empty and nothing is rendered in the header or
footer text.
2.4.137 HeaderFooter
The HeaderFooter record specifies the even page header and footer text, and the first page header
and footer text of the current sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
...
A B C D unused cchHeaderEven
cchFooterEven cchHeaderFirst
...
strFooterEven (variable)
...
strHeaderFirst (variable)
...
strFooterFirst (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x089C.
319 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
guidSView (16 bytes): A GUID as specified by [MS-DTYP] that specifies the current sheet view. If
it is zero it means the current sheet. Otherwise, this field MUST match the guid field of the
preceding UserSViewBegin record.
A - fHFDiffOddEven (1 bit): A bit that specifies whether the odd and even pages use a different
header and footer. If the value is 1, the Header and Footer records specify the odd page header
and footer, and strHeaderEven and strFooterEven specify the even page header and footer.
B - fHFDiffFirst (1 bit): A bit that specifies whether the first page uses a different header and footer
from the rest of the pages. If the value is 1, the Header and Footer records specify the header and
footer of the rest of the pages, and strHeaderFirst and strFooterFirst specify the first page
header and footer.
C - fHFScaleWithDoc (1 bit): A bit that specifies whether the header and footer is scaled with the
sheet.
D - fHFAlignMargins (1 bit): A bit that specifies whether the left and right edges of the header and
footer are lined up with the left and right margins of the sheet.
strHeaderEven (variable): An XLUnicodeString structure that specifies the header text on the even
pages. The number of characters in the string MUST be equal to cchHeaderEven. The string can
contain special commands, for example a placeholder for the page number, current date or text
formatting attributes. Refer to Header for more details about the string format.
strFooterEven (variable): An XLUnicodeString structure that specifies the footer text on the even
pages. The number of characters in the string MUST be equal to cchFooterEven. The string can
contain special commands, for example a placeholder for the page number, current date or text
formatting attributes. Refer to Header for more details about the string format.
strHeaderFirst (variable): An XLUnicodeString structure that specifies the header text on the first
page. The number of characters in the string MUST be equal to cchHeaderFirst. The string can
contain special commands, for example a placeholder for the page number, current date or text
formatting attributes. Refer to Header for more details about the string format.
strFooterFirst (variable): An XLUnicodeString structure that specifies the footer text on the first
page. The number of characters in the string MUST be equal to cchFooterFirst. The string can
contain special commands, for example a placeholder for the page number, current date or text
formatting attributes. Refer to Header for more details about the string format.
320 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.138 HFPicture
The HFPicture record specifies a picture used by a sheet header or footer. The picture MUST be
specified in either an OfficeArtDgContainer or OfficeArtDggContainer record as specified in [MS-
ODRAW]. The picture can be continued across multiple HFPicture records. The OfficeArtClientAnchor
structure mentioned in [MS-ODRAW] refers to OfficeArtClientAnchorHF.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0866.
Value Meaning
0 rgDrawing is an OfficeArtDggContainer record as specified in
[MS-ODRAW] and fIsDrawingGroup MUST be 1.
1 rgDrawing is an OfficeArtDgContainer record as specified in [MS-
ODRAW] and fIsDrawingGroup MUST be 0.
Value Meaning
0 rgDrawing is an OfficeArtDgContainer record as
specified in [MS-ODRAW] and fIsDrawing MUST be 1.
1 rgDrawing is an OfficeArtDggContainer record as
specified in [MS-ODRAW] and fIsDrawing MUST be 0.
C - fContinue (1 bit): A bit that specifies whether this record is continuing the previous HFPicture
record. The value 0 means it is the first HFPicture record.
rgDrawing (variable): The meaning of this field is specified in the following table.
321 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of fIsDrawing Meaning of rgDrawing
specified in [MS-ODRAW] that
specifies the drawing group
of this picture.
1 This is an
OfficeArtDgContainer as
specified in [MS-ODRAW] that
specifies the drawing object
of this picture
2.4.139 HideObj
The HideObj record specifies how ActiveX objects, OLE objects, and drawing objects appear in a
window that contains the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hideObj
hideObj (2 bytes): A HideObjEnum enumeration that specifies how ActiveX objects, OLE objects,
and drawing objects appear in a window that contains the workbook.
2.4.140 HLink
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref8
...
...
...
hyperlink (variable)
...
ref8 (8 bytes): A Ref8U structure that specifies the range of cells containing the hyperlink.
hlinkClsid (16 bytes): A class identifier (CLSID) that specifies the COM component which saved
the Hyperlink Object (as defined by [MS-OSHARED] section 2.3.7.1) in hyperlink.
hyperlink (variable): A Hyperlink Object (as defined by [MS-OSHARED] section 2.3.7.1) that
specifies the hyperlink and hyperlink-related information.
322 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.141 HLinkTooltip
The HLinkTooltip record specifies the hyperlink ToolTip associated with a range of cells.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderNoGrbit
...
...
wzTooltip (variable): An array of Unicode characters that specifies the ToolTip string. String
length MUST be greater than or equal to 2 and less than or equal to 256 (inclusive of null
terminator) and the string MUST be null-terminated.
2.4.142 HorizontalPageBreaks
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cbrk (2 bytes): An unsigned integer that specifies the number of page breaks. The value MUST be
less than or equal to 1026.
rgbrk (variable): An array of HorzBrk structure that specifies all of the page breaks. The array
MUST be sorted first by rgbrk.row, and then by rgbrk.ColStart. Two page breaks MUST NOT
overlap. The number of HorzBrk structures MUST equal the value of cbrk.
2.4.143 IFmtRecord
The IFmtRecord record specifies the number format to use for the text on an axis.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ifmt
ifmt (2 bytes): An IFmt structure that specifies the number format identifier.
323 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.144 Index
The Index record specifies row information and the file locations for all DBCell records corresponding
to each row block in the sheet. This record, combined with the DBCell records, is used to optimize the
lookup of cells in a cell table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
rwMic
rwMac
ibXF
rgibRw (variable)
...
rwMic (4 bytes): A RwLongU structure that specifies the first row that has at least one cell with
data in current sheet. MUST be 0 if there are no rows that have at least one cell with data.
rwMac (4 bytes): An unsigned integer that specifies one plus the zero-based index of the last row
that has at least one cell with data in the sheet. MUST be 0 if there are no rows that have at least
one cell with data. If not 0, MUST be greater than rwMic.
ibXF (4 bytes): A FilePointer as specified in [MS-OSHARED] section 2.2.1.5 that specifies the file
position of the DefColWidth record in the current sheet.
2.4.145 InterfaceEnd
The InterfaceEnd record specifies the end of a collection of records as defined by the Globals
Substream ABNF. The collection of records specifies information about the user interface.
2.4.146 InterfaceHdr
The InterfaceHdr record specifies the code page of the user interface and specifies the beginning of
a collection of records as defined by the Globals Substream ABNF. The collection of records specifies
information about the user interface.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
codePage
324 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
codePage (2 bytes): An unsigned integer that specifies the code page.
2.4.147 Intl
The Intl record specifies that the macro sheet is an international macro sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
2.4.148 Label
The Label record specifies a label on the category (2) axis for each series.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
... st (variable)
...
cell (6 bytes): A Cell structure that specifies the row and column of the label and the index of the
label’s format.
2.4.149 LabelSst
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
... isst
...
cell (6 bytes): A Cell structure that specifies the cell containing the string from the shared string
table.
isst (4 bytes): An unsigned integer that specifies the zero-based index of an element in the array of
XLUnicodeRichExtendedString structure in the rgb field of the SST record in this Workbook Stream
ABNF that specifies the string contained in the cell. MUST be greater than or equal to zero and
less than the number of elements in the rgb field of the SST record.
325 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.150 Lbl
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cce reserved3
...
rgce (variable)
...
A - fHidden (1 bit): A bit that specifies whether the defined name is not visible in the list of defined
names.
B - fFunc (1 bit): A bit that specifies whether the defined name represents an Excel macro (XLM).
If this bit is 1, fProc MUST also be 1.
C - fOB (1 bit): A bit that specifies whether the defined name represents a Visual Basic for
Applications (VBA) macro. If this bit is 1, the fProc MUST also be 1.
D - fProc (1 bit): A bit that specifies whether the defined name represents a macro.
E - fCalcExp (1 bit): A bit that specifies whether rgce contains a call to a function that can return an
array.
F - fBuiltin (1 bit): A bit that specifies whether the defined name represents a built-in name.
fGrp (6 bits): An unsigned integer that specifies the function category for the defined name. MUST
be less than or equal to 31. The values 17 to 31 are user-defined. User-defined values are
specified in the FnGroupName record. The values 0 to 16 are defined as specified in the following
table:
Value Category
0 All
1 Financial
2 Date Time
3 Math Trigonometry
4 Statistical
5 Lookup
6 Database
7 Text
326 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Category
8 Logical
9 Info
10 Commands
11 Customize
12 Macro Control
13 DDE External
14 User Defined
15 Engineering
16 Cube
H - fPublished (1 bit): A bit that specifies whether the defined name is published. This bit is
ignored if the fPublishedBookItems field of the BookExt_Conditional12 structure is 0.
I - fWorkbookParam (1 bit): A bit that specifies whether the defined name is a workbook
parameter.
chKey (1 byte): The unsigned integer value of the ASCII character that specifies the shortcut key
for the macro represented by the defined name. MUST be 0 (no shortcut key) if fFunc is 1 or if fProc
is 0. Otherwise MUST<97> be greater than or equal to 0x41 and less than or equal to 0x5A, or
greater than or equal to 0x61 and less than or equal to 0x7A.
cch (1 byte): An unsigned integer that specifies the number of characters in Name. MUST be greater
than or equal to zero.
itab (2 bytes): An unsigned integer that specifies if the defined name is a local name, and if so,
which sheet it is on. If itab is not 0, the defined name is a local name and the value MUST be a
one-based index to the collection of BoundSheet8 records as they appear in the Globals
Substream.
Name (variable): An XLUnicodeStringNoCch structure that specifies the name for the defined name.
If fBuiltin is 0, this field MUST satisfy the same restrictions as the name field of the
XLNameUnicodeString structure. If fBuiltin is 1, this field is for a built-in name. Each built-in
name has a zero-based index value associated with it. A built-in name or its index value MUST be
used for this field. The built-in names are defined in the following table:
327 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Values Names
0x00 Consolidate_Area
0x01 Auto_Open
0x02 Auto_Close
0x03 Extract
0x04 Database
0x05 Criteria
0x06 Print_Area
0x07 Print_Titles
0x08 Recorder
0x09 Data_Form
0x0A Auto_Activate
0x0B Auto_Deactivate
0x0C Sheet_Title
0x0D _FilterDatabase
rgce (variable): A NameParsedFormula structure that specifies the formula for the defined name.
2.4.151 LeftMargin
The LeftMargin record specifies the left margin of the current sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
...
num (8 bytes): An Xnum (section 2.5.342) value that specifies the left margin of the current sheet in
inches. The value MUST be greater than or equal to 0 and less than or equal to 49.
2.4.152 Legend
The Legend record specifies properties of a legend, and specifies the beginning of a collection of
records defined by Chart Sheet Substream ABNF. The collection of records specifies a legend. The
absence of this collection of records implies that a legend does not exist on the chart.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
328 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
dx
dy
x (4 bytes): An unsigned integer that specifies the x-position, in SPRC, of the upper-left corner of
the bounding rectangle of the legend. MUST be ignored and the x1 field from the following Pos
record MUST be used instead.
y (4 bytes): An unsigned integer that specifies the y-position, in SPRC, of the upper-left corner of
the bounding rectangle of the legend. MUST be ignored and the y1 field from the following Pos
record MUST be used instead.
dx (4 bytes): An unsigned integer that specifies the width, in SPRC, of the bounding rectangle of the
legend. MUST be ignored and the x2 field from the following Pos record MUST be used instead.
dy (4 bytes): An unsigned integer that specifies the height, in SPRC, of the bounding rectangle of
the legend. MUST be ignored and the y2 field from the following Pos record MUST be used instead.
wSpace (1 byte): An unsigned integer that specifies the space between legend entries. MUST be
0x01, which represents 40 twips between legend entries.
A - fAutoPosition (1 bit): A bit that specifies whether the legend is automatically positioned. If this
field is 0x1, then fAutoPosX MUST be 0x1 and fAutoPosY MUST be 0x1.
C - fAutoPosX (1 bit): A bit that specifies whether the x-positioning of the legend is automatic.
D - fAutoPosY (1 bit): A bit that specifies whether the y-positioning of the legend is automatic.
E - fVert (1 bit): A bit that specifies the layout of the legend entries. MUST equal 0x1 if
fWasDataTable is equal to 0x1. MUST be a value from the following table:
Value Meaning
0x0 The legend contains multiple columns of legend entries, or the size of the
legend was manually changed from the default size.
F - fWasDataTable (1 bit): A bit that specifies whether the legend is shown in a data table.
2.4.153 LegendException
The LegendException record specifies information about a legend entry which was changed from
the default legend entry settings, and specifies the beginning of a collection of records as defined by
the Chart Sheet Substream ABNF. The collection of records specifies legend entry formatting. On a
329 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
chart where the legend contains legend entries for the series and trendlines, as defined in the legend
overview, there MUST be zero instances or one instance of this record in the sequence of records that
conform to the SERIESFORMAT rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iss A B reserved
iss (2 bytes): An unsigned integer that specifies the legend entry. This field has different
interpretations depending on the content of the legend in the chart. The legend overview specifies
the types of content the legend can contain, as follows:
In a chart where the legend contains legend entries for the series and trendlines, this field MUST
be 0xFFFF. This record specifies the legend entry of the series or trendline that contains this
record.
In a chart where the legend contains legend entries for each data point in the chart, this field
specifies the zero-based index of a legend entry in the legend, where 0x0000 is the legend entry
for the first data point in the series.
In a chart with a surface chart group, this field specifies the zero-based index of a legend entry in
the legend, where 0x0000 is the legend entry for the lowest band of the surface chart group.
A - fDeleted (1 bit): A bit that specifies whether the legend entry specified by iss was deleted.
B - fLabel (1 bit): A bit that specifies whether the legend entry specified by iss was formatted. If
this field is 1, there MUST be a sequence of records that conform to the ATTACHEDLABEL rule in
the Chart Sheet Substream ABNF following this record.
2.4.154 Lel
The Lel record specifies that a natural language formula was lost because of the deletion of a
supporting label<98>.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stFormulaName (variable)
...
stFormulaName (variable): An XLUnicodeString structure that specifies the name of the deleted
label. The number of characters MUST be less than 252.
2.4.155 Line
The Line record specifies that the chart group is a line chart group, and specifies the chart group
attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved
330 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fStacked (1 bit): A bit that specifies whether the data points in the chart group that share the
same category (2) are stacked.
B - f100 (1 bit): A bit that specifies whether the data points in the chart group are displayed as a
percentage of the sum of all data points in the chart group that share the same category (2).
MUST be 0 if fStacked is 0.
C - fHasShadow (1 bit): A bit that specifies whether one or more data markers in the chart group
has shadows.
2.4.156 LineFormat
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgb
lns we
A B C D reserved2 icv
rgb (4 bytes): A LongRGB structure that specifies the color of the line. The color MUST match the
color specified by icv.
lns (2 bytes): An unsigned integer that specifies the style of the line. MUST be a value from the
following table:
Value Meaning
0x0000 Solid
0x0001 Dash
0x0002 Dot
0x0003 Dash-dot
0x0004 Dash dot-dot
0x0005 None
0x0006 Dark gray pattern
0x0007 Medium gray pattern
0x0008 Light gray pattern
When the value of this field is 0x0005 (None), the values of we and icv MUST be set to the values
specified in the following table:
we (2 bytes): A signed integer that specifies the thickness of the line. MUST be a value from the
following table:
331 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0xFFFF (-1) Hairline
0x0000 Narrow (single)
0x0001 Medium (double)
0x0002 Wide (triple)
A - fAuto (1 bit): A bit that specifies whether the line has default formatting.
If the value of fAuto is 0, the line has formatting as specified by lns, we, and icv.
If the value of fAuto is 1, lns, we, icv, and rgb MUST be ignored and default values are used as
specified in the following table:
C - fAxisOn (1 bit): A bit that specifies whether the axis line is displayed.
If the previous record is AxisLine and the value of the id field of the AxisLine record is equal to
0x0000, this field MUST be a value from the following table:
If the previous record is not AxisLine and the value of the id field of the AxisLine record is equal to
0x0000, this field MUST be zero, and MUST be ignored.
D - fAutoCo (1 bit): A bit that specifies whether icv is equal to 0x004D. If the value is 1, icv MUST
equal 0x004D. If the value is 0, icv MUST NOT equal 0x004D.
icv (2 bytes): An IcvChart structure that specifies the color of the line. The color MUST match the
color specified by rgb.
2.4.157 List12
The List12 record specifies the additional formatting information for a table. These records
immediately follow a Feature11 or Feature12 record, and specify additional formatting information for
the table specified by the Feature11 or Feature12 record. This record is a future record type record.
332 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
lsd idList
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0877.
lsd (2 bytes): An unsigned integer that specifies the type of data contained in the rgb field.
idList (4 bytes): An unsigned integer that identifies the associated table for which this record
specifies additional formatting. MUST NOT be zero. MUST be equal to the idList field of the
TableFeatureType structure embedded in the associated Feature11 or Feature12 record.
rgb (variable): A structure whose type and meaning are specified by the value of lsd, as specified in
the following table:
2.4.158 LPr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved unused4
unused5 unused6
unused7 unused8
unused9 (variable)
...
333 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - unused2 (1 bit): Undefined and MUST be ignored.
2.4.159 LRng
The LRng record specifies a label range for natural language formulas<99>.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
crefRw (2 bytes): An unsigned integer that specifies the number of row label ranges. When added
to the value of crefCol, the value MUST be less than 1028.
refRow (variable): An array of Ref8U structures. The array specifies the row label ranges. The size
of the array is specified by crefRw.
crefCol (2 bytes): An unsigned integer that specifies the number of column label ranges. When
added to the value of crefRw, the value MUST be less than 1028.
refCol (variable): An array of Ref8U structures. The array specifies the column label ranges. The
size of the array is specified by crefCol.
2.4.160 MarkerFormat
The MarkerFormat record specifies the color, size, and shape of the associated data markers that
appear on line, radar, and scatter chart groups. The associated data markers are specified by the
preceding DataFormat record. If this record is not present in the sequence of records that conforms to
the SS rule of the Chart Sheet Substream ABNF, then the color, size, and shape of the associated
data markers are specified by the default values of the fields of this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgbFore
334 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbBack
imk A B C D reserved2
icvFore icvBack
miSize
rgbFore (4 bytes): A LongRGB structure that specifies the border color of the data marker. The
color MUST match the color specified by icvFore. The default value of this field is automatically
selected from the next available color in the chart color table.
rgbBack (4 bytes): A LongRGB structure that specifies the interior color of the data marker. The
color MUST match the color specified by icvBack. The default value of this field is the same as the
default value for rgbFore only when the default imk is 0x0001, 0x0002, 0x0003, or 0x0008.
Otherwise, the default value is 0xFFFFFF.
imk (2 bytes): An unsigned integer that specifies the type of data marker. The default value for this
field is automatically selected from the list of data marker types and cannot be 0x0000. MUST be
a value from the following table:
Value Meaning
0x0000 No marker.
0x0001 Square markers.
0x0002 Diamond-shaped markers.
0x0003 Triangular markers.
0x0004 Square markers with an X.
0x0005 Square markers with an asterisk.
0x0006 Short bar markers.
0x0007 Long bar markers.
0x0008 Circular markers.
0x0009 Square markers with a plus sign.
A - fAuto (1 bit): A bit that specifies whether the data marker is automatically generated. The
default value for this field is 1. MUST be a value from the following table:
Value Meaning
0x0 The data marker is not automatically generated.
0x1 The data marker type, size, and color are automatically generated and the values are set
accordingly in this record.
C - fNotShowInt (1 bit): A bit that specifies whether to show the data marker interior. The default
value for this field is 0. MUST be a value from the following table:
Value Meaning
0x0 The data marker interior is shown.
0x1 The data marker interior is not shown.
335 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fNotShowBrd (1 bit): A bit that specifies whether to show the data marker border. The default
value for this field is 0. MUST be a value from the following table:
Value Meaning
0x0 The data marker border is shown.
0x1 The data marker border is not shown.
icvFore (2 bytes): An IcvChart structure that specifies the border color of the data marker. The
color MUST match the color specified by rgbFore. The default value of this field is automatically
set to match the color specified by rgbFore.
icvBack (2 bytes): An IcvChart structure that specifies the interior color of the data marker. The
color MUST match the color specified by rgbBack. The default value of this field is automatically
set to match the color specified by rgbBack.
miSize (4 bytes): An unsigned integer that specifies the size in twips of the data marker. MUST be
greater than or equal to 40 and less than or equal to 1440. The default value for this field is 100.
2.4.161 MDB
The MDB record specifies a unique set of MDX metadata type/value pairs that are shared among all
cells in the workbook that reference MDX metadata.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
rgmdir (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x88A.
rgmdir (variable): An array of MDir structures that specifies a block of metadata records.
2.4.162 MDTInfo
The MDTInfor record specifies the information about a single type of metadata.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
336 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
A B C D E F G H I J K L M N O P Q R S T U V W unused1 X Y Z a
stName (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0884.
A - fGhostRow (1 bit): A bit that specifies whether the metadata is applied to all cells in newly
inserted rows.
B - fGhostCol (1 bit): A bit that specifies whether the metadata is applied to all cells in newly
inserted columns.
C - fEdit (1 bit): A bit that specifies whether the metadata is preserved when the cell is edited.
D - fDelete (1 bit): A bit that specifies whether the metadata is preserved when the cell's value is
deleted.
E - fCopy (1 bit): A bit that specifies whether the metadata is copied when the cell is copied. MUST
be 1 if one or more of the values of fPasteAll, fPasteFormulas, fPasteValues, fPasteFormats,
fPasteComments, fPasteDataValidation, fPasteBorders, fPasteColWidths, or
fPasteNumberFormats is 1.
F - fPasteAll (1 bit): A bit that specifies whether the metadata is pasted when all formulas, values,
formatting, comments, and data validation rules are pasted from the previously copied cell.
G - fPasteFormulas (1 bit): A bit that specifies whether the metadata is pasted when only formulas
are pasted from the previously copied cell.
H - fPasteValues (1 bit): A bit that specifies whether the metadata is pasted when only values are
pasted from the previously copied cell.
I - fPasteFormats (1 bit): A bit that specifies whether the metadata is pasted when only formatting
is pasted from the previously copied cell.
J - fPasteComments (1 bit): A bit that specifies whether the metadata is pasted when only
comments are pasted from the previously copied cell.
K - fPasteDataValidation (1 bit): A bit that specifies whether the metadata is pasted when only
data validation rules are pasted from the previously copied cell.
L - fPasteBorders (1 bit): A bit that specifies whether the metadata is pasted when only borders are
pasted from the previously copied cell.
M - fPasteColWidths (1 bit): A bit that specifies whether the metadata is pasted when only column
widths are pasted from the previously copied cell.
N - fPasteNumberFormats (1 bit): A bit that specifies whether the metadata is pasted when only
number formatting is pasted from the previously copied cell.
O - fMerge (1 bit): A bit that specifies whether the metadata is preserved after cells are merged. If
the value of this bit is 1, and the cell has the smallest row and column number of the cells that are
being merged, the metadata is preserved.
337 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
P - fSplitFirst (1 bit): A bit that specifies whether, when a cell is split, the metadata is copied to the
cell with the smallest row and column number. If fSplitAll is set to 1, fSplitAll takes precedence.
Q - fSplitAll (1 bit): A bit that specifies whether, when a cell is split, the metadata is copied to all the
resulting cells. If the value is 1, the value of fSplitFirst MUST be ignored.
R - fRowColShift (1 bit): A bit that specifies whether the metadata is preserved when the cell is
shifted because of row or column deletion or insertion.
S - fClearAll (1 bit): A bit that specifies whether the metadata is preserved when the contents,
formatting, and comments of the cell are cleared.
T - fClearFormats (1 bit): A bit that specifies whether the metadata is preserved when the
formatting of the cell is cleared.
U - fClearContents (1 bit): A bit that specifies whether the metadata is preserved when the
contents of the cell is cleared.
V - fClearComments (1 bit): A bit that specifies whether the metadata is preserved when the
comments of the cell are cleared.
W - fAssign (1 bit): A bit that specifies whether the metadata is preserved when the cell's value is
changed by formula (section 2.2.2) assignment.
X - fCoerce (1 bit): A bit that specifies whether the metadata is preserved when the cell's value is
coerced to a different type.
Y - fAdjust (1 bit): A bit that specifies whether the metadata is updated when the cell's location is
changed.
Z - fCellMeta (1 bit): A bit that specifies whether this metadata type is cell metadata or value
metadata. MUST be 0 from the following table:
Value Meaning
0 Metadata is value metadata.
1 Metadata is cell metadata.
stName (variable): An LPWideString type that specifies the name of the metadata type.
2.4.163 MDXKPI
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
338 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
istrConnName
... istrMbrKPI
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x889.
istrConnName (4 bytes): An MDXStrIndex structure that specifies the index of the connection name
string.
tfnSrc (1 byte): A Tag_Fn_MDX enumeration that specifies the type of MDX function that generated
the metadata. The value MUST be TFNCUBEKPIPROPERTY.
istrKPIName (4 bytes): An MDXStrIndex structure that specifies the index of the MDX unique
name string.
istrMbrKPI (4 bytes): An MDXStrIndex structure that specifies the index of the key performance
indicator name string.
2.4.164 MDXProp
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
istrConnName
tfnSrc istrMbr
... istrProp
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x888.
istrConnName (4 bytes): An MDXStrIndex structure that specifies the index of the connection name
string.
tfnSrc (1 byte): A Tag_Fn_MDX enumeration that specifies the type of MDX function that generated
the metadata. The value MUST be TFNCUBEMEMBERPROPERTY.
339 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
istrMbr (4 bytes): An MDXStrIndex structure that specifies the index of the MDX unique name
string.
istrProp (4 bytes): An MDXStrIndex structure that specifies the index of the property name string.
2.4.165 MDXSet
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
istrConnName
... cistr
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x887.
istrConnName (4 bytes): An MDXStrIndex structure that specifies the index of the connection name
string.
tfnSrc (1 byte): A Tag_Fn_MDX enumeration that specifies the type of cube function that
generated the metadata. The value MUST be equal to TFNCUBESET or TFNCUBESETCOUNT.
sso (1 byte): An SD_SetSortOrder enumeration that specifies the set sort order.
istrSetDef (4 bytes): An MDXStrIndex structure that specifies the index of the set definition string.
cistr (4 bytes): A signed integer that specifies the number of MDX unique name strings. The value
MUST be greater than or equal to 0, and less than or equal to the total number of MDXStr records
in the file.
rgistr (variable): An array of MDXStrIndex structures that specifies the indexes of the MDX unique
name strings. The number of the elements in the array MUST be equal to the value of cistr.
2.4.166 MDXStr
The MDXStr record specifies a shared text string used by records specifying MDX metadata.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
340 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
st (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x885.
2.4.167 MDXTuple
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
istrConnName
tfnSrc cistr
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x886.
istrConnName (4 bytes): An MDXStrIndex structure that specifies the index of the connection name
string.
tfnSrc (1 byte): A Tag_Fn_MDX enumeration that specifies the type of MDX function that generated
the metadata. The value MUST be equal to TFNCUBEMEMBER, TFNCUBEVALUE, or
TFNCUBERANKEDMEMBER.
cistr (4 bytes): A signed integer that specifies the number of MDX unique name strings. The value
MUST be greater than or equal to 0, and less than or equal to the total number of MDXStr records
in the file.
rgistr (variable): An array of MDXStrIndex structures that specifies the indexes of the MDX unique
name strings. The number of the elements in the array MUST be equal to the value of cistr.
2.4.168 MergeCells
The MergeCells record specifies merged cells in the document. If the count of the merged cells in
the document is greater than 1026, the file will contain multiple adjacent MergeCells records.
341 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cmcs (2 bytes): An unsigned integer that specifies the count of Ref8 structures. MUST be less than
or equal to 1026.
rgref (variable): An array of Ref8 structures. Each array element specifies a range of cells that are
merged into a single merged cell. These ranges MUST NOT overlap. MUST contain the number of
elements specified by cmcs.
2.4.169 Mms
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1 reserved2
2.4.170 MsoDrawing
The MsoDrawing record specifies a drawing. If this record is in the Worksheet, Macro Sheet, or
Dialog Sheet substream, the OfficeArtClientAnchor structure mentioned in [MS-ODRAW] refers to
the OfficeArtClientAnchorSheet structure. If this record appears in the Chart Sheet substream, the
OfficeArtClientAnchor structure mentioned in [MS-ODRAW] refers to the OfficeArtClientAnchorChart
structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgChildRec (variable)
...
2.4.171 MsoDrawingGroup
342 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgChildRec (variable)
...
2.4.172 MsoDrawingSelection
The MsoDrawingSelection record specifies selected drawing objects and the drawing objects in
focus on the sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
selection (variable)
...
2.4.173 MTRSettings
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
fMTREnabled
fUserSetThreadCount
cUserThreadCount
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x089A.
fMTREnabled (4 bytes): A Boolean (section 2.5.14) that specifies whether the multithreaded
calculation is enabled. MUST be a value from the following table:
Value Meaning
343 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
fUserSetThreadCount (4 bytes): A Boolean that specifies whether the thread count was manually
specified by the user. MUST be a value from the following table:
Value Meaning
cUserThreadCount (4 bytes): A signed integer that specifies the count of calculation threads. MUST
be greater than or equal to 0x00000001 and MUST be less than or equal to 0x00000400. If
fMTREnabled is 0x00000000 or fUserSetThreadCount is 0x00000000, the value of this field
MUST be ignored.
2.4.174 MulBlank
The MulBlank record specifies a series of blank cells in a sheet row. This record can store up to 256
IXFCell structures.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw colFirst
rgixfe (variable)
...
colLast
colFirst (2 bytes): A Col structure that specifies the first column in the series of blank cells within
the sheet. The value of colFirst.col MUST be less than or equal to 254.
rgixfe (variable): An array of IXFCell structures. Each element of this array contains an IXFCell
structure corresponding to a blank cell in the series. The number of entries in the array MUST be
equal to the value given by the following formula:
colLast (2 bytes): A Col structure that specifies the last column in the series of blank cells within
the sheet. This colLast.col value MUST be greater than colFirst.col value.
344 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.175 MulRk
The MulRk record specifies a series of cells with numeric data in a sheet row. This record can store
up to 256 RkRec structures.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw colFirst
rgrkrec (variable)
...
colLast
rw (2 bytes): An Rw structure that specifies the row containing the cells with numeric data.
colFirst (2 bytes): A Col structure that specifies the first column in the series of numeric cells within
the sheet. The value of colFirst.col MUST be less than or equal to 254.
rgrkrec (variable): An array of RkRec structures. Each element in the array specifies an RkRec in
the row. The number of entries in the array MUST be equal to the value given by the following
formula:
colLast (2 bytes): A Col structure that specifies the last column in the set of numeric cells within the
sheet. This colLast.col value MUST be greater than the colFirst.col value.
2.4.176 NameCmt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cchName cchComment
name (variable)
...
comment (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0894.
345 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchName (2 bytes): An unsigned integer that specifies the number of characters in the name. The
value MUST be less than or equal to 0x00FF.
cchComment (2 bytes): An unsigned integer that specifies the number of characters in the
comment. The value MUST be less than or equal to 0x00FF.
name (variable): An XLUnicodeStringNoCch structure that specifies the defined name; cchName
specifies the number of characters in this string. This string MUST satisfy the formatting
restrictions specified in the XLNameUnicodeString structure. This string MUST also satisfy the
following formatting restriction based on the fBuiltin field in the preceding Lbl record:
2.4.177 NameFnGrp12
The NameFnGrp12 record specifies the name of a function in a function category that is specified
in an FnGrp12 record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cachName fgrp
rgach (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0899.
cachName (2 bytes): An unsigned integer that specifies the number of characters in the name of the
function. The value MUST be greater than or equal to 1 and less than or equal to 255.
fgrp (2 bytes): An unsigned integer that specifies the zero-based index of the function category that
this function belongs to. This value minus 32 specifies the zero-based index of an FnGrp12 record
346 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
in the collection of FnGrp12 records, as specified by the Globals Substream ABNF. MUST be
greater than or equal to 32 and less than or equal to 255.
rgach (variable): An XLNameUnicodeString structure that specifies the name of the function. The
length MUST be equal to cachName.
2.4.178 NamePublish
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0893.
A - fPublished (1 bit): A bit that specifies whether the defined name is published to a server. This
bit is ignored if the fPublishedBookItems field of the BookExt_Conditional12 structure is 0.
B - fWorkbookParam (1 bit): A bit that specifies whether the defined name is a workbook
parameter.
2.4.179 Note
The Note record specifies a comment associated with a cell or revision information about a comment
associated with a cell.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
body (variable)
...
body (variable): A variable type field. The data type and meaning of this field is determined by the
stream that contains this record, as specified in the following table:
Stream that contains this record Body field data type and meaning
347 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Stream that contains this record Body field data type and meaning
a Macro Sheet substream.
2.4.180 Number
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cell
... num
...
...
num (8 bytes): An Xnum (section 2.5.342) value that specifies the cell value.
If this record appears in a SERIESDATA record collection, and this record specifies a cell in the
chart data cache that specifies data for an error bar series, then this field is a ChartNumNillable
value. If a ChartNumNillable is used, a blank cell is specified by a NilChartNum structure that has
a type field with a value of 0x0000, and a cell with a #N/A error is specified by a NilChartNum
that has a type field with a value of 0x0100.
2.4.181 Obj
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
pictFormat (optional)
348 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... pictFlags (optional)
...
...
...
rbo (optional)
...
...
...
...
...
...
macro (variable)
...
pictFmla (variable)
...
linkFmla (variable)
...
checkBox (optional)
...
...
radioButton (optional)
...
349 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
edit (optional)
...
...
list (variable)
...
gbo (optional)
...
...
cmo (22 bytes): An FtCmo structure that specifies the common properties of this object.
gmo (6 bytes): An optional FtGmo structure that specifies the properties of this group object. This
field MUST exist if and only if cmo.ot is equal to 0x00.
pictFormat (6 bytes): An optional FtCf structure that specifies the format of this picture object. This
field MUST exist if and only if cmo.ot is equal to 0x08.
pictFlags (6 bytes): An optional FtPioGrbit structure that specifies additional properties of this
picture object. This field MUST exist if and only if cmo.ot is equal to 0x08.
cbls (16 bytes): An optional FtCbls structure that represents a check box or radio button. This field
MUST exist if and only if cmo.ot is equal to 0x0B or 0x0C.
rbo (10 bytes): An optional FtRbo structure that represents a radio button. This field MUST exist if
and only if cmo.ot is equal to 0x0C.
sbs (24 bytes): An optional FtSbs structure that specifies the properties of this spin control,
scrollbar, list, or drop-down list object. This field MUST exist if and only if cmo.ot is equal to 0x10,
0x11, 0x12, or 0x14.
nts (26 bytes): An optional FtNts structure that specifies the properties of this comment object. This
field MUST exist if and only if cmo.ot is equal to 0x19.
macro (variable): An optional FtMacro structure that specifies the action associated with this object.
pictFmla (variable): An optional FtPictFmla structure that specifies the location of the data
associated with this picture object. This field MUST NOT exist unless cmo.ot is equal to 0x08.
linkFmla (variable): An optional ObjLinkFmla structure that specifies the formula (section 2.2.2)
that specifies a range that has a value linked to this object. This field MUST NOT exist unless cmo.ot
is equal to 0x0B, 0x0C, 0x10, 0x11, 0x12, or 0x14. The value of linkFmla.ft MUST equal 0x14 if
cmo.ot is equal to 0x0B or 0x0C. Otherwise, linkFmla.ft MUST equal 0x0E.
checkBox (12 bytes): An optional FtCblsData structure that specifies the properties of this check
box or radio button object. This field MUST exist if and only if cmo.ot is equal to 0x0B or 0x0C.
350 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
radioButton (8 bytes): An optional FtRboData structure that specifies additional properties of this
radio button object. This field MUST exist if and only if cmo.ot is equal to 0x0C.
edit (12 bytes): An optional FtEdoData structure that specifies the properties of this edit box object.
This field MUST exist if and only if cmo.ot is equal to 0x0D.
list (variable): An optional FtLbsData structure that specifies the properties of this list box or drop-
down object. This field MUST exist if and only if cmo.ot is equal to 0x12 or 0x14.
gbo (10 bytes): An optional FtGboData structure that specifies the properties of this group box
object. This field MUST exist if and only if cmo.ot is equal to 0x13.
reserved (4 bytes): Optional. MUST be 0, and MUST be ignored. This field MUST exist if and only if
cmt.ot does not equal 0x12 or 0x14.
2.4.182 ObjectLink
The ObjectLink record specifies an object on a chart, or the entire chart, to which the Text record is
linked.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wLinkObj wLinkVar1
wLinkVar2
wLinkObj (2 bytes): An unsigned integer that specifies the object that the Text record is linked to.
MUST be a value from the following table:
Value Meaning
0x0001 Entire chart.
0x0002 Value axis, or vertical value axis on
bubble and scatter chart groups
0x0003 Category axis, or horizontal value axis on
bubble and scatter chart groups.
0x0004 Series or data points.
0x0007 Series axis.
0x000C Display units labels of an axis.
wLinkVar1 (2 bytes): An unsigned integer that specifies the zero-based index into a Series record in
the collection of Series records in the current Chart Sheet substream. Each referenced Series
record specifies a series for the chart group to which the Text record is linked. When the
wLinkObj field is 4, MUST be less than or equal to 254. When the wLinkObj field is not 4, MUST
be zero, and MUST be ignored.
wLinkVar2 (2 bytes): An unsigned integer that specifies the zero-based index into the category (2)
within the series specified by wLinkVar1, to which the Text record is linked. When the wLinkObj
field is 4, if the Text record is linked to a series instead of a single data point, the value MUST be
0xFFFF; if the Text record is linked to a data point, the value MUST be less than or equal to
31999. When the wLinkObj field is not 4, MUST be zero, and MUST be ignored.
351 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.183 ObjProtect
The ObjProtect record specifies the protection state of the objects on the sheet. This record exists
if the sheet is protected and the objects on the sheet are protected.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fLockObj
fLockObj (2 bytes): A Boolean (section 2.5.14) that specifies that the objects are protected. MUST
be 0x0001.
2.4.184 ObNoMacros
The existence of the ObNoMacros record specifies that an ObProj record exists in the file, and that
there are no forms, modules, or class modules in the VBA project located in the VBA storage
stream.
2.4.185 ObProj
The existence of the ObProj record specifies that there is a VBA project in the file. This project is
located in the VBA storage stream.
2.4.186 OleDbConn
The OleDbConn record specifies the connection information for an OLE DB connection string, and
specifies the beginning of a collection of ExtString records as defined by the Worksheet Substream
ABNF. The collection of ExtString records specifies the connection string for a query that retrieves
external data.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
A B reserved1 cst
reserved2
A - fPasswd (1 bit): A bit that specifies whether the connection password is present in the
connection string. A value of 1 specifies that the password was stripped from the connection
string.
B - fLocal (1 bit): A bit that specifies whether the connection string is the main connection string or
an alternate connection string. See ConnGrbitDbtOledb for more information.
cst (2 bytes): An unsigned integer that specifies the number of ExtString records that follow this
record. MUST be greater than 0. If the value is 1, the connection string is specified by
ExtString.string. If the value is greater than 1, the connection string is determined by
concatenating each of the ExtString.string fields of the ExtString records that follow.
352 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved2 (4 bytes): MUST be zero, and MUST be ignored.
2.4.187 OleObjectSize
The OleObjectSize record specifies the visible range of cells when this workbook is displayed as an
embedded object in another document.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused ref
...
ref (6 bytes): A RefU structure that specifies the visible range of cells, if the workbook is an
embedded object and the active sheet is a worksheet, a macro sheet, or a dialog sheet as
specified by the itabCur field of a Window1 record. Otherwise, ref is undefined and MUST be
ignored.
2.4.188 Palette
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
ccv (2 bytes): A signed integer that specifies the number of colors in the rgColor array. The value
MUST be 56.
rgColor (variable): An array of LongRGB structures that specifies the colors of the color palette.
The number of items in the array MUST be equal to the value specified in the ccv field.
2.4.189 Pane
The Pane record specifies the position of frozen panes or unfrozen panes in the window used to
display the sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
x y
rwTop colLeft
pnnAcct reserved
x (2 bytes): An unsigned integer that specifies the horizontal position of the split in the pane. If the
value of fFrozenRt in the preceding Window2 record is 1, the value of x is measured in cells and
353 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
MUST be less than or equal to 255. If the value of fFrozenRt in the preceding Window2 is 0, the
value of x is measured in twips, and MUST be less than or equal to 32767.
y (2 bytes): An unsigned integer that specifies the vertical position of the split in the pane. If the
value of fFrozenRt in the preceding Window2 record is 1, the value of y is measured in cells. If
the value of fFrozenRt in the preceding Window2 is 0, the value of y is measured in twips, and
MUST be less than or equal to 32767.
rwTop (2 bytes): An RwU structure that specifies the topmost visible row in the bottom pane.
colLeft (2 bytes): A ColU structure that specifies the first visible logical left column in the logical
right pane.
2.4.190 ParamQry
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fixed
...
rgb (variable)
...
fixed (8 bytes): A PARAMQRY_Fixed structure that specifies the type information of the parameters.
rgb (variable): Variable type field that specifies a parameter for a parameterized query. The data
type and meaning are specified in the following table:
Value of Value of
fixed.pbt fixed.grbit Meaning
0 Any rgb is an SXString followed by an unused byte.
2.4.191 Password
The Password record specifies the password verifier for the sheet or workbook. If this record exists
in the Globals Substream, then it is a password for the workbook. If this record exists in a worksheet
substream, chart sheet substream, macro sheet substream, or dialog sheet substream, then it is a
password for only that sheet. This record MUST exist for the workbook. A sheet has a password if and
only if this record exists.
354 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wPassword
wPassword (2 bytes): An unsigned integer that specifies the password verifier<100>. See Password
Verifier Algorithm for more information. If the password is for a sheet, MUST NOT equal 0x0000. If
wPassword is 0x0000 it means the workbook has no password.
2.4.192 PhoneticInfo
The PhoneticInfo record specifies the default format for phonetic strings and the ranges of cells
on the sheet that have phonetic strings that are visible.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
phs
sqref (variable)
...
phs (4 bytes): A Phs structure that specifies the default format for phonetic strings on the sheet.
When a phonetic string is entered into a cell that does not already contain a phonetic string, the
default format is applied to the phonetic string.
sqref (variable): An SqRef structure that specifies the ranges of cells on the sheet that have
phonetic strings that are visible.
2.4.193 PicF
The PicF record specifies the layout of a picture that is attached to a picture-filled chart element.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptyp unused
reserved1 A B C D numScale
...
...
ptyp (2 bytes): An unsigned integer that specifies the picture layout. If this record is not located in
the sequence of records that conform to the SS rule, as specified by the Chart Sheet Substream
ABNF, then this field MUST be 0x0001. If this record is located in the sequence of records that
conform to the SS rule, then this field MUST be a value from the following table:
Value Meaning
0x0001 Stretched. The picture is scaled to fit within the dimensions of the filled areas of the chart
element.
355 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0002 Stacked. The pictures in the data points are stacked on top of each other in the direction of
the value axis.
0x0003 Stacked and scaled. The pictures in the data points are stacked next to or on top of each
other, and each picture is scaled to fit in the number of units on the value axis as specified
by numScale.
A - fTopBottom (1 bit): A bit that specifies whether the picture covers the top and bottom fill areas
of the data points. The top and bottom fill areas of the data points are parallel to the floor in a 3-
D plot area. If a Chart3d record does not exist in the chart sheet substream, or if this record is
not in an SS rule or if this record is in an SS rule that contains a Chart3DBarShape record with the
riser field equal to 0x01, this field MUST be 1.
B - fBackFront (1 bit): A bit that specifies whether the picture covers the front and back fill areas of
the data points on a bar or column chart group. If a Chart3d record does not exist in the chart
sheet substream, or if this record is not in an SS rule or if this record is in an SS rule that contains
a Chart3DBarShape record with the riser field equal to 0x01, this field MUST be 1.
C - fSide (1 bit): A bit that specifies whether the picture covers the side fill areas of the data points
on a bar or column chart group. If a Chart3d record does not exist in the chart sheet substream,
or if this record is not in an SS rule or if this record is in an SS rule that contains a
Chart3DBarShape record with the riser field equal to 0x01, this field MUST be 1.
numScale (8 bytes): An Xnum (section 2.5.342) that specifies the number of units on the value axis
in which to fit the entire picture. The picture is scaled to fit within this number of units. If the
value of ptyp is not 0x0003, this field is undefined and MUST be ignored.
2.4.194 Pie
The Pie record specifies that the chart group is a pie chart group or a doughnut chart group, and
specifies the chart group attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
anStart pcDonut
A B reserved
anStart (2 bytes): An unsigned integer that specifies the starting angle of the first data point,
clockwise from the top of the circle. MUST be less than or equal to 360.
pcDonut (2 bytes): An unsigned integer that specifies the size of the center hole in a doughnut
chart group as a percentage of the plot area size. MUST be a value from the following table:
Value Meaning
0 Pie chart group.
10 to 90 Doughnut chart group.
356 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fHasShadow (1 bit): A bit that specifies whether one data point or more data points in the chart
group have shadows.
B - fShowLdrLines (1 bit): A bit that specifies whether the leader lines to the data labels are
shown.
2.4.195 PieFormat
The PieFormat record specifies the distance of a data point or data points in a series from the center
of one of the following:
The data point or data points in a series are specified by the sequence of records that conforms to the
SS rule in the Chart Sheet Substream ABNF that contains this record.
MUST NOT exist on chart group types other than pie, doughnut, bar of pie, or pie of pie. MUST NOT
exist if the chart group type is doughnut and the series is not the outermost series. MUST NOT exist
on the data points on the secondary bar/pie of a bar of pie chart group.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
pcExplode
pcExplode (2 bytes): A signed integer that specifies the distance of a data point or data points in a
series from the center of one of the following:
The value of this field specifies the distance as a percentage. If this value is 0, then the data
point or data points in a series is as close to the center as possible for the particular chart
group type. If this value is 100, then the data point is at the edge of the chart area (section
2.2.3.17). If this value is greater than 100, such that the data point is beyond the edge of the
chart area, then all the data points in the chart group are scaled down to fit inside the chart
area such that the data point with the highest pcExplode value is at the edge of the chart
area .
2.4.196 PivotChartBits
357 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt unused1
rt (2 bytes): An unsigned integer that specifies the FRT record type. MUST be 0x0859.
A - fGXHide (1 bit): A bit that specifies whether to hide the pivot field captions in the Pivot Chart.
reserved1 (2 bytes): This field SHOULD<101> exist. If this field exists, this value MUST be 0x0000,
and MUST be ignored.
reserved2 (2 bytes): This field SHOULD<102> exist. If this field exists, this value MUST be 0x0000,
and MUST be ignored.
reserved3 (2 bytes): This field SHOULD<103> exist. If this field exists, this value MUST be 0x0000,
and MUST be ignored.
2.4.197 PlotArea
The PlotArea record is empty, specifying that the Frame record that immediately follows this record
specifies properties of the plot area.
2.4.198 PlotGrowth
The PlotGrowth record specifies the scale factors to use when calculating the font scaling
information for a font in the plot area. If no Fbi record exists in the chart sheet where scab is
0x0001, this record is unused and MUST be ignored. Otherwise, the values from each Fbi record
where scab is 0x0001 are used in conjunction with values in this record to render the scaled fonts in
the plot area.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dxPlotGrowth
dyPlotGrowth
2.4.199 Pls
The Pls record specifies printer settings and the printer driver information.
358 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgb (variable): A DEVMODE structure, as defined in [DEVMODE], which specifies the printer
settings. The size of this field is equal to the size of the current record and all of the following
Continue records, excluding the record's heading and reserved field.
2.4.200 PLV
The PLV record specifies the settings of a Page Layout view for a sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
wScalePLV A B C unused
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x088B.
wScalePLV (2 bytes): An unsigned integer that specifies zoom scale as a percentage for the Page
Layout view of the current sheet. For example, if the value is 107, then the zoom scale is 107%.
The value 0 means that the zoom scale is not set. If the value is nonzero, it MUST be greater than
or equal to 10 and less than or equal to 400.
A - fPageLayoutView (1 bit): A bit that specifies whether the sheet is in the Page Layout view. If
the fSLV in Window2 record is 1 for this sheet, it MUST be 0.
B - fRulerVisible (1 bit): A bit that specifies whether the application displays the ruler.
C - fWhitespaceHidden (1 bit): A bit that specifies whether the margins between pages are
hidden in the Page Layout view.
2.4.201 Pos
The Pos record specifies the size and position for a legend, an attached label, or the plot area, as
specified by the primary axis group. This record MUST be ignored for the plot area when the
fManPlotArea field of ShtProps in the associated chart sheet substream is set to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
mdTopLt mdBotRt
359 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
x1 unused1
y1 unused2
x2 unused3
y2 unused4
mdTopLt (2 bytes): A PositionMode structure that specifies the positioning mode for the upper-left
corner of a legend, an attached label, or the plot area. The valid combinations of mdTopLt and
mdBotRt and the meaning of x1, y1, x2, y2 are specified in the Valid Combinations of
mdTopLt and mdBotRt by Type table.
mdBotRt (2 bytes): A PositionMode structure that specifies the positioning mode for the lower-right
corner of a legend, an attached label, or the plot area. The valid combinations of mdTopLt and
mdBotRt and the meaning of x1, y1, x2, y2 are specified in the following table.
mdTopLt mdBotRt
Type Position Mode Position Mode Meaning
plot area (axis MDPARENT MDPARENT The values of x1 and y1 specify the horizontal and
group) vertical offsets of the primary axis group's upper-
left corner, relative to the upper-left corner of the
chart area (section 2.2.3.17), in SPRC. The values
of x2 and y2 specify the width and height of the
primary axis group, in SPRC.
legend MDCHART MDABS The values x1 and y1 specify the horizontal and
vertical offsets of the legend's upper-left corner,
relative to the upper-left corner of the chart area
(section 2.2.3.17) in SPRC. The values of x2 and
y2 specify the width and height of the legend, in
points.
legend MDCHART MDPARENT The values of x1 and y1 specify the horizontal and
vertical offsets of the legend's upper-left corner,
relative to the upper-left corner of the chart area
(section 2.2.3.17) in SPRC. The values of x2 and
y2 MUST be ignored. The size of the legend is
determined by the application.
legend MDKTH MDPARENT The values of x1, y1, x2 and y2 MUST be ignored.
The legend is located inside a data table.
attached label MDPARENT MDPARENT The meaning of x1 and y1 is specified in the
Meaning of x1 and y1 as specified by the Type of
Attached Label table. x2 and y2 MUST be
ignored. The size of the attached label is
determined by the application.
The following table shows the meaning of x1 and y1 as specified by the type of attached label.
Chart title The value of x1 and y1 specify the horizontal and vertical offset of the
title, relative to its default position, in SPRC.
Axis title The value of x1 and y1 specify the offset of the title along the direction
of a specific axis. The value of x1 specifies an offset along the category
(2) axis, date axis, or horizontal value axis. The value of y1 specifies an
offset along the value axis. Both offsets are relative to the title's default
position, in 1/1000th of the axis length.
360 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Type of Attached Label Meaning
Data label If the chart is not a pie chart group or a radar chart group, x1 and y1
specify the offset of the label along the direction of the specific axis. The
x1 value is an offset along the category (2) axis, date axis, or horizontal
value axis. The y1 value is an offset along the value axis, opposite to the
direction of the value axis. Both offsets are relative to the label's default
position, in 1/1000th of the axis length.
For a pie chart group, the value of x1 specifies the clockwise angle, in
degrees, and the value of y1 specifies the radius offset of the label
relative to its default position, in 1/1000th of the pie radius length. A label
moved toward the pie center has a negative radius offset.
For a radar chart group, the values of x1 and y1 specify the horizontal
and vertical offset of the label relative to its default position, in 1/1000th
of the axis length.
x1 (2 bytes): A signed integer that specifies a position. The meaning is specified in the earlier table
showing the valid combinations mdTopLt and mdBotRt by type.
y1 (2 bytes): A signed integer that specifies a position. The meaning is specified in the earlier table
showing the valid combinations mdTopLt and mdBotRt by type.
x2 (2 bytes): A signed integer that specifies a width. The meaning is specified in the earlier table
showing the valid combinations mdTopLt and mdBotRt by type.
y2 (2 bytes): A signed integer that specifies a height. The meaning is specified in the earlier table
showing the valid combinations mdTopLt and mdBotRt by type.
2.4.202 PrintGrid
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A unused
A - fPrintGrid (1 bit): A bit that specifies whether the gridlines are printed.
2.4.203 PrintRowCol
The PrintRowCol record specifies whether the row and column headers are printed.
361 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
printRwCol
printRwCol (2 bytes): A Boolean (section 2.5.14) that specifies whether the row and column
headers are printed. MUST be a value from the following table:
Value Meaning
2.4.204 PrintSize
The PrintSize record specifies the printed size of the chart. This record affects the charts printed only
on their own page.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
printSize
printSize (2 bytes): An unsigned integer that specifies the printed size of the chart. MUST be a
value from the following table:
Value Meaning
0x0000 The record is part of a UserSViewBegin block and the print settings are
unchanged from the defaults specified in the workbook.
0x0001 The chart is resized to fill the entire page regardless of the original chart
proportions, within page margins.
0x0002 The chart is resized proportionally to fill the entire page, within page
margins.
0x0003 The printed size of the chart is defined in the Chart record.
2.4.205 Prot4Rev
The Prot4Rev record specifies whether removal of the shared workbook's revision logs is disallowed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fRevLock
fRevLock (2 bytes): A Boolean (section 2.5.14) that specifies whether removal of the shared
workbook's revision logs is disallowed. The value MUST be one of the values specified in the
following table:
362 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0000 Removal of the shared workbook's revision logs is allowed.
0x0001 Removal of the shared workbook's revision logs is disallowed.
2.4.206 Prot4RevPass
The Prot4RevPass record specifies the password verifier that is required to change the value of the
fRevLock field of the Prot4Rev record that immediately precedes this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
protPwdRev
protPwdRev (2 bytes): An unsigned integer that specifies the password verifier that is required to
change the value of the fRevLock field of the Prot4Rev record that immediately precedes this
record<104>. The algorithm to generate the password verifier is documented in the password
verifier algorithm. If the value is 0, there is no password. MUST be 0 if the fRevLock field of
Prot4Rev is 0x0000.
2.4.207 Protect
The Protect record specifies the protection state for the sheet or workbook. If this record exists in
the Globals Substream, then the protection state specified in this record applies to the workbook. If
this record exists in a worksheet substream, chart sheet substream, macro sheet substream, or dialog
sheet substream, then the protection state specified in this record applies to only that sheet. This
record MUST exist for the workbook. For a sheet, the sheet is protected if and only if this record
exists.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fLock
fLock (2 bytes): A Boolean (section 2.5.14) that specifies whether the sheet or workbook is
protected. For a sheet, fLock MUST be 0x0001, and it means the sheet is protected. For the
workbook, it MUST be a value from the following table:
Value Meaning
0x0000 The workbook is not protected.
0x0001 The workbook is protected.
2.4.208 Qsi
The Qsi record specifies properties for a query table, and specifies the beginning of a collection of
records as defined by the Worksheet Substream ABNF. The collection of records specifies additional
information for the query table.
363 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M N itblAutoFmt
O P Q R S T unused3 reserved
...
unused4
A - fTitles (1 bit): A bit that specifies whether the first row of the query table contains column titles.
B - fRowNums (1 bit): A bit that specifies whether the first column of the query table displays row
numbers.
C - fDisableRefresh (1 bit): A bit that specifies whether the query table can be refreshed.
Value Meaning
0 The query table can be refreshed.
1 The query table cannot be refreshed.
D - fAsync (1 bit): A bit that specifies whether the query table refreshes data asynchronously. MUST
be set to 1 if fNewAsync field is set to1.
E - fNewAsync (1 bit): A bit that specifies whether data has been refreshed for this query table.
MUST be set to 0 if fAsync field is set to 0.
Value Meaning
0 The first background data refresh was finished at
the time the file was saved.
1 The first background data refresh was not finished
at the time the file was saved.
F - fAutoRefresh (1 bit): A bit that specifies whether the query table refreshes its data
automatically when the document is opened.
G - fShrink (1 bit): A bit that specifies the behavior when dealing with a variable number of rows of
data in the query table between refresh operations. If fOverwrite is 1, this value MUST be 0.
MUST be one of the following.
Value Meaning
0 Unused cells are to be cleared.
1 Unused cells are to be deleted
H - fFill (1 bit): A bit that specifies whether formulas in columns adjacent to the query table are
filled down whenever the query table is refreshed.
364 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
J - fSaveData (1 bit): A bit that specifies whether the query table preserves all of its data in the
sheet when the document is saved. MUST be one of the following:
Value Meaning
0x0 Data in the query table will not be saved
0x1 Data in the query table will be saved
K - fDisableEdit (1 bit): A bit that specifies whether the content used with this query table is
editable.
Value Meaning
0 Content is editable
1 Content is locked
M - fOverwrite (1 bit): A bit that specifies the behavior when dealing with a variable number of
rows of data in the query table between refresh operations. If fShrink is 1, this value MUST be 0.
MUST be one of the following.
Value Meaning
0 Insert new cells for new data
1 Overwrite existing cells for new data
itblAutoFmt (2 bytes): An AutoFmt8 that specifies the AutoFormat to be applied to the query
table. MUST be less than or equal to 0x0014.
O - fibitAtrNum (1 bit): A bit that specifies whether numeric cell data is formatted according to the
style specified in itblAutoFmt field.
P - fibitAtrFnt (1 bit): A bit that specifies whether cell text is formatted according to the style
specified in itblAutoFmt field.
Q - fibitAtrAlc (1 bit): A bit that specifies whether cell text alignment is set according to the style
specified in itblAutoFmt field.
R - fibitAtrBdr (1 bit): A bit that specifies whether border is set according to the style specified in
itblAutoFmt field.
S - fibitAtrPat (1 bit): A bit that specifies whether the pattern is formatted according to the style
specified in itblAutoFmt field.
T - fibitAtrProt (1 bit): A bit that specifies whether the cell is protected according to the style
specified in itblAutoFmt field.
rgchName (variable): A XLUnicodeString string that specifies the name of the query table. The
number of characters in this array MUST be less than 0x00FF. Within this workbook, there MUST
365 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
be a defined name as specified by an Lbl record with its fHidden field equal to 1 and its Name
field matching this field’s value and the rgce field only containing a PtgArea3d referencing the
range of cells for the query table fields. Spaces within rgchName are converted to underscores
for the purposes of this comparison.
2.4.209 Qsif
The Qsif record specifies the properties for a query table field. One Qsif record is stored for each
query table field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
A B C iSortKey D E F G H reserved3
idField
idList (optional)
rgbTitle (variable)
...
A - fUserIns (1 bit): A bit that specifies whether this column was inserted into the query table.
Value Meaning
0 The column is from the external data source.
1 The column was inserted into the query table
and is not from the external data source.
B - fFillDown (1 bit): A bit that specifies whether the formula (section 2.2.2) in this query table
field is filled down on data refresh.
C - fSortDes (1 bit): A bit that specifies whether this query table field is sorted in descending
order if it is included as part of a sort range.
iSortKey (8 bits): An unsigned integer that specifies the position of this query table field in the sort
range. MUST be a value from the following table:
366 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Axis Description
3 This query table field contains sort criteria for
the third sort key as specified in the Sort record.
D - fRowNums (1 bit): A bit that specifies whether this query table field contains the row numbers
for the data from the external data source.
F - fSorted (1 bit): A bit that specifies whether this query table field is part of a sort range.
H - fClipped (1 bit): A bit that specifies whether this query table field is currently outside the sheet
bounds as specified in the cell table. If the fUserIns field is set to 1, this field MUST be set to 0.
idField (4 bytes): An unsigned integer that specifies a unique identifier of this query table field in
the query table. MUST be greater than or equal to 0x0001 and less than or equal to 0xFFFF.
idList (4 bytes): An optional unsigned integer that specifies the value corresponding to the idList
field of the TableFeatureType structure that is linked with this query table. This field exists only if
the verLastXLSaved field of the BOF records is greater than or equal to 0x4.
rgbTitle (variable): An XLUnicodeString string that specifies the name of the query table field. The
length of the query table field MUST less than or equal to 0x00FF.
2.4.210 Qsir
The Qsir record specifies the properties related to the formatting of a query table, and specifies the
beginning of a collection of Qsif records as defined by the Worksheet Substream ABNF. The collection
of Qsif records specifies properties for a query table field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
...
cbQsirSaved cbQsifSaved
A B C reserved1 D E F G H I J wVerBeforeRefr K
eshAlert
iSortCustom
cQsif
cpstDeleted
367 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
idFieldNext
ccolExtraLeft ccolExtraRight
idList (optional)
rgbTitle (variable)
...
cbQsirSaved (2 bytes): An unsigned integer that specifies the number of bytes in the Qsir record
excluding the frtRefHeaderU , cbQsirSaved, and cbQsifSaved fields.
cbQsifSaved (2 bytes): An unsigned integer that specifies the size in bytes of each Qsif record that
follows this Qsir record. This value MUST be less than the difference between the size in bytes for
the Qsif record and the size in bytes of the frtHeaderOld field in the same record.
A - fPersist (1 bit): A bit that specifies whether sorting, filtering, and layout is preserved for this
query table after data refresh operations.
B - fPersistSort (1 bit): A bit that specifies whether the sorting is preserved for this query table
after data refresh operations. MUST be equal to fPersist.
C - fPersistAutoFilter (1 bit): A bit that specifies whether AutoFilter is preserved for this query
table after data refresh operations. MUST be equal to fPersist.
E - fSorted (1 bit): A bit that specifies whether a sort was applied for this query table.
F - fCaseSensSort (1 bit): A bit that specifies whether the sort on the query table is case-sensitive.
G - fHdrRowSort (1 bit): A bit that specifies whether the query table sort accounted for a header
row.
H - fidWrapped (1 bit): A bit that specifies whether the idFieldNext field value has exceeded its
upper-bound value (0xFFFF).
J - fTitlesOld (1 bit): A bit that specifies whether the query table had titles the last time it was
refreshed.
wVerBeforeRefreshAlert (5 bits): An unsigned integer that specifies the oldest version of the
application that is expected to correctly refresh the data in the query table without any errors.
MUST be less than or equal to 0x000C. The application version is a value specified in the following
table:
368 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Application Version
iSortCustom (4 bytes): An unsigned integer that specifies the zero-based index of the custom list
that specifies the sort order. The set of custom lists is based on the current user's environment.
For more information about how the set of custom lists is determined, see [MSFT-XL2000].
cQsif (4 bytes): An unsigned integer that specifies the count of Qsif records that immediately follow
this Qsir record.
cpstDeleted (4 bytes): An unsigned integer that specifies the number of elements in the rgbTitle
array.
idFieldNext (4 bytes): An unsigned integer that specifies the next unique number available for
assignment to a newly created Qsif record. MUST be greater than or equal to 0x0001 and less
than or equal to 0xFFFF.
ccolExtraLeft (2 bytes): A DCol structure that specifies the number of columns that do not contain
external data that are included at the beginning of the query table by resizing. When a sort is
applied to the query table, they are also applied to these columns.
ccolExtraRight (2 bytes): A DCol structure that specifies the number of columns that do not
contain external data that are included at the end of the query table by resizing. When a sort is
applied to the query table, they are also applied to these columns.
idList (4 bytes): An optional unsigned integer that specifies the value corresponding to the idList
field of the TableFeatureType structure that is linked with this query table. This field exists only if the
verLastXLSaved field of the BOF record is greater than or equal to 0x3.
rgbTitle (variable): An array of XLUnicodeString structures. This array specifies the names of the
database fields in the database query that are not included in the query table. The number of
elements in this array MUST be equal to the value of the cpstDeleted field. The count of
characters in each name MUST be greater than or equal to 0x0001 and less than or equal to
0x00FF.
2.4.211 QsiSXTag
The QsiSXTag record specifies the name and refresh information for a query table or a PivotTable
view, and specifies the beginning of a collection of records as defined by the Worksheet Substream
ABNF. The collection of records specifies additional information for a query table or a PivotTable
view.
If fSx is 0 and stName is equal to the rgchName field of a Qsi record in this worksheet substream,
then this collection of records applies to the query table that the Qsi record is associated with. If fSx is
1 and stName is equal to the stName field of an SxView record in this worksheet substream, then
this collection of records applies to the PivotTable view that the SxView record is associated with and
its associated PivotCache. Otherwise, this collection of records MUST be ignored.
369 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
fSx A B C reserved1
dwQsiFuture
stName (variable)
...
unused
fSx (2 bytes): A Boolean (section 2.5.14) that specifies whether this record relates to a PivotTable
view or a query table.
Value Meaning
A - fEnableRefresh (1 bit): A bit that specifies whether refresh of the PivotTable view or query table
is enabled. MUST be 0 if fSx is 1 and the PivotCache functionality level of the associated
PivotCache is greater than or equal to 3.
B - fInvalid (1 bit): A bit that specifies the invalid state of the cache records of the associated
PivotCache; see Cache Records for more information. MUST be 1 if fSx is 1 and the PivotCache
functionality level of the associated PivotCache is greater than or equal to 3.
370 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fTensorEx (1 bit): A bit that specifies whether the PivotTable view is an OLAP PivotTable view.
MUST be equal to 0 if fSx is 0.
dwQsiFuture (4 bytes): This structure specifies additional option flags for a query table or a
PivotTable view depending on the value of the fSx field.
0x0000 DwQsiFuture
0x0001 SXView9Save
stName (variable): An XLUnicodeString structure that specifies the query table or PivotTable view
name.
2.4.212 Radar
The Radar record specifies that the chart group is a radar chart group and specifies the chart group
attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B reserved unused
A - fRdrAxLab (1 bit): A bit that specifies whether category (2) labels are displayed.
B - fHasShadow (1 bit): A bit that specifies whether one or more data markers in the chart group
has shadows.
2.4.213 RadarArea
The RadarArea record specifies that the chart group is a filled radar chart group and specifies the
chart group attributes.
371 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B reserved unused
A - fRdrAxLab (1 bit): A bit that specifies whether category (2) labels are displayed.
B - fHasShadow (1 bit): A bit that specifies whether the data points in the chart group have
shadows.
2.4.214 RealTimeData
The RealTimeData record specifies the real-time data (RTD) information for a workbook.
There is one RealTimeData record for each RTD topic in the workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
ichSamePrefix
stTopic (variable)
...
rtdOper (variable)
...
rgRTDE (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0813.
ichSamePrefix (4 bytes): An unsigned integer that specifies the number of leading characters in
common with the stTopic string in the previous RealTimeData record. MUST be 0 if there is no
prefix in common or if this is the first RealTimeData record.
stTopic (variable): An XLUnicodeStringSegmentedRTD structure that specifies the string for the
RTD topic specified by this record. The string can be stored in a compressed or uncompressed
format. When ichSamePrefix is greater than 0, this string does not include any leading
characters that are in common with the stTopic string in the previous RealTimeData record. The
first substring specifies the ProgID of the RTD server. The second substring specifies the server
372 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
name that the RTD server is running on or, if this substring is empty, specifies that the RTD
server is running locally. The rest of the substrings are combined to form a unique RTD topic.
rtdOper (variable): An RTDOper structure that specifies the data returned by the RTD server.
rgRTDE (variable): An array of RTDEItem structures that specifies the set of cells associated with
the RTD topic. The length of the array is specified by the following formula:
Array length = (size of this record and associated ContinueFrt records - 16 - size of stTopic – size
of rtdOper) / 6
2.4.215 RecalcId
The RecalcId record specifies the identifier of the recalculation engine that performed the last
recalculation.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt reserved
dwBuild
rt (2 bytes): An unsigned integer that specifies the record identifier. MUST be 449.
dwBuild (4 bytes): An unsigned integer that specifies the identifier of the recalculation engine that
performed the last recalculation. If the value is less than the recalculation engine identifier
associated with the application, the application will recalculate the results of all formulas on this
workbook immediately after loading the file.
2.4.216 RecipName
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cchRecip ulEIDSize
...
rgchSSAddr (variable)
...
cchRecip (2 bytes): An unsigned integer that specifies the count of characters in the szFriendly
field string. MUST be less than or equal to 256.
ulEIDSize (4 bytes): An unsigned integer that specifies the count of characters in the rgchSSAddr
field string.
373 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
szFriendly (variable): A NULL-terminated array of ANSI characters that specifies the recipient's
friendly name. The length of the string MUST be specified by the cchRecip field.
rgchSSAddr (variable): An array of ANSI characters whose length is specified by the ulEIDSize
field that specifies the identifier used by the messaging system service provider to identify the
recipient.
2.4.217 RefreshAll
The RefreshAll record specifies whether external data ranges, PivotTables and XML maps will be
refreshed on workbook load.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
refreshAll
refreshAll (2 bytes): A Boolean (section 2.5.14) that specifies whether to force refresh of external
data ranges, PivotTables and XML maps on workbook load. MUST be a value from the following
table:
Value Meaning
0x0001 Force refresh of external data ranges, PivotTables and XML maps on
workbook load.
0x0000 Do not force refresh of external data ranges, PivotTables and XML maps on
workbook load.
2.4.218 RichTextStream
The RichTextStream record specifies additional text properties for the text in the entire chart, text in
the current legend, text in the current legend entry, or text in the attached label. These text
properties are a superset of the properties stored in the Text, Font, FontX, BRAI, and ObjectLink
records based on the following table, as specified by the Chart Sheet Substream ABNF. In each case,
the associated Font record is specified by the associated FontX record. <114>
374 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Rule Containing the RichTextStream record Meaning
These Rich Text Format properties are stored in the XML stream (section 2.1.7.22) specified in
[ECMA-376] Part 4, section 5.7.2.217.
An application can choose to ignore this record without loss of functionality, but will lose access to the
additional Rich Text Format properties. If an application chooses to implement this record, the
application MUST implement the validation checksum specified by the dwCheckSum field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
dwCheckSum
cb
rgb (variable)
...
375 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x08A6.
dwCheckSum (4 bytes): An unsigned integer that specifies the checksum of the attributes of the
Rich Text Format properties related to this record. The algorithm used to calculate the checksum
is specified by [MS-OSHARED] section 2.4.3.2. The checksum MUST be calculated from every
property of the property stream, taken as an array of bytes as specified by the
RichTextStreamChecksumData structure.
The information required to build the memory stream can be gathered from the Text, FontX, Font,
BRAI, and ObjectLink records associated with this record, as previously specified.
When reading this record, the checksum is calculated as previously specified and compared to the
dwCheckSum value stored in this record. If the calculated checksum does not match the
dwCheckSum data, the application MUST assume that the XML stream (section 2.1.7.22) is out
of date, and the data from the associated records MUST be used instead of the data specified by
the XML stream (section 2.1.7.22).
cb (4 bytes): An unsigned integer that specifies the size of the rgb field. This field MUST contain the
exact length in bytes of the rgb field.
rgb (variable): An array of ANSI characters that contains the XML representation of the text
formatting properties, as defined in [ECMA-376] Part 4, section 5.7.2.217. The length of this field
is specified by the cb field.
2.4.219 RightMargin
The RightMargin record specifies the right margin of the current sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
...
num (8 bytes): An Xnum (section 2.5.342) value that specifies the right margin of the current sheet
in inches. The value MUST be greater than or equal to 0 and less than or equal to 49.
2.4.220 RK
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
rkrec
...
rkrec (6 bytes): An RkRec structure that specifies the numeric data for a single cell.
376 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.221 Row
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw colMic
colMac miyRw
reserved1 unused1
A B C D E F reserved3 ixfe_val G H I J
colMic (2 bytes): An unsigned integer that specifies the zero-based index of the first column that
contains a cell populated with data or formatting in the current row. MUST be less than or equal
to 255.
colMac (2 bytes): An unsigned integer that specifies the one-based index of the last column that
contains a cell populated with data or formatting in the current row. MUST be less than or equal to
256. If colMac is equal to colMic, this record specifies a row with no CELL records.
miyRw (2 bytes): An unsigned integer that specifies the row height in twips. If fDyZero is 1, the
row is hidden and the value of miyRw specifies the original row height. MUST be greater than or
equal to 2 and MUST be less than or equal to 8192.
A - iOutLevel (3 bits): An unsigned integer that specifies the outline level of the row.
C - fCollapsed (1 bit): A bit that specifies whether the rows that are one level of outlining deeper
than the current row are included in the collapsed outline state.
E - fUnsynced (1 bit): A bit that specifies whether the row height was manually set.
F - fGhostDirty (1 bit): A bit that specifies whether the row was formatted.
ixfe_val (12 bits): An unsigned integer that specifies an XF record for the row formatting. See
IXFCell for more information. If fGhostDirty is 0, ixfe_val is undefined and MUST be ignored.
G - fExAsc (1 bit): A bit that specifies whether any cell in the row has a thick top border, or any
cell in the row directly above the current row has a thick bottom border. Thick borders are
specified by the following enumeration values from BorderStyle: THICK and DOUBLE.
H - fExDes (1 bit): A bit that specifies whether any cell in the row has a medium or thick bottom
border, or any cell in the row directly below the current row has a medium or thick top border.
Thick borders are previously specified. Medium borders are specified by the following enumeration
377 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
values from BorderStyle: MEDIUM, MEDIUMDASHED, MEDIUMDASHDOT,
MEDIUMDASHDOTDOT, and SLANTDASHDOT.
I - fPhonetic (1 bit): A bit that specifies whether the phonetic guide feature is enabled for any cell
in this row.
2.4.222 RRAutoFmt
The RRAutoFmt record specifies the changes caused by AutoFormat actions in a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... ref8
...
... itbl
A B C D E F reserved
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revid MUST be 0 because this is a revision that cannot
be reviewed. The rrd.revt MUST be equal to 0x000C. The rrd.tabid MUST NOT be 0xFFFF
because this revision corresponds to a specific sheet.
ref8 (8 bytes): A Ref8U structure that specifies the range of cells affected by AutoFormat changes.
itbl (2 bytes): An AutoFmt8 structure that specifies which AutoFormat was applied.
A - fApplyNumberFormats (1 bit): A bit that specifies whether the number format properties
contained in the AutoFormat specified by itbl were applied.
B - fApplyFontFormats (1 bit): A bit that specifies whether the font properties contained in the
AutoFormat specified by itbl were applied.
C - fApplyAlignmentFormats (1 bit): A bit that specifies whether the text alignment properties
contained in the AutoFormat specified by itbl were applied.
D - fApplyBorderFormats (1 bit): A bit that specifies whether the border properties contained in
the AutoFormat specified by itbl were applied.
E - fApplyPatternFormats (1 bit): A bit that specifies whether the color pattern properties
contained in the AutoFormat specified by itbl were applied.
F - fApplyWidthHeightFormats (1 bit): A bit that specifies whether the width or height properties
contained in the AutoFormat specified by itbl were applied.
378 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.223 RRDChgCell
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... vt vtOld A B C D E F G H I
... cbOldVal
... cetxpRst
dxfOld (variable)
...
dxf (variable)
...
rkOld (optional)
numOld (optional)
...
stOld (variable)
...
...
rk (optional)
num (optional)
...
st (variable)
379 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. Because this revision corresponds to a specific sheet, rrd.revt MUST
be 0x0008, rrd.fDelAtEdgeOfSort MUST be 0x0000, rrd.revid MUST be greater than or equal to 0,
and rrd.tabid MUST NOT be 0xFFFF.
vt (3 bits): An unsigned integer that specifies the type of the new cell contents. MUST be a value
from the following table:
Value Meaning
vtOld (3 bits): An unsigned integer that specifies the type of the old cell contents. MUST be a value
from the following table:
Value Meaning
A - f123Prefix (1 bit): A bit that specifies whether prefix characters are present in the cell. Possible
prefix characters include single quotation mark (0x27), double quotation mark (0x22), caret
(0x5E), and backslash (0x5C).
C - fOldFmt (1 bit): A bit that specifies whether there is old formatting information available for this
cell. If fOldFmt is 0x1 and fOldFmtNull is 0x0, dxfOld MUST exist.
D - fOldFmtNull (1 bit): A bit that specifies whether the old formatting information is empty. This
value MUST be ignored if fOldFmt is 0. If fOldFmt is 0x1 and fOldFmtNull is 0x0, dxfOld MUST
exist. If fOldFmt is 0x1 and fOldFmtNull is 0x1, old formatting information is available for the
cell, but the old formatting information is not written to disk and dxfOld MUST NOT exist.
380 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
E - fXfDxf (1 bit): A bit that specifies that the affected cells will have their format reset to the format
defined by the current cell style before applying any format from dxf, if present.
F - fStyXfDxf (1 bit): A bit that specifies that the format of the cell will be cleared before applying
any format from dxf, if present.
G - fDxf (1 bit): A bit that specifies whether there was a formatting change for this cell. If fDxf is
0x1 and fDxfNull is 0x0, dxf MUST exist.
H - fDxfNull (1 bit): A bit that specifies whether the new formatting information is empty. This value
MUST be ignored if fDxf is 0. If fDxf is 0x1 and fDxfNull is 0x0, dxf MUST exist. If fDxf is 0x1
and fDxfNull is 0x1, this means that there was a formatting change for this cell, but the dxf
describing the formatting change MUST NOT exist.
ifmtDisp (8 bits): An unsigned integer that specifies the identifier of the number format to use to
display the new cell contents. MUST be a value from the following table. For more information about
how format strings are interpreted, see [ECMA-376] Part 4: Markup Language Reference, section
3.8.31.
381 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Positive Value Negative Value
Value Description Format Format Zero Format
0x0000 Automatic 0 -0 0
0x0022 Accounting (currency _($* #,##0.00_) _($* #,##0.00) _($* "-" ??_)
with decimal point
aligned, and centered
minus-sign for 0-
value), two decimal
places, use currency
symbol
J - fPhShow (1 bit): A bit that specifies whether the new cell contains a phonetic string.
K - fPhShowOld (1 bit): A bit that specifies whether the old cell contains a phonetic string.
L - fEOLFmlaUpdate (1 bit): A bit that specifies whether the new cell contents were changed
because of an adjustment to the formula.
loc (4 bytes): An RgceLoc structure that specifies the location of the cell change revision.
cbOldVal (4 bytes): An unsigned integer that specifies the size of the old cell contents. If cbOldVal
is greater than 0, the old cell contents immediately follow the cetxpRst field, then it is followed by the
new cell contents. MUST be a value from the following table based on the value of vtOld:
vtOld cbOldVal
382 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
vtOld cbOldVal
0x3 MUST be equal to the size of the old XLUnicodeRichExtendedString. The size is
calculated assuming all characters are double-byte characters. That is, if
XLUnicodeRichExtendedString.fHighByte is 1, the calculation is made by using
the size of XLUnicodeRichExtendedString.
cetxpRst (2 bytes): An unsigned integer that specifies the number of RRDRstEtxp records that follow
this record.
dxfOld (variable): A DXFN structure that specifies the differential formatting for the old cell
contents. This field MUST exist if fOldFmt is 0x1 and fOldFmtNull is 0x0.
dxf (variable): A DXFN structure that specifies the differential formatting for the new cell contents.
This field MUST exist if fDxf is 0x1 and fDxfNull is 0x0.
rkOld (4 bytes): An RkNumber structure that specifies the old cell contents. This field MUST exist if
and only if cbOldVal is greater than 0 and vtOld is 0x1.
numOld (8 bytes): An Xnum value that specifies the old cell contents. This field MUST exist if and
only if cbOldVal is greater than 0 and vtOld is 0x2.
stOld (variable): An XLUnicodeRichExtendedString structure that specifies the old cell contents. This
field MUST exist if and only if cbOldVal is greater than 0 and vtOld is 0x3.
besOld (2 bytes): A Bes structure that specifies the old cell contents. This field MUST exist if and
only if cbOldVal is greater than 0 and vtOld is 0x4.
xpeOld (variable): A CellParsedFormula structure that specifies the old cell contents. This field MUST
exist if and only if cbOldVal is greater than 0 and vtOld is 0x5.
rk (4 bytes): An RkNumber value that specifies the new cell contents. This field MUST exist if and
only if vt is 0x1.
num (8 bytes): An Xnum value that specifies the new cell contents. This field MUST exist if and only
if vt is 0x2.
st (variable): An XLUnicodeRichExtendedString structure that specifies the new cell contents. This
field MUST exist if and only if vt is 0x3.
bes (2 bytes): A Bes structure that specifies the new cell contents. This field MUST exist if and only if
vt is 0x4.
xpe (variable): A CellParsedFormula structure that specifies the new cell contents. This field MUST
exist if and only if vt is 0x5.
2.4.224 RRDConflict
The RRDConflict record specifies the resolution of a conflict between the revisions of two uses'.
383 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revid MUST be greater than 0. The rrd.revid identifies
the revision that won the conflict. The rrd.revt MUST be equal to revtConflict.
2.4.225 RRDDefName
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... tabidLocal
...
grbitOld
...
pe (variable)
...
stCustomMenu (variable)
...
stDescription (variable)
384 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
stHelpTopic (variable)
...
stStatusText (variable)
...
peOld (variable)
...
stCustomMenuOld (variable)
...
stDescriptionOld (variable)
...
stHelpTopicOld (variable)
...
stStatusTextOld (variable)
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The revt field of the RRD structure MUST be 0x000A or 0x0022.
The fDelAtEdgeOfSort field of the RRD structure MUST be 0x0000. The revid field of the RRD
structure MUST be greater than or equal to 0.
tabidLocal (2 bytes): A TabId structure that specifies the sheet containing the defined name. A
value of 0xFFFF specifies that the defined name is not a local name.
fViewName (1 byte): A Boolean (section 2.5.14) that specifies whether the defined name belongs to
a custom view. MUST be a value from the following table:
Value Meaning
385 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
grbit (6 bytes): An RRDDefNameFlags structure that specifies data for the new defined name.
grbitOld (6 bytes): An RRDDefNameFlags structure that specifies data for the old defined name.
builtinIndex (1 byte): An unsigned integer that specifies the identifier of a built-in name. MUST be a
value from the following table:
unused (3 bytes): Optional, undefined, and MUST be ignored. MUST exist if and only if builtinIndex
is not equal to 0.
stDefName (variable): An XLUnicodeString structure that specifies the defined name. MUST exist if
and only if builtinIndex is equal to 0. MUST be less than or equal to 255 characters. MUST begin
with a letter or underscore character.
pe (variable): A NameParsedFormula structure that specifies the formula (section 2.2.2) of the new
defined name. The length of the formula in bytes is specified by grbit.cce.
stCustomMenu (variable): An XLUnicodeString structure that specifies the new custom menu text.
stDescription (variable): An XLUnicodeString structure that specifies the new description text.
stHelpTopic (variable): An XLUnicodeString structure that specifies the new help text.
stStatusText (variable): An XLUnicodeString structure that specifies the new status bar text.
peOld (variable): A NameParsedFormula structure that specifies the formula of the old defined
name. The length of the formula in bytes is specified by grbitOld.cce.
stCustomMenuOld (variable): An XLUnicodeString structure that specifies the old custom menu
text.
stDescriptionOld (variable): An XLUnicodeString structure that specifies the old description text.
stHelpTopicOld (variable): An XLUnicodeString structure that specifies the old help text.
stStatusTextOld (variable): An XLUnicodeString structure that specifies the old status bar text.
2.4.226 RRDHead
The RRDHead record specifies metadata about a set of revisions that a user has made in a shared
workbook.
386 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
...
... wFileCodePage
...
...
...
sddtr
...
tabidMac
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revt MUST be equal to 0x0020. The rrd.cbMemory MUST
be equal to 0xFFFFFFFF and MUST be ignored. The rrd.revid MUST be 0 because this is a
revision that cannot be reviewed.
guid (16 bytes): A GUID as specified by [MS-DTYP] that specifies a unique identifier for this set of
revisions.
wFileCodePage (2 bytes): An unsigned integer that specifies the sheet's code page. The value
MUST be one of the code page values specified in [CODEPG] or the special value 1200, which
means that the sheet is Unicode.
cchUser (2 bytes): An unsigned integer that specifies the number of characters in stUser that are
used to specify the name of the user who made this set of revisions. Characters in stUser that are
to the right of these used characters are ignored. The value of cchUser MUST be less than or
equal to 54.
stUser (114 bytes): An XLUnicodeStringNoCch structure that specifies the name of the user who
made this set of revisions.
sddtr (8 bytes): A ShortDTR structure that specifies the date and time when the user saved this set
of revisions.
387 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
tabidMac (2 bytes): A signed integer that specifies the next available sheet identifier in this
workbook. The value MUST be greater than or equal to -1. Each sheet identifier is specified by
the order in which the BoundSheet8 records appear in the Globals Substream.
2.4.227 RRDInfo
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wXLVer reserved1
...
...
...
...
... revid
... version
... F G reserved3
wRevHistoryInterval
wXLVer (2 bytes): An unsigned integer that specifies the major BIFF version that was last used to
save a shared workbook.
A - fssShared (1 bit): A bit that specifies whether this workbook is a shared workbook. If this value
is 1, fssExclusive MUST be equal to 0.
B - fssDiskHasRev (1 bit): A bit that specifies whether the revision history on disk contains
revisions. If this value is 1, fssRevTrack MUST be equal to 1.
C - fssRevHist (1 bit): A bit that specifies whether revisions are automatically deleted. If this value
is 1, fssRevTrack MUST be equal to 1. MUST be a value from the following table:
Value Meaning
388 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fssRevTrack (1 bit): A bit that specifies whether the revisions are being tracked. If this value is
1, fssShared MUST be equal to 1.
E - fssExclusive (1 bit): A bit that specifies whether this workbook is in exclusive mode. Exclusive
mode means the workbook was shared when revisions were made, but it is no longer shared. If
this value is 1, fssShared MUST be equal to 0.
guid (16 bytes): A GUID as specified by [MS-DTYP] that specifies the last set of revisions. MUST be
0, or MUST match the GUID for the most recent header.
guidRoot (16 bytes): A GUID as specified by [MS-DTYP] that specifies the last set of revisions that
was saved to the file. MUST be 0, or MUST match the GUID for one of the revision headers.
revid (4 bytes): A signed integer that specifies the current revision number of this shared workbook.
This identifier is used to track the order of revision records. MUST be greater than or equal to 0.
version (4 bytes): An unsigned integer that specifies the current version of this shared workbook.
F - fNoRevHist (1 bit): A bit that specifies whether this workbook preserves revision history. If this
value is 1, wRevHistoryInterval MUST be equal to 0 and fssShared MUST be equal to 1. If this
value is 0, wRevHistoryInterval MUST be greater than or equal to 1.
G - fProtRev (1 bit): A bit that specifies whether the revision history is protected for this shared
workbook. If this value is 1, fssShared MUST be equal to 1.
wRevHistoryInterval (2 bytes): An unsigned integer that specifies the number of days for which
the revision history is stored for this workbook. MUST be less than or equal to 0x7FFF. If
fssExclusive is equal to 1, this field MUST be ignored.
2.4.228 RRDInsDel
The RRDInsDel record specifies the insertion / deletion of rows / columns revision changes, and
specifies the beginning of a collection of records as defined by the Revision Stream ABNF. The
collection of records specifies insertions and deletions in a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... A reserved
refn
...
cUcr
389 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgDucr (variable)
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track changes
in a shared workbook. The rrd.revid field MUST be greater than 0. The rrd.tabid field MUST NOT
be 0xFFFF. The rrd.revt field MUST be greater than or equal to 0 and less than or equal to 3.
A - fEndOfList (1 bit): A bit that specifies that a row was inserted at the bottom of the filled cells
range. This field has meaning only if the rrd.revt field of this record is REVTINSRW. MUST be 1 if
data was inserted at the bottom of the filled cells range. MUST be 0 if data was inserted or deleted
in any other place.
refn (8 bytes): A Ref8U structure that specifies the range of cells affected by the insertion or
deletion action.
cUcr (4 bytes): An unsigned integer that specifies the number of items in rgDucr.
rgDucr (variable): An array of Ducr structures that specifies undo data to apply to an expression
for which the revision was rejected.
2.4.229 RRDInsDelBegin
The RRDInsDelBegin record specifies the beginning of a collection of records as defined by the
Revision Stream ABNF. The collection of records specifies a set of Insertion / Deletion of Rows /
Columns Revision changes.
2.4.230 RRDInsDelEnd
The RRDInsDelEnd record specifies the end of a collection of records as defined by the Revision
Stream ABNF. The collection of records specifies a set of Insertion / Deletion of Rows / Columns
Revision changes.
2.4.231 RRDMove
The RRDMove record represents revision record information about the range of cells that have
moved.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... refSrc
...
... refDst
390 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
... tabidSrc
cUcr
rgDucr (variable)
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track changes
in a shared workbook. The rrd.revid MUST be greater than 0. The rrd.revt MUST be equal to
0x0004. The rrd.tabid MUST NOT be 0xFFFF because this revision corresponds to a specific
sheet.
refSrc (8 bytes): A Ref8U structure that specifies the original location of the range of cells that
moved.
refDst (8 bytes): A Ref8U structure that specifies the new location of the range of cells that moved.
tabidSrc (2 bytes): A TabId structure that specifies the sheet on which refSrc resides.
cUcr (4 bytes): An unsigned integer that specifies the number of elements in rgDucr.
rgDucr (variable): An array of Ducr structures that specifies undo data that will have to be applied
to an expression if the revision is rejected.
2.4.232 RRDMoveBegin
The RRDMoveBegin record specifies the beginning of a collection of records as defined by the
Revision Stream ABNF. The collection of records specifies moved cells.
2.4.233 RRDMoveEnd
The RRDMoveEnd record specifies the end of a collection of records as defined by the Revision
Stream ABNF. The collection of records specifies moved cells.
2.4.234 RRDRenSheet
The RRDRenSheet record specifies the old and new name of a sheet after renaming the sheet in a
shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... cchOldName
391 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stOldName (255 bytes)
...
...
... cchNewName
...
...
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revid MUST be greater than 0. The rrd.revt MUST be
equal to 0x0009. The rrd.tabid MUST NOT be 0xFFFF.
cchOldName (2 bytes): An unsigned integer that specifies the number of characters in stOldName
that are used to specify the name of the old sheet. Characters in stOldName that are to the right
of these used characters are ignored. If stOldName.fHighByte is 0, the value MUST be less than
or equal to 227. If stOldName.fHighByte is 1, the value MUST be less than or equal to 127.
stOldName (255 bytes): An XLUnicodeStringNoCch structure that specifies the name of the old
sheet.
stNewName (255 bytes): An XLUnicodeStringNoCch structure that specifies the name of the new
sheet.
2.4.235 RRDRstEtxp
The RRDRstEtxp record specifies font information for a formatting run. Instances of this record
MUST be preceded by an RRDChgCell record that specifies the cell containing the formatting run.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
392 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... stxp (16 bytes)
...
...
... icvFore
reserved1 reserved2
...
iFnt (2 bytes): An unsigned integer that specifies the zero-based index of this record in the set of
RRDRstEtxp records that have a common preceding RRDChgCell record. MUST be greater than or
equal to zero and less than the cetxpRst field of the preceding RRDChgCell record.
cchFontName (1 byte): An unsigned integer that specifies the count of double-byte Unicode
characters in stFontName. MUST be less than or equal to 0x1F.
fFullStr (1 byte): A Boolean (section 2.5.14) that specifies that stFontName contains double-byte
Unicode characters. MUST be 0x01 if cchFontName is greater than 0. If cchFontName is 0, the
value of fFullStr is undefined and MUST be ignored.
stFontName (62 bytes): A fixed length array of Unicode characters that specifies the name of the
font. Characters whose position in this array is greater than cchFontName are undefined and
MUST be ignored.
stxp (16 bytes): An Stxp structure that specifies the font attributes.
icvFore (2 bytes): An Icv structure that specifies the color palette value for the font.
2.4.236 RRDTQSIF
The RRDTQSIF record specifies the query table field that has been removed in a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt grbitfrt
ref (variable)
...
...
...
393 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... idField
...
rt (2 bytes): An unsigned integer that specifies the RRDTQSIF record type. The value MUST be
0x0808.
ref (variable): An Ref8U or Ref8U2007 that specifies the range of the query table from which the
field was removed. If the value of the wXLVer field of the RRDInfo record in this revision log as
specified by the Revision Stream (Revision Log) ABNF is equal to 12, Ref8U2007 is used. Otherwise,
Ref8U is used.
rrd (14 bytes): An RRD that specifies the properties of this revision record. The value of rrd.revid
MUST be 0x0. The value of rrd.revt MUST be 0x2E. The value of rrd.fDelAtEdgeofSort MUST be
0x0.
idField (4 bytes): An unsigned integer that specifies the identity of this field in the query table. The
value MUST be unique among idField fields of all RRDTQSIF records in the query table and all Qsif
records in the query table. MUST be greater than 0x00000000 and less than 0x0000FFFF.
2.4.237 RRDUserView
The RRDUserView record specifies the changes caused by a custom view revision in a shared
workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
...
...
rrd (14 bytes): An RRD that specifies the revision record information used to track changes in a
shared workbook. The rrd.revid MUST be 0 because this is a revision that cannot be reviewed The
rrd.revt MUST be equal to 0x002B or 0x002C. The rrd.tabid MUST be 0xFFFF because this
revision does not correspond to a specific sheet.
guid (16 bytes): A GUID as specified by [MS-DTYP] that specifies the custom view in the
workbook whose revision caused the changes specified in this record. MUST be globally unique.
The value of this field MUST be equal to one of the guid fields of the UserSViewBegin collection in
the sheet.
394 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.238 RRFormat
The RRFormat record specifies a formatting change that was applied to a shared workbook. If the
change information is too large for a single RRFormat record, it is split into multiple RRFormat records.
This record cannot be continued with Continue records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... A B C reserved
sqref (variable)
...
dxfn (variable)
...
rrd (14 bytes): An RRD that specifies the revision record information used to track changes in a
shared workbook. The RRD structure MUST conform to the restrictions specified in the following
table:
Value Restriction
rrd.revt MUST be 0x000B.
rrd.revid MUST be 0x0.
rrd.tabid MUST NOT be 0xFFFF.
A - fXfDxf (1 bit): A bit that specifies that the affected cells need to have their format reset to the
format specified by the current style before applying any format from dxfn, if present.
C - fStyXfDxf (1 bit): A bit that specifies that the format of the cells need to be cleared before
applying any format from dxfn, if present.
sqref (variable): An SqRefU structure that specifies the location or locations on the sheet affected
by the formatting changes specified by this record.
dxfn (variable): A DXFN structure that specifies the new cell formatting. MUST exist if and only if
fXfDxfNull is 0.
2.4.239 RRInsertSh
The RRInsertSh record specifies the changes caused by inserting a sheet in a shared workbook.
395 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... itabPos
reserved cch
...
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revid MUST be greater than 0 because this is a
reviewable revision. The rrd.revt MUST be equal to 0x0005. The rrd.tabid MUST NOT be 0xFFFF
because this revision corresponds to a specific sheet.
itabPos (2 bytes): A TabIndex structure that specifies the position of the new sheet in the
workbook.
cch (2 bytes): An unsigned integer that specifies the number of characters in stName that are used
to specify the name of the new sheet. Characters in stName that are to the right of these used
characters are ignored. If stName.fHighByte is 0, the value MUST be less than or equal to 227.
If stName.fHighByte is 1, the value MUST be less than or equal to 127.
stName (256 bytes): An XLUnicodeStringNoCch structure that specifies the name of the new sheet.
2.4.240 RRSort
The RRSort record specifies the changes caused by sort actions in a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... ref8
...
396 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... A reserved
cbSort
rgSortMap (variable)
...
rrd (14 bytes): An RRD structure that specifies the revision record information used to track
changes in a shared workbook. The rrd.revt MUST be equal to 0x0007. The rrd.tabid MUST NOT
be 0xFFFF because this revision corresponds to a specific sheet.
ref8 (8 bytes): A Ref8U structure that specifies the range of cells affected by sort actions. If the
value of fCol is 0, the range of rows MUST be within the valid range of the number of rows on the
sheet as defined in the used range specified by the Dimensions record. If the value of fCol is 1,
the range of columns MUST be within the valid range of the number of columns on the sheet as
defined in the used range specified by the Dimensions record.
A - fCol (1 bit): A bit that specifies whether sorting is performed on the columns.
Value Meaning
0 The rows have been reordered.
1 The columns have been reordered.
cbSort (4 bytes): An unsigned integer that specifies the size of rgSortMap in bytes.
rgSortMap (variable): An array of SortItem structures. The size MUST be equal to cbSort.
2.4.241 RRTabId
The RRTabId record specifies an array of unique sheet identifiers, each of which is associated with a
sheet in the workbook. The order of the sheet identifiers in the array matches the order of the
BoundSheet8 records as they appear in the Globals Substream. If the workbook contains more than
4112 sheets, then this record is not present and each sheet identifier is specified by the order in which
the BoundSheet8 records appear in the Globals Substream, beginning with 1.<115>
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgtabid (variable)
...
rgtabid (variable): An array of 2-byte unsigned integers. Each element of this array is a unique
sheet identifier, which is associated with a sheet in the workbook. The order of the sheet
identifiers in the array matches the order in which the BoundSheet8 records appear in the Globals
Substream.
2.4.242 SBaseRef
The SBaseRef record specifies the location of a PivotTable view referenced by a chart.
397 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
...
ref (8 bytes): A Ref8U structure that specifies the location of a PivotTable view referenced by a
chart.
2.4.243 Scatter
The Scatter record specifies that the chart group is a scatter chart group or a bubble chart group, and
specifies the chart group attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
pcBubbleSizeRatio wBubbleSize
A B C reserved
pcBubbleSizeRatio (2 bytes): An unsigned integer that specifies the size of the data points as a
percentage of their default size. A value of 100 shows all the data points in their default size, as
determined by the application. MUST be greater than or equal to 0 and less than or equal to 300.
MUST be ignored if the fBubbles field is 0.
wBubbleSize (2 bytes): An unsigned integer that specifies how the default size of the data points
represents the value. MUST be ignored if the fBubbles field is 0. MUST be a value from the
following table:
Value Meaning
0x0001 The area of the data point represents the value.
0x0002 The width of the data point represents the value.
A - fBubbles (1 bit): A bit that specifies whether this chart group is a scatter chart group or bubble
chart group. MUST be a value from the following table:
Value Meaning
0 Scatter chart group
1 Bubble chart group
B - fShowNegBubbles (1 bit): A bit that specifies whether data points with negative values in the
chart group are shown on the chart. MUST be ignored if the fBubbles field is 0.
C - fHasShadow (1 bit): A bit that specifies whether one or more data markers in a scatter chart
group or data points in a bubble chart group have shadows.
398 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.244 SCENARIO
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgchNameUser (variable)
...
rgchComment (variable)
...
rgSLC (variable)
...
rgst (variable)
...
unused (variable)
...
cref (2 bytes): An unsigned integer that specifies the number of cells in the scenario. MUST be
greater than zero and less than or equal to 32.
fLocked (1 byte): A Boolean (section 2.5.14) that specifies whether the scenario can be modified if
the workbook is protected. It MUST be a value from the following table:
Value Meaning
0x00 The user can change the scenario.
0x01 When the workbook is protected, the user cannot change the scenario.
fHidden (1 byte): A Boolean that specifies whether the scenario is to be hidden from the user if the
workbook is protected. It MUST be a value from the following table:
Value Meaning
0x00 The scenario is never hidden
0x01 When the workbook is protected, the scenario is hidden from the user.
399 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchName (1 byte): An unsigned integer that specifies the character count in the field rgchName.
cchComment (1 byte): An unsigned integer that specifies the character count in the field
rgchComment.
cchNameUser (1 byte): An unsigned integer that specifies the character count in the field
rgchNameUser.
rgchName (variable): An XLUnicodeStringNoCch structure that specifies the name of the scenario.
rgchNameUser (variable): An XLUnicodeString structure that specifies the name of the user who
created the scenario. The character count MUST be less than or equal to 52. MUST be omitted if
cchNameUser is 0.
rgSLC (variable): An array of SLCO8 structures. Each element of the array specifies one cell that is
changed by the scenario. Its element count MUST be cref.
rgst (variable): An array of XLUnicodeString structures. Each element of the array specifies the
value associated to a cell by the scenario. Its element count MUST be cref.
unused (variable): Undefined and MUST be ignored. The size of this field in bytes MUST be 2*cref.
2.4.245 ScenarioProtect
The ScenarioProtect record specifies the protection state for scenarios in a sheet. Scenarios are
defined in the Worksheet Substream ABNF.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fScenProtect
fScenProtect (2 bytes): A Boolean (section 2.5.14) that specifies whether the scenarios in the
sheet are protected. MUST be a value from the following table:
Value Meaning
0x0000 Scenarios are not protected.
0x0001 Scenarios are protected.
2.4.246 ScenMan
The ScenMan record specifies the state of the Scenario Manager for the sheet.
This record also specifies the beginning of a collection of Scenario records as defined by the Worksheet
Substream ABNF. The collection of Scenario records specifies individual scenarios.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
csct isctCur
400 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
isctShown irefResult
rgref (variable)
...
csct (2 bytes): A signed integer that specifies the total number of scenarios in the sheet. MUST be
equal to the number of Scenario records in the Worksheet substream and MUST be greater than or
equal to 0.
isctCur (2 bytes): A signed integer that specifies the zero-based index of the Scenario in this
Worksheet substream that is currently selected in the Scenario Manager. If csct is greater than
0, then isctCur MUST be greater than or equal to –1 and MUST be less than the number of
Scenario records in the Worksheet substream. The value -1 means that no scenario is currently
selected.
isctShown (2 bytes): A signed integer that specifies the zero-based index of the Scenario in this
Worksheet substream that specifies the scenario that is currently applied in the sheet associated
with this record. If csct is greater than 0, then isctShown MUST be greater than or equal to –1
and MUST be less than the number of Scenario records in the Worksheet substream. The value –1
means that no scenario is currently shown.
irefResult (2 bytes): A signed integer that specifies the number of result cells that are referenced
in the field rgref. MUST be greater than or equal to 0 and less than or equal to 32.
rgref (variable): An array of Ref8U structures. Each element specifies a range of cells in the current
sheet. These cells contain the results that are to be compared across scenarios. Its count MUST
be equal to irefResult.
2.4.247 Scl
The Scl record specifies the zoom level of the current view in the window used to display the sheet
as a fraction given by the following formula:
The fraction MUST be greater than or equal to 1/10 and less than or equal to 4.
This record MUST exist if the zoom level of the current view is not equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
nscl dscl
nscl (2 bytes): A signed integer that specifies the numerator of the fraction. The value MUST be
greater than or equal to 1.
dscl (2 bytes): A signed integer that specifies the denominator of the fraction. The value MUST be
greater than or equal to 1.
2.4.248 Selection
The Selection record specifies selected cells within a sheet. There can be multiple contiguous
Selection records that have the same pnn value to specify all selected cells within a sheet<116>. If
401 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
this is the case, the values of rwAct, colAct, and irefAct MUST be the same across all the contiguous
Selection records that have the same pnn value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rwAct (2 bytes): An RwU structure that specifies the zero-based row number of the active cell.
colAct (2 bytes): A ColU structure that specifies the zero-based column number of the active cell.
irefAct (2 bytes): A signed integer that specifies the zero-based index to the RefU structure in rgref
that contains the active cell. MUST be greater than or equal to 0. If this record is one of multiple
contiguous Selection records, this value is the index to the RefU structure across the aggregation
of rgref arrays of all Selection records.
cref (2 bytes): An unsigned integer that specifies the number of RefU structures in the rgref array
of this record.
rgref (variable): An array of RefU structures that specifies ranges of selected cells in the sheet. The
number of RefU structures in this array MUST be less than or equal to 1369.
2.4.249 SerAuxErrBar
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numValue
...
cnum
sertm (1 byte): An unsigned integer that specifies the direction of the error bars. MUST be a value
from the following table.
Value Meaning
0x01 Error bars are horizontal in the plus direction.
0x02 Error bars are horizontal in the minus direction.
0x03 Error bars are vertical in the plus direction.
0x04 Error bars are vertical in the minus direction.
402 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ebsrc (1 byte): An unsigned integer that specifies the error amount type of the error bars. MUST be
a value from the following table:
Value Meaning
0x01 Percentage
0x02 Fixed value
0x03 Standard deviation
0x04 Custom values (array of values or range)
0x05 Standard error
If the cce field of the ChartParsedFormula record contained in the formula field of the closest
preceding BRAI record with id field equal to 0x0001 is 0x0000, then the error bars value source is
an array of values. Each value in this array MUST be stored in a Number record in the
SERIESDATA part of the Chart Sheet substream as specified in the Chart Sheet Substream ABNF.
The cell.col field of each Number record MUST store the zero-based position index of the closest
preceding Series record, as it is calculated across all Series records in the current Chart Sheet
substream. The cell.rw field MUST store the zero-based index of this value in the array.
Otherwise, the value source is a range. The closest preceding BRAI record with the id field equal
to 0x0001 specifies a link to the Rgce structure that describes this range.
fTeeTop (1 byte): A Boolean (section 2.5.14) that specifies whether the error bars are T-shaped.
numValue (8 bytes): An Xnum (section 2.5.342) value that specifies the fixed value, percentage, or
number of standard deviations for the error bars. If ebsrc is equal to 0x05 or 0x04, MUST be
ignored.
cnum (2 bytes): An unsigned integer that specifies the number of value or cell references used for
custom error bars when ebsrc is equal to 0x04. This value MUST be ignored if ebsrc does not
equal 0x04.
If the value source is an array of values, this value MUST equal the count of Number records
whose cell.col field stores the zero-based index of the closest preceding Series record in the
collection of Series records in the current chart sheet substream.
If the value source is a range, this value MUST equal the count of cell references of the range as
specified in the rgce field of the ChartParsedFormula contained in the formula field of the closest
preceding BRAI record that has an id field equal to 0x0001.
2.4.250 SerAuxTrend
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
403 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
numForecast
...
numBackcast
...
regt (1 byte): An unsigned integer that specifies the type of trendline. The value MUST be one of the
following values:
Value Meaning
0x00 Polynomial
0x01 Exponential
0x02 Logarithmic
0x03 Power
0x04 Moving average
ordUser (1 byte): An unsigned integer that specifies the polynomial order or moving average
period. MUST be greater than or equal to 0x02 and less than or equal to 0x06 if regt is equal to
0x00; MUST be greater than or equal to 0x02 and less than or equal to the value of the cValx
field of the Series record specified by the preceding SerParent record minus one if regt is equal to
0x04. MUST be ignored for trendlines of all other types.
numIntercept (8 bytes): A ChartNumNillable structure that specifies where the trendline intersects
the value axis or vertical axis on bubble and scatter chart groups. If no intercept is specified, this
ChartNumNillable structure MUST specify a NilChartNum structure, and the value of the type field
in the NilChartNum structure MUST be 0x0100.
fEquation (1 byte): A Boolean (section 2.5.14) that specifies whether the trendline equation is
displayed in the trendline label. MUST be ignored if regt is equal to 0x04. MUST be ignored if the
chart sheet substream contains an attached label with an ObjectLink record that contains both a
wLinkObj field equal to 0x0004 and a wLinkVar1 field equal to the zero-based index into a
Series record in the collection of Series records in the current chart sheet substream that
represents this trendline , and the attached label contains a SeriesText record.
fRSquared (1 byte): A Boolean that specifies whether the R-squared value is displayed in the
trendline label. MUST be ignored if regt is equal to 0x04. MUST be ignored if the chart sheet
substream contains an attached label with an ObjectLink record that contains both a wLinkObj
field equal to 0x0004 and a wLinkVar1 field equal to the zero-based index into a Series record in
the collection of Series records in the current chart sheet substream that represents this trendline,
and the attached label contains a SeriesText record.
numForecast (8 bytes): An Xnum (section 2.5.342) that specifies the number of periods to
forecast forward.
numBackcast (8 bytes): An Xnum that specifies the number of periods to forecast backward.
2.4.251 SerFmt
The SerFmt record specifies properties of the associated data points, data markers, or lines of the
series. The associated data points, data markers, or lines of the series are specified by the preceding
DataFormat record. If this record is not present in the sequence of records that conforms to the SS
404 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rule of the Chart Sheet Substream ABNF, then the properties of the associated data points, data
markers, or lines of the series are specified by the default values of the fields of this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved
A - fSmoothedLine (1 bit): A bit that specifies whether the lines of the series are displayed with a
smooth line effect on a scatter, radar, and line chart group. The default value of this field is 0.
B - f3DBubbles (1 bit): A bit that specifies whether the data points of a bubble chart group are
displayed with a 3-D effect. MUST be ignored for all other chart groups. The default value of this
field is 0.
C - fArShadow (1 bit): A bit that specifies whether the data markers are displayed with a shadow
on bubble, scatter, radar, stock, and line chart groups. The default value of this field is 0.
2.4.252 Series
The Series record specifies properties of the data for a series, a trendline, or error bars, and specifies
the beginning of a collection of records as defined by the Chart Sheet Substream ABNF. The collection
of records specifies a series, a trendline, or error bars.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sdtX sdtY
cValx cValy
sdtBSize cValBSize
sdtX (2 bytes): An unsigned integer that specifies the type of data in categories (2), or horizontal
values on bubble and scatter chart groups, in the series. MUST be a value from the following
table:
Value Meaning
0x0001 The series contains categories (2), or horizontal
values on bubble and scatter chart groups, with
numeric information.
0x0003 The series contains categories (2), or horizontal
values on bubble and scatter chart groups, with
text information.
sdtY (2 bytes): An unsigned integer that specifies that the values or vertical values on bubble and
scatter chart groups, in the series contain numeric information. It MUST be 0x0001 and MUST be
ignored.
cValx (2 bytes): An unsigned integer that specifies the count of categories (2), or horizontal values
on bubble and scatter chart groups, in the series. The value MUST be less than or equal to 32767.
405 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cValy (2 bytes): An unsigned integer that specifies the count of values, or vertical values on bubble
and scatter chart groups, in the series. The value MUST be less than or equal to 32767.
sdtBSize (2 bytes): An unsigned integer that specifies that the bubble size values in the series
contain numeric information. The value MUST be 0x0001, and MUST be ignored.
cValBSize (2 bytes): An unsigned integer that specifies the count of bubble size values in the
series. The value MUST be less than or equal to 32767.
2.4.253 SeriesList
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cser (2 bytes): An unsigned integer that specifies the count of series indexes in the rgiser field.
rgiser (variable): An array of 2-byte unsigned integers, each of which specifies a one-based index of
a Series record in the collection of Series records in the current chart sheet substream. Each
referenced Series specifies a series for the chart.
2.4.254 SeriesText
The SeriesText record specifies the text for a series, trendline name, trendline label, axis title or
chart title.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.4.255 SerParent
The SerParent record specifies the series to which the current trendline or error bar corresponds.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
series
series (2 bytes): An unsigned integer that specifies the one-based index of a Series record in the
collection of Series records in the current chart sheet substream. The referenced Series record
specifies the series associated with the current trendline or error bar. The value MUST be greater
than or equal to 0x0001 and less than or equal to 0x0FE.
406 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.256 SerToCrt
The SerToCrt record specifies the chart group for the current series.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id
id (2 bytes): An unsigned integer that specifies the zero-based index of a ChartFormat record in the
collection of ChartFormat records in the current chart sheet substream. The referenced
ChartFormat record specifies the chart group that contains the current series.
2.4.257 Setup
The Setup record specifies the page format settings used to print the current sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iPaperSize iScale
iPageStart iFitWidth
iFitHeight A B C D E F G H I J K L
iRes iVRes
numHdr
...
numFtr
...
iCopies
iPaperSize (2 bytes): An unsigned integer that specifies the paper size. Refer to the following table
for values. The value 0, or values greater than or equal to 256, specify custom printer paper sizes.
Values between 118 and 255 are reserved for future use. If fNoPls is 1, this value is undefined
and MUST be ignored.
Value Meaning
1 US Letter 8 1/2 x 11 in
2 US Letter Small 8 1/2 x 11 in
3 US Tabloid 11 x 17 in
4 US Ledger 17 x 11 in
5 US Legal 8 1/2 x 14 in
6 US Statement 5 1/2 x 8 1/2 in
7 US Executive 7 1/4 x 10 1/2 in
8 A3 297 x 420 mm
407 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
9 A4 210 x 297 mm
10 A4 Small 210 x 297 mm
11 A5 148 x 210 mm
12 B4 (JIS) 250 x 354
13 B5 (JIS) 182 x 257 mm
14 Folio 8 1/2 x 13 in
15 Quarto 215 x 275 mm
16 10 x 14 in
17 11 x 17 in
18 US Note 8 1/2 x 11 in
19 US Envelope #9 3 7/8 x 8 7/8
20 US Envelope #10 4 1/8 x 9 1/2
21 US Envelope #11 4 1/2 x 10 3/8
22 US Envelope #12 4 \276 x 11
23 US Envelope #14 5 x 11 1/2
24 C size sheet
25 D size sheet
26 E size sheet
27 Envelope DL 110 x 220mm
28 Envelope C5 162 x 229 mm
29 Envelope C3 324 x 458 mm
30 Envelope C4 229 x 324 mm
31 Envelope C6 114 x 162 mm
32 Envelope C65 114 x 229 mm
33 Envelope B4 250 x 353 mm
34 Envelope B5 176 x 250 mm
35 Envelope B6 176 x 125 mm
36 Envelope 110 x 230 mm
37 US Envelope Monarch 3.875 x 7.5 in
38 6 3/4 US Envelope 3 5/8 x 6 1/2 in
39 US Std Fanfold 14 7/8 x 11 in
40 German Std Fanfold 8 1/2 x 12 in
41 German Legal Fanfold 8 1/2 x 13 in
42 B4 (ISO) 250 x 353 mm
43 Japanese Postcard 100 x 148 mm
44 9 x 11 in
45 10 x 11 in
46 15 x 11 in
47 Envelope Invite 220 x 220 mm
48 RESERVED--DO NOT USE
49 RESERVED--DO NOT USE
50 US Letter Extra 9 \275 x 12 in
51 US Legal Extra 9 \275 x 15 in
52 US Tabloid Extra 11.69 x 18 in
53 A4 Extra 9.27 x 12.69 in
54 Letter Transverse 8 \275 x 11 in
55 A4 Transverse 210 x 297 mm
408 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
56 Letter Extra Transverse 9\275 x 12 in
57 SuperA/SuperA/A4 227 x 356 mm
58 SuperB/SuperB/A3 305 x 487 mm
59 US Letter Plus 8.5 x 12.69 in
60 A4 Plus 210 x 330 mm
61 A5 Transverse 148 x 210 mm
62 B5 (JIS) Transverse 182 x 257 mm
63 A3 Extra 322 x 445 mm
64 A5 Extra 174 x 235 mm
65 B5 (ISO) Extra 201 x 276 mm
66 A2 420 x 594 mm
67 A3 Transverse 297 x 420 mm
68 A3 Extra Transverse 322 x 445 mm
69 Japanese Double Postcard 200 x 148 mm
70 A6 105 x 148 mm
71 Japanese Envelope Kaku #2
72 Japanese Envelope Kaku #3
73 Japanese Envelope Chou #3
74 Japanese Envelope Chou #4
75 Letter Rotated 11 x 8 1/2 11 in
76 A3 Rotated 420 x 297 mm
77 A4 Rotated 297 x 210 mm
78 A5 Rotated 210 x 148 mm
79 B4 (JIS) Rotated 364 x 257 mm
80 B5 (JIS) Rotated 257 x 182 mm
81 Japanese Postcard Rotated 148 x 100 mm
82 Double Japanese Postcard Rotated 148 x
200 mm
83 A6 Rotated 148 x 105 mm
84 Japanese Envelope Kaku #2 Rotated
85 Japanese Envelope Kaku #3 Rotated
86 Japanese Envelope Chou #3 Rotated
87 Japanese Envelope Chou #4 Rotated
88 B6 (JIS) 128 x 182 mm
89 B6 (JIS) Rotated 182 x 128 mm
90 12 x 11 in
91 Japanese Envelope You #4
92 Japanese Envelope You #4 Rotated
93 PRC 16K 146 x 215 mm
94 PRC 32K 97 x 151 mm
95 PRC 32K(Big) 97 x 151 mm
96 PRC Envelope #1 102 x 165 mm
97 PRC Envelope #2 102 x 176 mm
98 PRC Envelope #3 125 x 176 mm
99 PRC Envelope #4 110 x 208 mm
100 PRC Envelope #5 110 x 220 mm
101 PRC Envelope #6 120 x 230 mm
409 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
102 PRC Envelope #7 160 x 230 mm
103 PRC Envelope #8 120 x 309 mm
104 PRC Envelope #9 229 x 324 mm
105 PRC Envelope #10 324 x 458 mm
106 PRC 16K Rotated
107 PRC 32K Rotated
108 PRC 32K(Big) Rotated
109 PRC Envelope #1 Rotated 165 x 102 mm
110 PRC Envelope #2 Rotated 176 x 102 mm
111 PRC Envelope #3 Rotated 176 x 125 mm
112 PRC Envelope #4 Rotated 208 x 110 mm
113 PRC Envelope #5 Rotated 220 x 110 mm
114 PRC Envelope #6 Rotated 230 x 120 mm
115 PRC Envelope #7 Rotated 230 x 160 mm
116 PRC Envelope #8 Rotated 309 x 120 mm
117 PRC Envelope #9 Rotated 324 x 229 mm
118 PRC Envelope #10 Rotated 458 x 324 mm
iScale (2 bytes): An unsigned integer that specifies the scaling factor for printing as a percentage.
For example, if the value is 107 then the scaling factor is 107%. If fNoPls is 1, this value is
undefined and MUST be ignored.
iPageStart (2 bytes): A signed integer that specifies the starting page number. If fUsePage is 0,
MUST be ignored.
iFitWidth (2 bytes): An unsigned integer that specifies the number of pages the sheet width is fit
to. MUST be less than or equal to 32767. The value 0 means use as many pages as necessary to
print the columns in the sheet.
iFitHeight (2 bytes): An unsigned integer that specifies the number of pages the sheet height is fit
to. MUST be less than or equal to 32767. The value 0 means use as many pages as necessary to
print the rows of the sheet.
A - fLeftToRight (1 bit): A bit that specifies the order that multiple pages are sent to the printer for
a single sheet.
Value Meaning
0 Pages are printed top-to-bottom first and then left-to-right.
1 Pages are printed left-to-right first and then top-to-bottom.
B - fPortrait (1 bit): A bit that specifies whether to print using portrait mode or landscape mode. If
fNoPls is 1, the value is undefined and MUST be ignored. If fNoOrient is 1, the value is
undefined and MUST be ignored.
Value Meaning
0 Pages are printed using landscape mode.
1 Pages are printed using portrait mode.
410 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fNoPls (1 bit): A bit that specifies whether the iPaperSize, iScale, iRes, iVRes, iCopies,
fNoOrient, and fPortrait data are undefined and ignored. If the value is 1, they are undefined
and ignored.
D - fNoColor (1 bit): A bit that specifies whether the document is printed in black and white.
E - fDraft (1 bit): A bit that specifies whether the document is printed using draft quality.
G - fNoOrient (1 bit): A bit that specifies whether the paper orientation is set.
Value Meaning
0 Paper orientation is specified by the value of fPortrait.
1 Pages are printed using portrait mode.
H - fUsePage (1 bit): A bit that specifies whether a custom starting page number is used to print. If
the value is 1, the custom starting page number specified by the value of iPageStart is used.
J - fEndNotes (1 bit): A bit that specifies whether the comments are printed at the end of the
sheet. If fNotes is 0, the value MUST be ignored.
Value Meaning
0 Comments are printed as displayed on the sheet.
1 Comments are printed at the end of the sheet.
K - iErrors (2 bits): An unsigned integer that specifies how to handle errors in the cell data. MUST
be a value from the following table:
Value Meaning
0 Print errors as displayed on the sheet.
1 Print errors as blank.
2 Print errors as dashes ("--").
3 Print errors as "#N/A".
iRes (2 bytes): An unsigned integer that specifies the print resolution in dots per inch (DPI). If
fNoPls is 1, this value is undefined and MUST be ignored.
iVRes (2 bytes): An unsigned integer that specifies the vertical print resolution in DPI. If fNoPls is
1, this value is undefined and MUST be ignored.
numHdr (8 bytes): An Xnum (section 2.5.342) value that specifies the header margin in inches. The
value MUST be greater than or equal to 0 and less than 49.
numFtr (8 bytes): An Xnum value that specifies the footer margin in inches. The value MUST be
greater than or equal to 0 and less than 49.
iCopies (2 bytes): An unsigned integer that specifies the number of copies to print. If fNoPls is 1,
this value is undefined and MUST be ignored.
411 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.258 ShapePropsStream
The ShapePropsStream record specifies the shape formatting properties for chart elements. These
shape formatting properties are a superset of the properties stored in the LineFormat, AreaFormat,
MarkerFormat, and GelFrame records. They are stored in the rgb field, which is an XML stream
(section 2.1.7.22), as defined in [ECMA-376] Part 4, section 5.7.2.198.<117>
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
wObjContext unused
dwChecksum
cb
rgb (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field of the field MUST be 0x08A4.
wObjContext (2 bytes): An unsigned integer that specifies the chart element that the shape
formatting properties in this record apply to.
If this record is in a sequence of records that specifies an AXS rule, then it MUST be a value from
the following table:
Value Meaning
0x0000 The shape properties in this record apply to the axis.
0x0001 The shape properties in this record apply to the major gridlines of the axis.
0x0002 The shape properties in this record apply to the minor gridlines of the axis.
0x0003 The shape properties in this record apply to the three-dimensional surfaces of the walls or
floor.
If this record precedes an End record matched by a Begin record in a sequence of records that
conforms to the CRT rule, then this field MUST be a value from the following table:
Value Meaning
0x0000 The shape properties in this record apply to the drop lines of the chart group.
0x0001 The shape properties in this record apply to the high-low lines of the chart group.
0x0002 The shape properties in this record apply to the leader lines of the chart group.
0x0003 The shape properties in this record apply to the series lines of the chart group.
If this record is in a sequence of records that conforms to the SS rule, then this field MUST be a
value from the following table:
412 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0000 The shape properties in this record apply to the series, data points, error bars, or trendlines
specified by the DataFormat record.
0x0001 The shape properties in this record apply to the data markers specified by the DataFormat
record.
If this record is in a sequence of records that conforms to the FRAME rule, then it MUST be
0x0000, which means the shape properties apply to the current chart area (section 2.2.3.17),
plot area, legend, or attached label.
If this record is in a sequence of records that conforms to the DROPBAR rule as specified by the
Chart Sheet Substream ABNF, then it MUST be 0x0000, which means the shape properties apply
to up bar or down bar formatting.
dwChecksum (4 bytes): An unsigned integer that specifies the checksum of the shape formatting
properties related to this record. The algorithm used to calculate the checksum is defined by [MS-
OSHARED] section 2.4.3.2. The checksum MUST be calculated by using every property of the
property stream, as a stream of bytes as specified by the ShapePropsStreamChecksumData
structure.
The information required to build the stream of bytes can be gathered from the LineFormat,
AreaFormat, MarkerFormat, and GelFrame records associated with this record, as specified by
LinePropertiesForShapePropsStreamChecksum,
InteriorColorPropertiesForShapePropsStreamChecksum, and
FillStylePropertiesForShapePropsStreamChecksum.
When reading this record, the checksum is calculated as previously specified and compared to the
dwChecksum value stored in this record. If the calculated checksum does not match the
dwChecksum value, the application MUST assume that the XML stream is out of date, and the
data from the LineFormat, AreaFormat, MarkerFormat, and GelFrame records MUST be used
instead of the data specified by the XML stream (section 2.1.7.22).
cb (4 bytes): An unsigned integer that specifies the length of the character array in the rgb field.
rgb (variable): An array of ANSI characters whose length is specified by cb that contains the XML
representation of the shape formatting properties as defined in [ECMA-376] Part 4, section
5.7.2.198.<118>
2.4.259 SheetExt
The SheetExt record specifies sheet properties, including sheet tab color and additional optional
information specified by using the SheetExtOptional structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
cb
413 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
icvPlain reserved
...
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0862.
cb (4 bytes): An unsigned integer that specifies the size of this record in bytes.
icvPlain (7 bits): An unsigned integer that specifies the tab color of this sheet. If the tab has a color
assigned to it, the value of this field MUST be greater than or equal to 0x08 and less than or equal
to 0x3F, as specified in the color table for the Icv structure. If the tab has no color assigned to it,
the value of this field MUST be 0x7F, and MUST be ignored.
2.4.260 ShrFmla
The ShrFmla record specifies a formula (section 2.2.2) that is shared across multiple cells. This
record specifies a file size optimization. It is used with the Formula record to compress the amount of
storage required for the formula. This record is preceded by a single Formula record that specifies the
first cell in the range that uses this shared formula. Other Formula records that use this shared
formula follow later in the file, not necessarily in a contiguous sequence. Formula records that use
this shared formula have the Formula.fShrFmla bit set, and a Formula.cell that is within the range
specified in the ref field of this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
formula (variable)
...
ref (6 bytes): A RefU structure that specifies the range of cells that use this shared formula. Cells in
this range do not have to use the shared formula.
cUse (8 bits): An unsigned integer that specifies the number of cells that use this shared formula.
2.4.261 ShtProps
The ShtProps record specifies properties of a chart as defined by the Chart Sheet Substream ABNF.
414 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A - fManSerAlloc (1 bit): A bit that specifies whether series are automatically allocated for the
chart.
B - fPlotVisOnly (1 bit): A bit that specifies whether to plot visible cells only.
C - fNotSizeWith (1 bit): A bit that specifies whether to size the chart with the window.
E - fAlwaysAutoPlotArea (1 bit): A bit that specifies whether the default plot area dimension
(2) is used.
Value Meaning
0 Use the default plot area dimension (2) regardless
of the Pos record information.
1 Use the plot area dimension (2) of the Pos record;
and fManPlotArea MUST be 1.
mdBlank (1 byte): An unsigned integer that specifies how the empty cells are plotted be a value
from the following table:
Value Meaning
0x00 Empty cells are not plotted.
0x01 Empty cells are plotted as zero.
0x02 Empty cells are plotted as interpolated.
2.4.262 SIIndex
The SIIndex record is part of a group of records which specify the data of a chart. This particular
record indicates the type of data contained in the Number records following it.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numIndex
numIndex (2 bytes): An unsigned integer that specifies the type of the data records contained by
the Number records following it. MUST be a value from the following table:
415 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Number Records Following It Contain
0x0002 Category labels or horizontal values (for scatter or bubble chart
groups)
0x0003 Bubble sizes
2.4.263 Sort
The Sort record specifies the information used to sort values contained in a range of cells.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
stKey2 (variable)
...
stKey3 (variable)
...
reserved2
A - fCol (1 bit): A bit that specifies whether to sort by columns or rows. MUST be one of the values
from the following table:
Value Meaning
0 Sort rows from top to bottom.
1 Sort columns from logical left to right.
B - fKey1Dsc (1 bit): A bit that specifies whether stKey1 sorts in descending order. MUST be one
of the values from the following table:
Value Meaning
0 Sort in ascending order.
1 Sort in descending order.
C - fKey2Dsc (1 bit): A bit that specifies whether stKey2 sorts in descending order. MUST be one of
the values from the following table:
Value Meaning
0 Sort in ascending order.
1 Sort in descending order.
416 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fKey3Dsc (1 bit): A bit that specifies whether stKey3 sorts in descending order. MUST be one of
the values from the following table:
Value Meaning
0 Sort in ascending order.
1 Sort in descending order.
E - fCaseSensitive (1 bit): A bit that specifies whether the sort is case-sensitive. MUST be one of
the values from the following table:
Value Meaning
0 The sort is not case-sensitive.
1 The sort is case-sensitive.
iOrder (5 bits): A signed integer that specifies the zero-based index of the custom list that specifies
the sort order. The set of custom lists is based on the current user's environment.
For more information about how the set of custom lists is determined see [MSFT-XL2000].
F - fAltMethod (1 bit): A bit that specifies whether to use phonetic information when sorting.
MUST be one of the values from the following table:
Value Meaning
0 Do not use phonetic information when sorting.
1 Use phonetic information when sorting.
stKey1 (variable): An XLUnicodeStringNoCch structure that specifies the string for the first sort key.
MUST exist if and only if cchKey1 is greater than 0.
stKey2 (variable): An XLUnicodeStringNoCch structure that specifies the string for the second sort
key. MUST exist if and only if cchKey2 is greater than 0.
stKey3 (variable): An XLUnicodeStringNoCch structure that specifies the string for the third sort key.
MUST exist if and only if cchKey3 is greater than 0.
2.4.264 SortData
417 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
...
...
... cconditions
... idParent
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0895.
A - fCol (1 bit): A bit that specifies whether to sort by columns or rows. MUST be one of the values
from the following table:
Value Meaning
0x0 Sort by rows.
0x1 Sort by columns.
B - fCaseSensitive (1 bit): A bit that specifies whether to use a case-sensitive sorting method.
MUST be one of the values from the following table:
Value Meaning
0x0 The sort is not case-sensitive.
0x1 The sort is case-sensitive.
C - fAltMethod (1 bit): A bit that specifies whether to use a sorting method other than character
order, such as stroke order or Mandarin phonetic symbols. MUST be one of the values from
the following table:
Value Meaning
0x0 The sort uses character order.
0x1 The sort uses a method other than character order.
418 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
sfp (3 bits): An unsigned integer that specifies the type of the object that contains the sort field.
MUST be a value from the following table:
Value Meaning
0x0 The sort field is contained in a sheet.
rfx (16 bytes): An RFX structure that specifies the range to sort.
cconditions (4 bytes): An unsigned integer that specifies the count of sort conditions. This record
MUST be followed by one ContinueFrt12 record for each sort condition.
idParent (4 bytes): An unsigned integer that specifies the identifier of the object that contains the
sort field, if the sfp field is 0x1 or 0x3. If the sfp field is equal to 0x1, the value of this field MUST
be equal to the idList field of the associated TableFeatureType. If the sfp field is equal to 0x3, the
value of this field MUST be equal to the zero-based index of the associated query table (Qsi) in the
Qsi records in the current substream. If the sfp field is equal to 0x0 or 0x2, this is undefined and
MUST be ignored.
sortCond12Array (variable): An array of SortCond12 structures that specifies the sort conditions.
2.4.265 SST
Each string constant in this record has one or more references in the workbook, with the goal of
improving performance in opening and saving the file. The LabelSst record specifies how to make a
reference to a string in this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cstTotal
cstUnique
rgb (variable)
...
cstTotal (4 bytes): A signed integer that specifies the total number of references in the workbook to
the strings in the shared string table. MUST be greater than or equal to 0.
cstUnique (4 bytes): A signed integer that specifies the number of unique strings in the shared
string table. MUST be greater than or equal to 0.
419 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.266 StartBlock
The StartBlock record specifies the beginning of a collection of records. Future records contained in
this collection specify saved features to allow applications that do not support the feature to preserve
the information. This record MUST have a matching EndBlock record. StartBlock and EndBlock pairs
can be nested. Up to 100 levels of blocks can be nested.
Prior to writing a chart-specific future record, which is a record with a record number greater than or
equal to 2048 and less than or equal to 2303, according to Record Enumeration, StartBlock records
MUST be written according to the following rules:
A StartBlock record MUST NOT be written if the record is preceded by a StartObject record but not
preceded by the matching EndObject record. That is, StartBlock and EndBlock pairs MUST NOT
belong to any collection defined by StartObject and EndObject.
If there does not exist a StartBlock record with iObjectKind equal to 0x000D without a matching
EndBlock record, then a corresponding StartBlock record with iObjectKind equal to 0x000D MUST
be written.
If the chart-specific future record exists in the sequence of records that conforms to the DAT rule,
and there does not exist a StartBlock record with iObjectKind equal to 0x0006 without a
matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to
0x0006 MUST be written. If a StartBlock record is written because of rule number 2, then this
StartBlock record MUST be written immediately after that record.
If the chart-specific future record is in a series, and there does not exist a StartBlock record with
iObjectKind equal to 0x000C without a matching EndBlock record, then a corresponding
StartBlock record with iObjectKind equal to 0x000C and iObjectInstance1 equal to the number
of series prior to this series in the current Sheet MUST be written. If any StartBlock records are
written because of rule number 2 or 3, then this StartBlock record MUST be written immediately
after those records.
If the chart-specific future record exists in the sequence of records that conforms to the SS rule,
and there does not exist a StartBlock record with iObjectKind equal to 0x000E without a
matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to
0x000E, iObjectContext equal to the yi field of the DataFormat record in the current SS rule, and
iObjectInstance1 equal to the xi field of the DataFormat record in the current SS rule MUST be
written. If any StartBlock records are written because of rule number 2, 3, or 4, then this
StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in a series, and is part of a collection defined by a Begin and
End pair written immediately after a LegendException record, and there does not exist a
StartBlock record with iObjectKind equal to 0x000A without a matching EndBlock record, then a
corresponding StartBlock record with iObjectKind equal to 0x000A and iObjectInstance1 equal
to the iss field of the LegendException record in the series MUST be written. If any StartBlock
records are written because of rule number 2, 3, 4, or 5, then this StartBlock record MUST be
written immediately after those records.
If the chart-specific future record is in an axis group. and there does not exist a StartBlock record
with iObjectKind equal to 0x0000 without a matching EndBlock record, then a corresponding
StartBlock record with iObjectKind equal to 0x0000 and iObjectInstance1 equal to the iax field
of the AxisParent record of the axis group MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, or 6, then this StartBlock record MUST be written immediately
after those records.
If the chart-specific future record is in a Chart Group, and there does not exist a StartBlock record
with iObjectKind equal to 0x0005 without a matching EndBlock record, then a corresponding
StartBlock record with iObjectKind equal to 0x0005 and iObjectInstance1 equal to the iax field
of the AxisParent record of the axis group MUST be written. If any StartBlock records are written
420 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
because of rule number 2, 3, 4, 5, 6, or 7, then this StartBlock record MUST be written
immediately after those records.
If the chart-specific future record is in an axis, and there does not exist a StartBlock record with
iObjectKind equal to 0x0004 without a matching EndBlock record, then:
If the chart-specific future record exists in the sequence of records that conforms to the IVAXIS
rule, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and
iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written
immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the
SERIESAXIS rule, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and
iObjectInstance1 equal to 0x0002 MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written
immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DVAXIS
rule, and wType of the Axis record in the sequence of records that conforms to the DVAXIS rule is
equal to 0, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and
iObjectInstance1 equal to 0x0001 MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written
immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DVAXIS
rule, and wType of the Axis record in the sequence of records that conforms to the DVAXIS rule is
equal to 1, then a corresponding StartBlock record with iObjectKind equal to 0x0004 and
iObjectInstance1 equal to 0x0003 MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, 6, 7, or 8, then this StartBlock record MUST be written
immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the DROPBAR
rule, and there does not exist a StartBlock record with iObjectKind equal to 0x000F without a
matching EndBlock record, then a corresponding StartBlock record with iObjectKind equal to
0x000F and iObjectInstance1 equal to one less than the number of DropBar records written
prior to the chart-specific future record in the current Chart Group MUST be written. If any
StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, or 9, then this StartBlock
record MUST be written immediately after those records.
If the chart-specific future record is in a legend and there does not exist a StartBlock record with
iObjectKind equal to 0x0009 without a matching EndBlock record, then:
If the chart-specific future record is in a chart group, then a corresponding StartBlock record with
iObjectKind equal to 0x0009 and iObjectContext equal to 0x0001 MUST be written. If any
StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, or 10, then this
StartBlock record MUST be written immediately after those records.
If the chart-specific future record is not in a chart group, then a corresponding StartBlock record
with iObjectKind equal to 0x0009 and iObjectContext equal to 0x0000 MUST be written. If any
StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, or 10, then this
StartBlock record MUST be written immediately after those records.
If the chart-specific future record is in an attached label, and there does not exist a StartBlock
record with iObjectKind equal to 0x0002 without a matching EndBlock record, then:
If the chart-specific future record exists in the sequence of records that conforms to the DFTTEXT
rule of a chart group, and the id field of the DefaultText record in the sequence of records that
conforms to the DFTTEXT rule is greater than or equal to 0x0002, then a corresponding StartBlock
record with iObjectKind equal to 0x0002, iObjectContext equal to 0x0002, and
421 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iObjectInstance1 equal to 0xFFFF MUST be written. If any StartBlock records are written
because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be
written immediately after those records. Else,
If the chart-specific future record exists in the sequence of records that conforms to the DFTTEXT
rule of a chart group, then a corresponding StartBlock record with iObjectKind equal to 0x0002,
iObjectContext equal to 0x0002, and iObjectInstance1 equal to the id field of the DefaultText
record in the sequence of records that conforms to the DFTTEXT rule MUST be written. If any
StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this
StartBlock record MUST be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0003, then a
corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to
0x0004 and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock records are
written because of rules number 2, 3, 4, 5, 6, 7, 8, 9, 10 or 11, then this StartBlock record MUST
be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0002, then a
corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to
0x0004 and iObjectInstance1 equal to 0x0001 MUST be written. If any StartBlock records are
written because of rules number 2, 3, 4, 5, 6, 7, 8, 9, 10 or 11, then this StartBlock record MUST
be written immediately after those records. Else,
If the wLinkVar1 of the ObjectLink record of the attached label is equal to 0x0007, then a
corresponding StartBlock record with iObjectKind equal to 0x0002, iObjectContext equal to
0x0004, and iObjectInstance1 equal to 0x0002 MUST be written. If any StartBlock records are
written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, or 11, then this StartBlock record MUST
be written immediately after those records. Else,
If the chart-specific future record is in the first attached label of a chart sheet, then a
corresponding StartBlock record with iObjectKind equal to 0x0002 and iObjectContext equal to
0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5,
6, 7, 8, 9, 10, or 11, then this StartBlock record MUST be written immediately after those records.
Else,
If the chart-specific future record is not in the first attached label of a chart sheet, then a
corresponding StartBlock record with iObjectKind equal to 0x0002 and iObjectContext equal to
0x0005, iObjectInstance1 equal to wLinkVar1 of the ObjectLink record of the attached label
and iObjectInstance2 equal to wLinkVar2 of the ObjectLink record of the attached label MUST
be written. If any StartBlock records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10,
or 11, then this StartBlock record MUST be written immediately after those records.
If the chart-specific future record exists in the sequence of records that conforms to the FRAME
rule, and there does not exist a StartBlock record with iObjectKind equal to 0x0007 without a
matching EndBlock record, then:
If the chart-specific future record exists in the sequence of records that conforms to the AXES
rule, then a corresponding StartBlock record with iObjectKind equal to 0x0007, iObjectContext
equal to 0x0001, and iObjectInstance1 equal to 0x0000 MUST be written. If any StartBlock
records are written because of rule number 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, or 12, then this
StartBlock record MUST be written immediately after those records. Else,
If the chart-specific future record is in a Sheet, then a corresponding StartBlock record with
iObjectKind equal to 0x0007, iObjectContext equal to 0x0002, and iObjectInstance1 equal to
422 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
0x0000 MUST be written. If any StartBlock records are written because of rule number 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, or 12, then this StartBlock record MUST be written immediately after those
records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
iObjectKind iObjectContext
iObjectInstance1 iObjectInstance2
iObjectKind (2 bytes): An unsigned integer that specifies the type of object that is encompassed by
the block. MUST be a value from the following table:
0x0004 Axis
0x0007 Frame
0x0009 Legend
0x000C Series
0x000D Sheet
iObjectContext (2 bytes): An unsigned integer that specifies the context of the object. This value
further specifies the object specified in iObjectKind. MUST be a value from the following table:
0x0000 (Axis group) 0x0000 0x0000 0x0000 Primary axis group of the current chart.
0x0000 0x0000 0x0001 0x0000 Secondary axis group of the current chart.
(Axis group)
0x0002 0x0002 0x0000 0x0000 Default data labels in the chart that are not
(AttachedLabel) displayed as a percentage of the sum of all data
points, and that do not contain values.
423 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iObjectKind iObjectCont iObjectInst iObjectInst Description of Future Record Type Contents
ext ance1 ance2
0x0002 0x0002 0x0001 0x0000 Default data labels that contain values or
(AttachedLabel) percentage values.
0x0002 0x0002 0xFFFF 0x0000 Default for all text in the chart.
(AttachedLabel)
0x0002 0x0004 0x0000 0x0000 A: The title formatting Text record of the
(AttachedLabel) Category axis or horizontal value axis on a
scatter or bubble chart group.
0x0002 0x0004 0x0001 0x0000 B: The title formatting Text record of value axis
(AttachedLabel) or vertical value axis on a scatter or bubble chart
group. A chart MUST NOT have both A and B.
0x0002 0x0004 0x0002 0x0000 C: The title formatting Text record of the series
(AttachedLabel) axis. A chart MUST NOT have both B and C.
0x0002 0x0005 Data Point Series Index Data labels for data points in visible series,
(AttachedLabel) Index identified by the zero-based index of the Series
record of the current chart and the zero-based
index of the AttachedLabel record of the current
series.
0x0002 0x0005 0xFFFF Series Index Default data labels for a given series, identified
(AttachedLabel) by the zero-based index of the Series record of
the current chart.
0x0004 (Axis) 0x0000 0x0000 0x0000 Category axis or fill effect of the walls of the
current chart.
0x0004 (Axis) 0x0000 0x0001 0x0000 Value axis or fill effect of the walls of the current
chart.
0x0004 (Axis) 0x0000 0x0003 0x0000 Horizontal value axis for scatter chart group.
0x0005 (Chart group) 0x0000 0x0000 0x0000 Chart group of the primary axis group.
0x0005 (Chart group) 0x0000 0x0001 0x0000 Chart group of the secondary axis group.
0x0007 (Frame) 0x0000 0x0000 0x0000 Frame of the current CHARTFORMATS, LD,
AXES, and ATTACHEDLABEL in the collection.
0x0007 (Frame) 0x0002 0x0000 0x0000 Frame of the chart area (section 2.2.3.17)
0x000A 0x0000 Series Index 0x0000 Legend formatting exception information for a
(LegendException) series index entry in the current legend,
identified by the zero-based index of the Series
record of the current chart.
0x000C (Series) 0x0000 Series Index 0x0000 Series of the current chart, identified by the
zero-based index of the Series record of the
current chart.
424 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iObjectKind iObjectCont iObjectInst iObjectInst Description of Future Record Type Contents
ext ance1 ance2
0x000E (DataFormat) Series Index 0xFFFF 0x0000 Default formatting for all data points of a given
series identified by the zero-based index of the
Series record of the current chart.
0x000E (DataFormat) Series Index DataFormat 0x0000 Formatting of a given data point identified by the
Index zero-based index of the Series record of the
current chart and the zero-based index of the
DataFormat record of the current chart.
0x000F (DropBar) 0x0000 0x0001 0x0000 Down bar of the current chart.
iObjectInstance1 (2 bytes): An unsigned integer that specifies additional information about the
context of the object, together with iObjectContext, iObjectInstance2, and iObjectKind. This field
MUST equal one of the values specified in the previous table under the iObjectContext field.
iObjectInstance2 (2 bytes): An unsigned integer that specifies more information about the object
context, together with iObjectContext, iObjectInstance1, and iObjectKind. This field MUST equal
one of the values specified in the previous table under the iObjectContext field.
2.4.267 StartObject
The StartObject record specifies the beginning of a collection of Future Record Type records as
defined by the Chart Sheet Substream ABNF. The collection of records specifies a feature saved as a
Future Record Type such that an application that does not support the feature can preserve it. This
record MUST have a matching EndObject record. StartObject and EndObject pairs can be nested. Up
to 100 levels of blocks can be nested.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
iObjectKind iObjectContext
iObjectInstance1 iObjectInstance2
iObjectKind (2 bytes): An unsigned integer that specifies the kind of object that is encompassed by
the block. MUST be a value from the following table:
Value Object Type Encompassed By the Block Description of Future Record Type
Contents
0x0010 A sequence of records that conforms to the Display units labels of the current axis.
ATTACHEDLABEL rule is encompassed by the
block.
0x0011 A sequence of records that conforms to *(Font Font cache for a given application
[Fbi]) is encompassed by the block, as specified version. The block contains fonts for
by the FONTLIST rule. only those records introduced in the
specified application version.
425 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Object Type Encompassed By the Block Description of Future Record Type
Contents
iObjectContext (2 bytes): An unsigned integer that specifies the object context. MUST be 0x0000.
iObjectInstance1 (2 bytes): An unsigned integer that specifies additional information about the
context of the object, together with iObjectContext, iObjectInstance2, and iObjectKind. This field
MUST equal 0x0000 if iObjectKind is equal to 0x0010 or 0x0012. MUST be a value from the following
table if iObjectKind is equal to 0x0011:
iObjectInstance2 (2 bytes): An unsigned integer that specifies more information about the object
context, together with iObjectContext, iObjectInstance1 and iObjectKind. This field MUST equal
0x0000.
2.4.268 String
The String record specifies the string value of a formula (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
string (variable)
...
string (variable): An XLUnicodeString structure that specifies the string value of a formula (section
2.2.2). The value of string.cch MUST be less than or equal to 32767.
2.4.269 Style
426 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
user (variable)
...
ixfe (12 bits): An unsigned integer that specifies the zero-based index of the cell style XF in the
collection of XF records in the Globals Substream. See XFIndex for more information about the
organization of XF records in the file.
B - fBuiltIn (1 bit): A bit that specifies whether the cell style is built-in.
builtInData (2 bytes): An optional BuiltInStyle structure that specifies the built-in cell style
properties. MUST exist if and only if fBuiltIn is 1. The value of builtInData.istyBuiltIn MUST be
less than or equal to 0x09.
user (variable): An optional XLUnicodeString structure that specifies the name of the user-defined
cell style. MUST exist if and only if fBuiltIn is 0. The number of characters in this string SHOULD
be greater than or equal to 1 and MUST be less than or equal to 255.<127>
2.4.270 StyleExt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
stName (variable)
...
xfProps (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0892.
A - fBuiltIn (1 bit): A bit that specifies if this is a built-in cell style. If the value is 1, this is a built-in
cell style. This value MUST match the fBuiltIn field of the preceding Style record.
B - fHidden (1 bit): A bit that specifies whether the cell style is not displayed in the user interface.
427 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fCustom (1 bit): A bit that specifies whether the built-in cell style was modified by the user and
thus has a custom definition. If this field is equal to 1, then fBuiltIn MUST equal 1.
iCategory (1 byte): An unsigned integer that specifies which style category (2) that this style
belongs to. MUST be one of the values from the following table:
Value Meaning
0x00 Custom style
0x01 Good, bad, neutral style
0x02 Data model style
0x03 Title and heading style
0x04 Themed cell style
0x05 Number format style
builtInData (2 bytes): A BuiltInStyle structure that specifies the built-in cell style properties. If
fBuiltIn is 0, this field MUST be 0xFFFF and MUST be ignored. If fBuiltIn is 1, this field MUST
match the builtInData field of the preceding Style record.
stName (variable): An LPWideString structure that specifies the name of the style to extend. MUST
be less than or equal to 255 characters in length. If fBuiltIn is 0, the name specified by this field
MUST match the name specified by the user field of the preceding Style record.
2.4.271 SupBook
The SupBook record specifies a supporting link and specifies the beginning of a collection of records
as defined by the Globals Substream ABNF. The collection of records specifies the contents of an
external workbook, DDE data source, or OLE data source.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ctab cch
virtPath (variable)
...
rgst (variable)
...
ctab (2 bytes): An undefined field, a reserved field, or an unsigned integer that specifies the number
of sheets in a referenced external workbook. The type and meaning of this field is dependent on
the type of supporting link specified by the cch and virtPath fields, and is defined in the following
table:
428 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Type of supporting link specified by cch and
virtPath Meaning
cch (2 bytes): An unsigned integer that specifies a type of supporting link or specifies the length of
the string in virtPath. MUST be a value from the following table:
Value Meaning
0x0001 to 0x00ff (inclusive) The type of supporting link specified by this record is
specified by virtPath. This value is the count of
characters in virtPath.
virtPath (variable): An XLUnicodeStringNoCch structure that specifies the type of supporting link
and, if applicable, the target of that supporting link. This field MUST exist if and only if the value of
cch is between 0x0001 and 0x00ff (inclusive). The length of the string in this field MUST be equal
to cch. The contents of this field MUST be a value from the following table:
429 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
A single character of Unicode value 0x20 (SPACE) This record specifies an unused supporting link. This
supporting link MUST NOT be used by any external
reference consumers.
A string that conforms to the OLE-link rule, as This record specifies a DDE data source referencing
specified in VirtualPath or an OLE data source referencing type of supporting
link. The value of this field specifies the target of the
supporting link.
A string that conforms to the virt-path rule, but does This record specifies an external workbook
not conform to the ole-link rule, as specified in referencing type of supporting link. The value of this
VirtualPath field specifies the path and file name of the external
workbook.
rgst (variable): An array of XLUnicodeString structures that specify sheet names in the external
workbook. This field MUST exist if and only if the supporting link type specified by cch and
virtPath is external workbook referencing or unused. If this field exists, the number of elements
in this array MUST be equal to ctab. The contents and meaning of this array are defined in the
following table:
2.4.272 Surf
The Surf record specifies that the chart group is a surface chart group and specifies the chart group
attributes.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B reserved
430 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fFillSurface (1 bit): A bit that specifies whether the surface chart group is wireframe or has a
fill. MUST be a value from the following table:
Value Meaning
0 Surface chart group is wireframe.
1 Surface chart group has a fill.
B - f3DPhongShade (1 bit): A bit that specifies whether 3-D Phong shading is displayed.
2.4.273.1 Continue_SxaddlSxString
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of the hdr.sxc field MUST equal the value of the
hdr.sxc field of the preceding SXAddl record and the hdr.sxd field MUST equal the value of the
hdr.sxd field of the preceding SXAddl record.
stContinue (variable): An SXAddl_SXString structure that specifies the next segment of the string.
2.4.273.2 SXAddl
The SXAddl record specifies additional information for a PivotTable view, PivotCache, or query table.
The current class and full type of this record are specified by the hdr field which determines the
contents of the data field. See Usage of SXAddl records for more information.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure that specifies header information for an SXAddl record.
431 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
data (variable): A variable-size field that contains data specific to the full record type of the SXAddl
record.
2.4.273.3 SXAddl_SXCAutoSort_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x12 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.4 SXAddl_SXCAutoSort_SXDId
The SXAddl_SXCAutoSort_SXDId record specifies information for pivot field sorting for an
SXCAutoSort class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A reserved1
... reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x12 and the value of
hdr.sxd MUST equal 0x00.
A - fAscendSort (1 bit): A bit that specifies whether the sort order is ascending or descending. The
value MUST be one of the values from the following table:
Value Description
0 Sort order is descending.
1 Sort order is ascending.
432 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.5 SXAddl_SXCCache_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.6 SXAddl_SXCCache_SXDId
The SXAddl_SXCCache_SXDId record specifies how an SxcCache class is associated with other
records for a PivotCache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... idCache
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0x00.
idCache (4 bytes): An unsigned integer that specifies the PivotCache stream associated with
this SxcCache class. MUST be equal to the idStm field of the SXStreamID record of the
PivotCache stream associated with this SxcCache class.
2.4.273.7 SXAddl_SXCCache_SXDInfo12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C reserved1
... reserved2
433 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0x41.
B - fSrvSupportAttribDrill (1 bit): A bit that specifies whether the data source of the PivotCache
supports attribute drilldown. MUST be ignored if the data source is not OLAP.
C - fSrvSupportSubQuery (1 bit): A bit that specifies whether the data source of the PivotCache
supports the MDX SUBSELECT statement. MUST be ignored if the data source is not OLAP.
2.4.273.8 SXAddl_SXCCache_SXDInvRefreshReal
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B reserved1
... reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0x34.
A - fEnableRefresh (1 bit): A bit that specifies whether refresh is enabled for the PivotCache.
B - fInvalid (1 bit): A bit that specifies whether the cache records are not valid. If the value is 1, the
cache records MUST be ignored. See cache record for more information.
2.4.273.9 SXAddl_SXCCache_SXDVer10Info
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved1
...
citmGhostMax
434 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
bVerCacheLastRefresh bVerCacheRefreshableMin numDateCopy
...
... reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0x02.
citmGhostMax (4 bytes): A signed integer that specifies the number of unused cache items to allow
before discarding unused cache items. MUST<128> be greater than or equal to -1 and less than
or equal to 1048576. If this value is -1, the number of unused cache items retained by the
application is optimized to balance memory usage on the system and future usage of cache items.
numDateCopy (8 bytes): A DateAsNum structure that specifies the date and time when the
PivotCache was last refreshed.
2.4.273.10 SXAddl_SXCCache_SXDVerSXMacro
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
reserved2 reserved3
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x03 and the value of
hdr.sxd MUST equal 0x18.
dwVer (1 byte): A DataFunctionalityLevel type that specifies the data functionality level that the
PivotCache was created with.
435 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.11 SXAddl_SXCCache_SXDVerUpdInv
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
data
...
...
data (12 bytes): An SXAddl_SXDVerUpdInv structure. The value of data.hdr.sxc MUST equal 0x03
and the value of data.hdr.sxd MUST equal 0x01. The value of data.dwVersionInvalidates
MUST equal 0x0002 or 0x00FF.
If the value of data.dwVersionInvalidates is not 0x00FF and is greater than or equal to the
value of the bVerCacheLastRefresh field of the SXAddl_SXCCache_SXDVer10Info record of this
SXCCache class, the following records of this SXCCache class (including nested classes or until
another SXAddl_SXCCache_SXDVerUpdInv record is encountered) MUST be ignored.
2.4.273.12 SXAddl_SXCCacheField_SXDCaption
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x2F.
stCaption (variable): A SXAddl_SXString structure that specifies the caption of the cache field. The
number of characters in the string MUST be less than or equal to 255.
2.4.273.13 SXAddl_SXCCacheField_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
436 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.14 SXAddl_SXCCacheField_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x00.
stSourceName (variable): An SXAddl_SXString structure that specifies the name of the cache field
to which this SxcCacheField class applies. The number of characters in the string MUST be less
than or equal to 255. The corresponding SXFDB record is the SXFDB record with its stFieldName
field equal to the value of this field. If there exists no such SXFDB record, then this SxcCacheField
class MUST be ignored.
2.4.273.15 SXAddl_SXCCacheField_SXDIfdbMempropMap
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
rgMap (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x30.
437 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgMap (variable): An array of 2-byte unsigned integers. The array MUST NOT be empty. Each
element in the array specifies a cache field index, as specified by Cache Fields. The referenced
cache field is associated with a member property as specified in member properties. The isxtl field
of the SXVDTEx record of the pivot field associated with the referenced cache field MUST be equal
to 0x00007FFF or equal to isxtl of the SXVDTEx record of the pivot field associated with this cache
field. The ihdb field of the SXAddl_SXCCacheField_SXDProperty record associated with the
referenced cache field MUST be equal to the isxth field of SXVDTEx record of the pivot field
associated with this cache field. The size of the array MUST be equal to the ifdbMemProp field in
the SXAddl_SXCCacheField_SXDIfdbMpMapCount record in this SXAddl collection. The value of
each element in the array MUST be less than the number of cache fields in this PivotCache as
specified by the cfdbdb field of the SXDB record for this PivotCache.
2.4.273.16 SXAddl_SXCCacheField_SXDIfdbMpMapCount
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... ifdbMemProp
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x31.
ifdbMemProp (4 bytes): An unsigned integer that specifies the number of elements in the array
specified by the rgMap field of the SXAddl_SXCCacheField_SXDIfdbMempropMap record that
follows this record. MUST be greater than 0 and less than the number of cache fields in this
PivotCache.
2.4.273.17 SXAddl_SXCCacheField_SXDProperty
The SXAddl_SXCCacheField_SXDProperty record specifies the hierarchy information of the
cache field for an SxcCacheField class. This record exists only if this is an OLAP PivotCache, the
PivotCache functionality level is greater than 2, and this cache field is associated with a member
property.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... ihdb
... reserved
438 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x05.
ihdb (4 bytes): An unsigned integer that specifies a pivot hierarchy index. The pivot hierarchy index
specifies which pivot hierarchy this cache field is part of.
2.4.273.18 SXAddl_SXCCacheField_SXDPropName
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x40.
stPropName (variable): An SXAddl_SXString structure that specifies the name of the member
property associated with this cache field. The length of the string MUST be greater than 0 and less
than 32768.
2.4.273.19 SXAddl_SXCCacheField_SXDSxrmitmCount
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... citm
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x04 and the value of
hdr.sxd MUST equal 0x2D.
citm (4 bytes): An unsigned integer that specifies the number of cache item records. The value
MUST be greater than or equal to 0 and less than or equal to 1048576. The number of
SXADDLCACHEITEM collections that follows this record MUST match this value.
439 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.20 SXAddl_SXCCacheItem_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x09 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.21 SXAddl_SXCCacheItem_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... dwItem
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x09 and the value of
hdr.sxd MUST equal 0x00.
dwItem (4 bytes): An unsigned integer that specifies the cache item index that this SxcCacheItem
class applies to.
2.4.273.22 SXAddl_SXCCacheItem_SXDItmMpMapCount
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... cMemProps
440 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x09 and the value of
hdr.sxd MUST equal 0x33.
cMemProps (4 bytes): An unsigned integer that specifies the number of member property
mappings for this cache item.
2.4.273.23 SXAddl_SXCCacheItem_SXDItmMpropMap
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
rgMemProps (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x09 and the value of
hdr.sxd MUST equal 0x32.
rgMemProps (variable): An array of 4-byte signed integers. Each element of this array specifies a
cache item index, as specified by Cache Items, in the cache field associated with that element. For
a given element, the associated cache field is the cache field specified by the element with the
same index in the rgMap array of the preceding SXAddl_SXCCacheField_SXDIfdbMempropMap
record. Each referenced cache item specifies a member property value.
A value of -1 specifies no cache item. Each element in this array MUST be greater than or equal to
-1.
2.4.273.24 SXAddl_SXCCacheItem_SXDSxrmitmDisp
The SXAddl_SXCCacheItem_SXDSxrmitmDisp record specifies the display name of this cache item
for an SxcCacheItem class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
441 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x09 and the value of
hdr.sxd MUST equal 0x2E.
stDisplay (variable): An SXAddl_SXString structure that specifies the display name of this cache
item.
2.4.273.25 SXAddl_SXCField_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x01 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.26 SXAddl_SXCField_SXDId
The SXAddl_SXCField_SXDId record specifies how an SxcField class is associated with other records
for a pivot field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x01 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): An SXAddl_SXString structure that specifies the pivot field to which this SxcField
class applies. The corresponding SXFDB record, of the associated cache field of this pivot field, is
the SXFDB record with its stFieldName field equal to the value of this field. If there exists no
such SXFDB record, then this SxcField class MUST be ignored.
2.4.273.27 SXAddl_SXCField_SXDVer10Info
442 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A reserved1
... reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x01 and the value of
hdr.sxd MUST equal 0x02.
A - fHideDD (1 bit): A bit that specifies whether the per pivot field drop-down user interface is
hidden for the pivot field.
2.4.273.28 SXAddl_SXCField12_SXDAutoshow
The SXAddl_SXCField12_SXDAutoshow record specifies the number of items for simple filters in
the pivot field for an SXCField12 class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... citmAutoShow
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0x37.
citmAutoShow (4 bytes): An unsigned integer that specifies the number of items for simple filters.
The value MUST be greater than or equal to 1 and less than or equal to 0x7FFFFFFF.
2.4.273.29 SXAddl_SXCField12_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
443 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.30 SXAddl_SXCField12_SXDId
The SXAddl_SXCField12_SXDId record specifies how this SXCField12 class is associated with other
records for a pivot field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): An SXAddl_SXString structure that specifies the name of the pivot field to which
this SXCField12 class applies. The corresponding SXFDB record, of the associated cache field of
this pivot field, is the SXFDB record with its stFieldName field equal to the value of this field. If
there exists no such SXFDB record, then this SXCField12 class MUST be ignored.
2.4.273.31 SXAddl_SXCField12_SXDISXTH
The SXAddl_SXCField12_SXDISXTH record specifies a particular Pivot Hierarchy to which this pivot
field is associated for an SXCField12 class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... isxth
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0x1C.
isxth (4 bytes): An unsigned integer that specifies a pivot hierarchy index that specifies the pivot
hierarchy to which this pivot field is associated. See Association of Pivot Hierarchies and Pivot
Fields and Cache Fields for more information.
444 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.32 SXAddl_SXCField12_SXDMemberCaption
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0x11.
2.4.273.33 SXAddl_SXCField12_SXDVer12Info
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C D E F reserved2
... reserved3
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x17 and the value of
hdr.sxd MUST equal 0x19.
B - fHiddenLvl (1 bit): A bit that specifies whether the OLAP pivot field is a hidden level. The value
is ignored if it is not an OLAP PivotTable view.
C - fUseMemPropCaption (1 bit): A bit that specifies whether the member property is used as a
caption for the pivot field. If it is set and there is a SXAddl_SXCField12_SXDMemberCaption record
in this SXCField12 class, then the value from the member property specified by
SXAddl_SXCField12_SXDMemberCaption is used as captions for the pivot items of this pivot field.
D - fCompact (1 bit): A bit that specifies where the next pivot field is displayed in the PivotTable
layout.
Value Meaning
0x0 The pivot field is displayed in the next column on the sheet.
0x1 The pivot field is displayed in the same column on the sheet.
445 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
E - fNotAutoSortDft (1 bit): A bit that specifies whether, during the next sort operation that is done
on this pivot field, the pivot items are sorted or whether the sort condition is remembered and
reapplied on subsequent recalculation of the PivotTable view. A value of 1 specifies that pivot items
are to be sorted.
F - fFilterInclusive (1 bit): A bit that specifies whether any manual filter applied to this pivot field
specifies pivot items that are included or excluded. If this pivot field is associated with a pivot
hierarchy, this value MUST equal the fFilterInclusive field on the SXTH record that specifies the
pivot hierarchy that this pivot field is associated with. MUST be a value from the following table:
Value Meaning
0x0 Any manual filter applied to this pivot field specifies pivot items that are excluded.
0x1 Any manual filter applied to this pivot field specifies pivot items that are included.
2.4.273.34 SXAddl_SXCField12_SXDVerUpdInv
The SXAddl_SXCField12_SXDVerUpdInv record specifies the record handling behavior for following
records of the SXCField12 class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
data
...
...
data (12 bytes): An SXAddl_SXDVerUpdInv structure. The value of data.hdr.sxc MUST equal 0x17
and the value of data.hdr.sxd MUST equal 0x01. The value of data.dwVersionInvalidates
MUST equal 0x0002 or 0x00FF.
If the value of data.dwVersionInvalidates is not equal to 0x00FF and is greater than or equal to
the value of the VerSxLastUpdated field of the QsiSXTag record of this PivotTable view, the
following records of this SXCField12 class, including nested classes or until another
SXAddl_SXCField12_SXDVerUpdInv record is encountered, MUST be ignored.
2.4.273.35 SXAddl_SXCGroup_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
446 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x08 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.36 SXAddl_SXCGroup_SXDGrpInfo
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C D reserved2
... reserved3
stUniqueName (variable)
...
stCaption (variable)
...
stParentUniqueName (variable)
...
iGroupNum
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x08 and the value of
hdr.sxd MUST equal 0x07.
D - fHasNoParent (1 bit): A bit that specifies whether the stParentUniqueName field does not
exist.
stUniqueName (variable): An XLUnicodeString structure that specifies the fully qualified unique
name of the OLAP group. The length of this field MUST be less than or equal to 255 characters.
447 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stCaption (variable): An XLUnicodeString structure that specifies the caption (display name) of the
OLAP group. The length of this field MUST be less than or equal to 255 characters.
iGroupNum (4 bytes): A signed integer that specifies a unique identifier for this OLAP group within
the OLAP grouping level containing it. MUST be greater than zero.
2.4.273.37 SXAddl_SXCGroup_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x08 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): An SXAddl_SXString structure that specifies the name of the OLAP group. MUST
contain less than or equal to 255 characters.
2.4.273.38 SXAddl_SXCGroup_SXDMember
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C reserved1
... reserved2
stUnique (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x08 and the value of
hdr.sxd MUST equal 0x08.
448 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - fGroup (1 bit): A bit that specifies whether this record specifies the name of a group in the
subsequent OLAP level.
Value Meaning
stUnique (variable): An XLUnicodeString that specifies the MDX unique name of an OLAP member
or the name of a group in the subsequent OLAP level. If the value of fGroup is 0, this is an MDX
unique name of an OLAP member. If the value of fGroup is 1, this is a group name and it MUST
match the stName field in one of the SXAddl_SXCGroup_SXDId records for the subsequent OLAP
level. The length of this field MUST be less than or equal to 255 characters.
2.4.273.39 SXAddl_SXCGrpLevel_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x07 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.40 SXAddl_SXCGrpLevel_SXDGrpLevelInfo
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C reserved2
449 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved3
stLevelName (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x08 and the value of
hdr.sxd MUST equal 0x06.
A - fGroupLevel (1 bit): A bit that specifies whether this is a user-defined group level. MUST be a
value from the following table:
Value Meaning
0 The record specifies a group level that corresponds to the source cube level.
1 The record specifies a user-defined group level.
C - fCustomRollup (1 bit): A bit that specifies whether the OLAP group level has custom rollup.
stLevelName (variable): An XLUnicodeString that specifies the display name of the OLAP group
level. The length of this field MUST be less than or equal to 255 characters.
2.4.273.41 SXAddl_SXCGrpLevel_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x07 and the value of
hdr.sxd MUST equal 0x00.
stUnique (variable): An SXAddl_SXString that specifies the unique name of the OLAP group level.
2.4.273.42 SXAddl_SXCHierarchy_SXDDisplayFolder
The SXAddl_SXCHierarchy_SXDDisplayFolder record specifies the name for the display folder for
a pivot hierarchy for an SxcHierarchy class. This record MUST NOT exist if the PivotCache functionality
level of the associated PivotCache is less than 3.
450 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x25.
stDisplayFolder (variable): An SXAddl_SXString that specifies the name of the pivot hierarchy
display folder.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
65535 characters.
2.4.273.43 SXAddl_SXCHierarchy_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.44 SXAddl_SXCHierarchy_SXDFilterMember
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B reserved2
... reserved3
451 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x09.
B - fMultFiltHavePlex (1 bit): A bit that specifies whether multiple OLAP members in this pivot
hierarchy are selected in the OLAP page filtering. If the value of this field is 0, cItems and
rgStPageItems MUST be ignored.
cItems (2 bytes): An unsigned integer that specifies the number of elements in rgStPageItems.
MUST be greater than 0 if fMultFiltHavePlex is 1.
rgStPageItems (variable): An array of XLUnicodeString. Each element specifies the MDX unique
name of an OLAP member selected in the OLAP page filtering. The number of elements in the
array is specified by cItems. The length of each element MUST be greater than zero characters
and less than or equal to 255 characters.
2.4.273.45 SXAddl_SXCHierarchy_SXDFilterMember12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... isxtl
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x3F.
isxtl (4 bytes): An unsigned integer that specifies the zero-based ordinal of the OLAP level in the
pivot hierarchy that the OLAP manual filter applies to. MUST be greater than or equal to 0.
cItems (2 bytes): An unsigned integer that specifies the number of items in rgStMembers.
rgStMembers (variable): An array of XLUnicodeString. Each element specifies the MDX unique
name of an OLAP member selected in the OLAP manual filter. The number of elements in the
array is specified by cItems. The length of each element MUST be greater than zero characters
and less than or equal to 255 characters.
452 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.46 SXAddl_SXCHierarchy_SXDIconSet
The SXAddl_SXCHierarchy_SXDIconSet record specifies the icon set for a pivot hierarchy, for an
SxcHierarchy class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... dwIconset
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x20.
Value Meaning
0x0000 Default
0x0001 3-arrow ascending
0x0002 3-arrow descending
0x0003 5-arrow ascending
0x0004 5-arrow descending
0x0005 5-arrow gray ascending
0x0006 Traffic lights
0x0007 Traffic lights 2
0x0008 Quarters ascending
0x0009 Quarters descending
0x000A Signs
0x000B Symbols
2.4.273.47 SXAddl_SXCHierarchy_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
453 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x00.
stHierUnq (variable): An SXAddl_SXString that specifies the MDX unique name of the
corresponding pivot hierarchy to which this SxcHierarchy class applies. The corresponding SXTH,
of the pivot hierarchy in the PivotTable view, is the SXTH record with its stUnique field equal to
the value of this field.
If there exists no such SXTH record, then this SxcHierarchy class MUST be ignored.
The length of this field MUST be greater than zero characters and less than or equal to 255
characters.
2.4.273.48 SXAddl_SXCHierarchy_SXDInfo12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C D E reserved1
... reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x41.
B - fUnbalancedReal (1 bit): A bit that specifies whether the pivot hierarchy is balanced or
unbalanced. If the value is 1 and fUnbalancedRealKnown is 1, the pivot hierarchy is
unbalanced. If the value is 0 and fUnbalancedRealKnown is 1, the pivot hierarchy is balanced.
If fUnbalancedRealKnown is 0 the value is undefined.
D - fUnbalancedGroup (1 bit): A bit that specifies whether the OLAP group pivot hierarchy is
balanced or unbalanced. If the value is 1 and fUnbalancedGroupKnown is 1, the pivot hierarchy
is unbalanced. If the value is 0 and fUnbalancedGroupKnown is 1, the pivot hierarchy is
balanced. If fUnbalancedGroupKnown is 0 the value is undefined.
E - fHidden (1 bit): A bit that specifies whether the OLAP hierarchy corresponding to this pivot
hierarchy is hidden.
454 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.49 SXAddl_SXCHierarchy_SXDKPIGoal
The SXAddl_SXCHierarchy_SXDKPIGoal record specifies the MDX unique name of the OLAP KPI
goal measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the
PivotCache functionality level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x28.
stKPIGoal (variable): An SXAddl_SXString structure that specifies the MDX unique name of the KPI
goal measure.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
32767 characters.
2.4.273.50 SXAddl_SXCHierarchy_SXDKPIStatus
The SXAddl_SXCHierarchy_SXDKPIStatus record specifies the MDX unique name of the OLAP
KPI status measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the
PivotCache functionality level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x29.
stKPIStatus (variable): An SXAddl_SXString structure that specifies the MDX unique name of the
KPI status measure.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
32767 characters.
2.4.273.51 SXAddl_SXCHierarchy_SXDKPITime
The SXAddl_SXCHierarchy_SXDKPITime record specifies the MDX unique name of the OLAP
KPI time measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the
PivotCache functionality level of the associated PivotCache is less than 3.
455 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x2C.
stKPITime (variable): An SXAddl_SXString structure that specifies the MDX unique name of the KPI
time Multidimensional Expressions (MDX).
The length of this field MUST be greater than or equal to zero characters and less than or equal to
32767 characters.
2.4.273.52 SXAddl_SXCHierarchy_SXDKPITrend
The SXAddl_SXCHierarchy_SXDKPITrend record specifies the MDX unique name of the OLAP
KPI trend measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the
PivotCache functionality level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x2A.
stKPITrend (variable): An SXAddl_SXString structure that specifies the MDX unique name of the
KPI trend measure.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
32767 characters.
2.4.273.53 SXAddl_SXCHierarchy_SXDKPIValue
The SXAddl_SXCHierarchy_SXDKPIValue record specifies the MDX unique name of the OLAP
KPI value measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the
PivotCache functionality level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
456 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x27.
stKPIValue (variable): An SXAddl_SXString structure that specifies the MDX unique name of the
KPI value measure.
The length of this field MUST be greater than zero characters and less than or equal to 32767
characters.
2.4.273.54 SXAddl_SXCHierarchy_SXDKPIWeight
The SXAddl_SXCHierarchy_SXDKPIWeight record specifies the MDX unique name of the OLAP
KPI weight measure for a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if
the PivotCache functionality level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x2B.
stKPIWeight (variable): An SXAddl_SXString structure that specifies the MDX unique name of the
KPI weight Multidimensional Expressions (MDX).
The length of this field MUST be greater than or equal to zero characters and less than or equal to
32767 characters.
2.4.273.55 SXAddl_SXCHierarchy_SXDMeasureGrp
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x24.
457 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stMeasureGroup (variable): An SXAddl_SXString structure that specifies the name of the OLAP
measure group.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
65535 characters.
2.4.273.56 SXAddl_SXCHierarchy_SXDParentKPI
The SXAddl_SXCHierarchy_SXDParentKPI record specifies the name of the OLAP parent KPI for
a pivot hierarchy, for a SxcHierarchy class. This record MUST NOT exist if the PivotCache functionality
level of the associated PivotCache is less than 3.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x26.
stParentKPI (variable): An SXAddl_SXString structure that specifies the name of the parent KPI.
The length of this field MUST be greater than or equal to zero characters and less than or equal to
65535 characters.
2.4.273.57 SXAddl_SXCHierarchy_SXDProperty
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C reserved1
... reserved2
...
cchLevelUnq ichPropName
cchPropName isxtl
458 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x05.
A - fDisplayInReport (1 bit): A bit that specifies whether this member property is displayed in the
row axis or in the column axis, if this member property is associated with a pivot field.
B - fDisplayInTip (1 bit): A bit that specifies whether this member property is displayed in a
ToolTip.
C - fDisplayInCaption (1 bit): A bit that specifies whether this member property is used as a
caption for pivot items in the pivot field that is in this pivot hierarchy and is specified by the
SXVDTex record with an isxtl field equal to the value of the isxtl field of this record. MUST be 0 if
the PivotCache functionality level of the associated PivotCache is less than 3.
cchProperty (2 bytes): An unsigned integer that specifies the length in characters of stProperty.
The value MUST be greater than or equal to five characters and less than or equal to 255
characters.
stProperty (variable): An XLUnicodeStringNoCch that specifies the MDX unique name of this
member property. If a cache field has a matching value in the stFieldName field of SXFDB, then
the cache field is a member property cache field and is associated with this pivot hierarchy.
cchLevelUnq (2 bytes): An unsigned integer that specifies the length in characters of the OLAP
level MDX unique name of the cache pivot hierarchy in stProperty. The OLAP level MDX unique
name comes before the member property name in stProperty. For example, if the value for
stProperty equals "[Store].[Store Name].[Store Manager]", then cchLevelUnq equals 20. This
refers to "[Store].[Store Name]".
If the PivotCache functionality level of the associated PivotCache is 3, then this value is undefined
and MUST be ignored.
ichPropName (2 bytes): An unsigned integer that specifies the zero-based index of the character
where the property name portion begins in stProperty. For example, if the value for stProperty
equals "[Store].[Store Name].[Store Manager]", ichPropName equals 22. This refers to the
starting character of "Store Manager".
If the PivotCache functionality level of the associated PivotCache is 3, then this value is undefined
and MUST be ignored.
cchPropName (2 bytes): An unsigned integer that specifies the length in characters of the name
portion of stProperty. For example, if the value for stProperty equals "[Store].[Store
Name].[Store Manager]", cchPropName equals 13. This refers to the length of "Store Manager".
If the PivotCache functionality level of the associated PivotCache is 3, then this value is undefined
and MUST be ignored.
isxtl (2 bytes): A signed integer that specifies the zero-based index of the OLAP level in the pivot
hierarchy that this property applies to. The value MUST be greater than or equal to -1.
459 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.58 SXAddl_SXCHierarchy_SXDSXSetParentUnique
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x1D.
stHierUnique (variable): An SXAddl_SXString structure that specifies the MDX unique name of the
parent pivot hierarchy. The length of this field MUST be greater than zero characters and less than
or equal to 32767 characters.
2.4.273.59 SXAddl_SXCHierarchy_SXDUserCaption
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x02 and the value of
hdr.sxd MUST equal 0x1F.
stCaption (variable): An SXAddl_SXString structure that specifies the user-defined caption of this
pivot hierarchy. The length of this field MUST be greater than zero characters and less than or
equal to 255 characters.
2.4.273.60 SXAddl_SXCHierarchy_SXDVerUpdInv
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
data
...
460 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
data (12 bytes): An SXAddl_SXDVerUpdInv. The value of data.hdr.sxc MUST equal 0x02 and the
value of data.hdr.sxd MUST equal 0x01.
If the value of data.dwVersionInvalidates is not 0x00FF and is greater than or equal to the
value of the VerSxLastUpdated field of the QsiSXTag record of this PivotTable view, then all the
records and nested records of this SXCHierarchy class MUST be ignored until another
SXAddl_SXCHierarchy_SXDVerUpdInv record is encountered.
2.4.273.61 SXAddl_SXCQsi_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x05 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.62 SXAddl_SXCQsi_SXDId
The SXAddl_SXCQsi_SXDId record specifies how a SxcQsi class is associated with other records for
a query table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x05 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): A SXAddl_SXString structure that specifies the name of the query table. If the
stName field equals the rgchName field of a Qsi record in this worksheet substream, then this
SxcQsi class applies to the query table that the Qsi record is associated with. Otherwise, this
SxcQsi class MUST be ignored.
2.4.273.63 SXAddl_SXCQuery_SXDEnd
461 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x07 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.64 SXAddl_SXCQuery_SXDReconnCond
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... rccDBQuery
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x06 and the value of
hdr.sxd MUST equal 0x07.
rccDBQuery (4 bytes): An unsigned integer that specifies the reconnect condition for the database
query. MUST be a value from the following table:
462 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved (2 bytes): MUST be zero, and MUST be ignored.
2.4.273.65 SXAddl_SXCQuery_SXDSrcConnFile
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x06 and the value of
hdr.sxd MUST equal 0x06.
2.4.273.66 SXAddl_SXCQuery_SXDSrcDataFile
The SXAddl_SXCQuery_SXDSrcDataFile record specifies the source data file for an external
connection, for a SxcQuery class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x06 and the value of
hdr.sxd MUST equal 0x05.
stSourceDataFile (variable): An SXAddl_SXString structure that specifies the source data file for
the database query. The total count of characters of the string MUST be less than or equal to
65535.
2.4.273.67 SXAddl_SXCQuery_SXDXMLSource
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
463 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... stURL (variable)
...
hdr (6 bytes): An SXAddlHdr structure The value of hdr.sxc MUST equal 0x06 and the value of
hdr.sxd MUST equal 0x04.
2.4.273.68 SXAddl_SXCSXCondFmt_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1B and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.69 SXAddl_SXCSXCondFmt_SXDSXCondFmt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
sxcondfmtScope
sxcondfmtType
ipriority
csxrule
464 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1B and the value of
hdr.sxd MUST equal 0x35.
sxcondfmtScope (4 bytes): An unsigned integer that specifies the scope of the PivotTable view
conditional formatting. MUST be a value from the following table:
sxcondfmtType (4 bytes): An unsigned integer that specifies the type of this PivotTable view
conditional formatting. MUST be one of the values from following table:
ipriority (4 bytes): An unsigned integer that specifies the priority of the PivotTable view conditional
formatting. It is used to locate the conditional formatting rule by matching the ipriority field of
either CF12 or the rgbContent field which is a CFExNonCF12 structure in CFEx. MUST be greater
than or equal to 1.
csxrule (4 bytes): An unsigned integer that specifies the number of SXCSXrule classes contained in
this SXCSXCondFmt class. The SXCSXrule classes specify the area that the conditional formatting
is applied to.
2.4.273.70 SXAddl_SXCSXCondFmts_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
465 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1A and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.71 SXAddl_SXCSXCondFmts_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... cSxcondfmt
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1A and the value of
hdr.sxd MUST equal 0x00.
cSxcondfmt (4 bytes): A signed integer that specifies the number of SXCSXCondFmt class instances
that follow this record. MUST be greater than 0.
2.4.273.72 SXAddl_SXCSXDH_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x10 and the value of
hdr.sxd MUST equal 0xFF.
466 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.73 SXAddl_SXCSXDH_SXDId
The SXAddl_SXCSXDH_SXDId record specifies information for an OLAP dimension (1) for a
SXCSXDH class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... dwCount
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x10 and the value of
hdr.sxd MUST equal 0x00.
dwCount (4 bytes): An unsigned integer that specifies the number of SXAddl records of type
SXADDL_SXCSXDH_SXDSXDH that follow this record. The count MUST be greater than zero and
less than 0xFFFFFFFF.
2.4.273.74 SXAddl_SXCSXDH_SXDSxdh
The SXAddl_SXCSXDH_SXDSxdh record specifies a mapping between an OLAP dimension (1) and
a pivot hierarchy for a SXCSXDH class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved1
... reserved2
isxth
cchDimensionName cchDimensionUnique
...
stDimensionUnique (variable)
...
stDimensionCaption (variable)
467 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x10 and the value of
hdr.sxd MUST equal 0x1A.
isxth (4 bytes): A signed integer that specifies a reference to a pivot hierarchy. MUST be a value
from the following table:
Value Meaning
-2 This value specifies the data field.
0+ A pivot hierarchy index, as specified in Pivot Hierarchies, that specifies a
pivot hierarchy in the associated PivotTable view of the OLAP PivotCache.
The value MUST be -2 or greater than or equal to zero and less than the number of pivot hierarchy in
the associated PivotTable view of the OLAP PivotCache.
cchDimensionName (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch in the stDimensionName field. MUST be greater than zero and less than
or equal to 0x00FF.
cchDimensionUnique (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch in the stDimensionUnique field. MUST be greater than zero and less than
or equal to 0x00FF.
cchDimensionCaption (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch in the stDimensionCaption field. MUST be greater than zero and less
than or equal to 0x00FF.
2.4.273.75 SXAddl_SXCSXfilt_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0D and the value of
hdr.sxd MUST equal 0xFF.
468 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved (6 bytes): MUST be zero, and MUST be ignored.
2.4.273.76 SXAddl_SXCSXfilt_SXDId
The SXAddl_SXCSXfilt_SXDId record specifies information for a PivotTable rule filter, for an
SXCSXfilt class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0D and the value of
hdr.sxd MUST equal 0x00.
2.4.273.77 SXAddl_SXCSXfilt_SXDSXfilt
The SXAddl_SXCSXfilt_SXDSXfilt record specifies information for a PivotTable rule filter, for an
SXCSXfilt class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved1
...
A B C D E F G reserved5 grbitSbt
iDim
isxvd
cisxvi
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0D and the value of
hdr.sxd MUST equal 0x14.
A - sxaxisRw (1 bit): A bit that specifies whether the row axis is being referred to.
MUST be zero if the value of sxaxisCol is 1 or the value of sxaxisPage is 1 or the value of
sxaxisData is 1.
B - sxaxisCol (1 bit): A bit that specifies whether the column axis is being referred to.
469 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
MUST be zero if the value of sxaxisRw is 1 or the value of sxaxisPage is 1 or the value of
sxaxisData is 1.
D - sxaxisData (1 bit): A bit that specifies whether the value axis is being referred to.
MUST be zero if the value of sxaxisRw is 1 or the value of sxaxisCol is 1 or the value of
sxaxisPage is 1.
E - fSelected (1 bit): A bit that specifies whether the header of the Pivot Field is included in the
PivotTable rule filters.
grbitSbt (2 bytes): A signed integer that specifies the subtotals for this PivotTable rule filter. MUST
be a value from the following table:
Value Meaning
iDim (4 bytes): A signed integer that specifies the position of the Pivot Field within the axis specified
by sxaxisRw, sxaxisCol, sxaxisPage, or sxaxisData. MUST be greater than or equal to -1 and
less than or equal to 0x0000001F.
isxvd (4 bytes): A signed integer that specifies the Pivot Field that this PivotTable rule filter refers
to. MUST be a value from the following table:
Value Meaning
0 to 255 This value specifies a pivot field index, as specified in Pivot Fields. The
pivot field index specifies which pivot field this PivotTable rule filter refers
to.
If the value is greater than or equal to zero, MUST be less than the number of pivot fields in the
PivotTable view.
cisxvi (4 bytes): An unsigned integer that specifies the count of pivot item indexes in the
SXAddl_SXCSXfilt_SXDSXItm record that follows this record. MUST be greater than or equal to
zero. If isxvd is -1, MUST be 0.
2.4.273.78 SXAddl_SXCSXfilt_SXDSXItm
470 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
rgIsxvi (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0D and the value of
hdr.sxd MUST equal 0x15.
rgIsxvi (variable): An array of 2-byte unsigned integers. Each element specifies the pivot item or
data item index in the pivot field or data field specified by the isxvd field of the preceding
SXAddl_SXCSXfilt_SXDSXfilt record. See PivotTable rule for more information about the references
that are used.
The number of items in the array MUST equal the cisxvi field of the preceding
SXAddl_SXCSXfilt_SXDSXfilt record.
The value of each element in rgIsxvi MUST be in sorted order such that rgIsxvi[item] is less
than rgIsxvi[item+1] where item is between 0 and the number of elements in rgIsxvi – 2.
If the value of the isxvd field of the preceding SXAddl_SXCSXfilt_SXDSXfilt record is greater than
or equal to zero, each item in this array MUST be 0x7FFF (isxviNULL) or greater than or equal to
zero plus the number of pivot items in the pivot field specified by the isxvd field of the preceding
SXAddl_SXCSXfilt_SXDSXfilt record.
If the value of the isxvd field of the preceding SXAddl_SXCSXfilt_SXDSXfilt record is less than
zero, each item in this array MUST be greater than or equal to zero and less than the number of
data items in the PivotTable view.
2.4.273.79 SXAddl_SXCSXFilter12_SXDCaption
The SXAddl_SXCSXFilter12_SXDCaption record specifies the name of the advanced filter for an
SXCSXFilter12 class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x2F.
471 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stName (variable): An SXAddl_SXString structure that specifies the name of the PivotTable view
filter.
2.4.273.80 SXAddl_SXCSXFilter12_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.81 SXAddl_SXCSXFilter12_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... dwFilterid
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x00.
dwFilterid (4 bytes): An unsigned integer that specifies the unique identifier of this filter.
2.4.273.82 SXAddl_SXCSXFilter12_SXDSXFilter
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
472 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved1
... reserved2
isxvd
isxvdMProp
sxft
unused
isxdiMeasure
isxthMeasure
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x38.
isxvd (4 bytes): An unsigned integer that specifies a pivot field index as specified in pivot fields. The
pivot field index specifies which pivot field this filter applies to. The value MUST be less than the
cDim field of the SxView record of this PivotTable view.
isxvdMProp (4 bytes): A signed integer that specifies the member property pivot field on which this
advanced filter is based. MUST be a value from the following table:
Value Meaning
-1 This advanced filter is not defined on a member property.
Greater than or This value specifies a pivot field index as specified in pivot fields. The pivot field
equal to zero index specifies which pivot field this advanced filter is based on.
This value MUST be -1 and MUST be ignored if the value of the sxft field is less than
0x00000004 or greater than 0x00000011. The value MUST be greater than or equal to -1 and
less than the value of the cDim field of the SxView record of this PivotTable view.
sxft (4 bytes): A SxFT structure that specifies the advanced filter type. If the value is equal to
SXFTCOUNT, SXFTPERCENT, or SXFTSUM, the cft field in SXAddl_SXCSXFilter12_SXDXIsFilter
MUST be equal to CFTTOP10.
isxdiMeasure (4 bytes): A signed integer that specifies a data item index of the data item on which
this advanced filter is based. If this is an OLAP PivotTable view then isxdiMeasure MUST be -1, if
this is a value filter then isxdiMeasure MUST be greater than or equal to zero and less than the
number of SXDI records in this PivotTable view. Otherwise isxdiMeasure MUST be 0.
isxthMeasure (4 bytes): A signed integer that specifies a pivot hierarchy index of the measure pivot
hierarchy on which this advanced filter applies. If this is a non-OLAP PivotTable view then
isxthMeasure MUST be -1. If this is a value filter then isxthMeasure MUST be greater than or
equal to zero and less than the number of SXTH records in this PivotTable view. Otherwise
isxthMeasure MUST be 0.
473 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.83 SXAddl_SXCSXFilter12_SXDSXFilterDesc
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x39.
2.4.273.84 SXAddl_SXCSXFilter12_SXDSXFilterValue1
The SXAddl_SXCSXFilter12_SXDSXFilterValue1 record specifies the first value used by the label
filter for an SXCSXFilter12 class. This record MUST NOT exist if the value of the sxft field of the
preceding SXAddl_SXCSXFilter12_SXDSXFilter record is less than 0x00000004 or greater than
0x00000011.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x3A.
stValue (variable): A SXAddl_SXString structure that specifies the first value used by the label filter.
2.4.273.85 SXAddl_SXCSXFilter12_SXDSXFilterValue2
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
474 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x3B.
stValue (variable): A SXAddl_SXString structure that specifies the second value used by the label
filter.
2.4.273.86 SXAddl_SXCSXFilter12_SXDXlsFilter
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
cft
ccriteria
...
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x3C.
cft (4 bytes): A CFT enumeration that specifies the custom filter type. If the sxft field in
SXAddl_SXCSXFilter12_SXDSXFilter is equal to SXFTCOUNT, SXFTPERCENT, or SXFTSUM, this
value MUST be CFTTOP10.
ccriteria (4 bytes): A signed integer that specifies the number of criteria. MUST be greater than or
equal to zero and less than or equal to 2.
data (28 bytes): A 28-byte structure that contains the filter data.
2.4.273.87 SXAddl_SXCSXFilter12_SXDXlsFilterValue1
475 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x3D.
stValue (variable): A SXAddl_SXString structure that specifies the first value string of the
SXAddl_SXCSXFilter12_SXDXlsFilter filter.
2.4.273.88 SXAddl_SXCSXFilter12_SXDXlsFilterValue2
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1D and the value of
hdr.sxd MUST equal 0x3E.
stValue (variable): A SXAddl_SXString structure that specifies the second value of the
SXAddl_SXCSXFilter12_SXDXlsFilter filter.
2.4.273.89 SXAddl_SXCSXFilters12_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1C and the value of
hdr.sxd MUST equal 0xFF.
476 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.90 SXAddl_SXCSXFilters12_SXDId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... cSxfilter12
... reserved
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x1C and the value of
hdr.sxd MUST equal 0x00.
cSxfilter12 (4 bytes): An unsigned integer that specifies the count of PivotTable advanced filters in
the sheet.
2.4.273.91 SXAddl_SXCSXMg_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x14 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.92 SXAddl_SXCSXMg_SXDId
The SXAddl_SXCSXMg_SXDId record specifies information for an OLAP measure group, for an
SXCSXMg class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
477 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... stName (variable)
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x14 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): An SXAddl_SXString structure that specifies the name of the OLAP measure
group.
2.4.273.93 SXAddl_SXCSXMg_SXDUserCaption
The SXAddl_SXCSXMg_SXDUserCaption record specifies the display name for the OLAP measure
group specified in this SXAddl record collection.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x14 and the value of
hdr.sxd MUST equal 0x1F.
stUserCaption (variable): An SXAddl_SXString structure that specifies the display name of the
OLAP measure group.
2.4.273.94 SXAddl_SXCSXMgs_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x13 and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.95 SXAddl_SXCSXMgs_SXDId
478 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... cmgs
... reserved
cmaps
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x13 and the value of
hdr.sxd MUST equal 0x00.
cmgs (4 bytes): An unsigned integer that specifies the number of OLAP measure groups in the OLAP
measure group collection. MUST be equal to the number of SXCSXMg classes that are nested
inside this SxcSXMgs class.
cmaps (4 bytes): An unsigned integer that specifies the number of mappings between OLAP
measure groups and OLAP dimensions (1) in the OLAP measure group collection. Each mapping
is defined by an SXAddl_SXCSXMgs_SXDMGrpSXDHMap record. This value MUST be equal to the
number of SXAddl_SXCSXMgs_SXDMGrpSXDHMap records that follow this record.
2.4.273.96 SXAddl_SXCSXMgs_SXDMGrpSXDHMap
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved1
... reserved2
iKey
iVal
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x13 and the value of
hdr.sxd MUST equal 0x23.
iKey (4 bytes): An unsigned integer that specifies a zero-based index of an SXCSXMg class in the
collection of SXCSXMg classes. The SXAddl_SXCSXMg_SXDId record of the referenced SXCSXMg
class specifies an OLAP measure group in the measure group collection. MUST be less than the
value of the cmgs field of the SXAddl_SXCSXMgs_SXDId record of this SxcSXMgs class.
479 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iVal (4 bytes): An unsigned integer that specifies a zero-based index of the
SXAddl_SXCSXDH_SXDSxdh record in the collection of SXAddl_SXCSXDH_SXDSxdh records in the
SXCSXDH class of the containing SxcCache class of this record. The referenced record specifies an
OLAP dimension (1). MUST be less than the value of the dwCount field of the
SXAddl_SXCSXDH_SXDId record of the SXCSXDH class.
2.4.273.97 SXAddl_SXCSXrule_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0C and the value of
hdr.sxd MUST equal 0xFF.
2.4.273.98 SXAddl_SXCSXrule_SXDId
The SXAddl_SXCSXrule_SXDId record specifies information for a PivotTable rule, for the SXCSXrule
class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0C and the value of
hdr.sxd MUST equal 0x00.
2.4.273.99 SXAddl_SXCSXrule_SXDSXrule
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
480 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved1
...
A sxrtype B C D E F G H I J reserved4
... iDim
... isxvd
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x0C and the value of
hdr.sxd MUST equal 0x13.
sxrtype (4 bits): An unsigned integer that specifies the area of the PivotTable specified by this
PivotTable rule. MUST be a value from the following table:
Value Meaning
0x0
This rule applies to no area.
0x1 This rule applies to selected cells in the row area, column area, or data
area of the PivotTable report.
0x2 This rule applies to the data area of the PivotTable report.
0x3
This rule applies to the entire PivotTable report.
0x4 This rule applies to the blank cells at the logical top-left of the PivotTable
report.
0x5 This rule applies to a button shown next to a pivot field in the PivotTable
report.
0x6 This rule applies to the blank cells at the logical top-right of the
PivotTable report.
B - fPart (1 bit): A bit that specifies whether only a portion of the PivotTable area is included in this
rule. MUST be a value from the following table:
Value Meaning
0x0 The entire PivotTable area is included in the rule. The irwFirst, irwLast,
icolFirst, and icolLast fields are undefined and MUST be ignored.
0x1 A portion of the PivotTable area is included in the rule. The irwFirst,
irwLast, icolFirst, and icolLast fields hold the relative offset into the
PivotTable area included in this rule.
481 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fDataOnly (1 bit): A bit that specifies whether only the cells in the data area are included in this
PivotTable rule. If fLabelOnly is 1 then fDataOnly MUST be 0. If sxrtype is 0x2, the value of
this field value MUST be 1.
D - fLabelOnly (1 bit): A bit that specifies whether only cells in the page area, row area, or column
area are included in this PivotTable rule. If fDataOnly is 1 then fLabelOnly MUST be 0. If
sxrtype is 0x5 or 0x6, this value MUST be 1.
E - fGrandRw (1 bit): A bit that specifies whether cells in the grand total row are included in this
PivotTable rule.
F - fGrandCol (1 bit): A bit that specifies whether cells in the grand total column are included in this
PivotTable rule.
G - fGrandRwSav (1 bit): A bit that specifies whether cells in the grand total row are included in
this PivotTable rule. MUST be equal to fGrandRw.
I - fGrandColSav (1 bit): A bit that specifies whether cells in the grand total column are included in
this PivotTable rule. MUST be equal to fGrandCol.
J - fFuzzy (1 bit): A bit that specifies whether the pivot items of the pivot field specified by this rule
are treated as subtotals for the purposes of formatting when the pivot field is displayed in outline
mode.
L - fLineMode (1 bit): A bit that specifies whether the area of the PivotTable report specified by this
PivotTable rule is displayed in outline mode.
P - fDrillOnly (1 bit): A bit that specifies the sort order of the PivotTable rule filters specified by
csxfilt. MUST be a value from the following table:
Value Meaning
0x0 PivotTable rule filters are sorted by Pivot Field index as specified in Pivot
Fields.
0x1 PivotTable rule filters are sorted by position.
irwFirst (1 byte): A DRwByteU structure that specifies the difference between the index of the first
row of the range of cells included in this rule and the index of the first row of the PivotTable.
irwLast (1 byte): A DRwByteU structure that specifies the difference between the index of the last
row of the range of cells included in this rule and the index of the first row of the PivotTable. If
fPart is 1, MUST be greater than or equal to irwFirst.
482 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
icolFirst (1 byte): A DColByteU structure that specifies the difference between the index of the first
column of the range of cells included in this rule and the index of the first column of the
PivotTable.
icolLast (1 byte): A DColByteU structure that specifies the difference between the index of the last
column of the range of cells included in this rule and the index of the first column of the
PivotTable. If fPart is 1, MUST be greater than or equal to icolFirst.
csxfilt (4 bytes): An unsigned integer that specifies the number of SXAddl_SXCSXfilt_SXDId records
following this record. MUST be greater than or equal to 0. If sxrtype is not 0x1 or 0x2, this value
MUST be 0.
iDim (4 bytes): An signed integer that specifies the position of the pivot field within the PivotTable
axis for this PivotTable rule. If isxvd is 0xFFFFFFFE or 0xFFFFFFFF this field MUST be ignored. If
isxvd is between 0x00000000 and 0x000000FF, then the value of iDim depends on the value of
certain fields in the sxaxis structure in isxvd. The following table shows the values that iDim
MUST have given certain values of the specified fields of isxvd.sxaxis.
Value Meaning
isxvd.sxaxis.sxaxisRw is 1 The value of iDim MUST be greater than 0 and less than the number of
pivot fields on the row axis.
isxvd.sxaxis.sxaxisCol is 1 The value of iDim MUST be greater than 0 and less than the number of
pivot fields on the column axis.
isxvd.sxaxis.sxaxisPage is The value of iDim MUST be greater than 0 and less than the number of
1 pivot fields on the page axis.
isxvd.sxaxis.sxaxisData is The value of iDim MUST be greater than 0 and less than the number of
1 pivot fields on the data axis
isxvd (4 bytes): A signed integer that specifies the pivot field this rule refers to. MUST be a value
from the following table:
Value Meaning
0xFFFFFFFE This rule refers to the data field.
0xFFFFFFFF This rule does not refer to a pivot field.
0x0000000 This value specifies a pivot field index as specified in Pivot Fields. The pivot
to field index specifies which pivot field this rule refers to.
0x000000FF
MUST be greater than or equal to 0xFFFFFFFE and less than or equal to 0x000000FF. If the value
is greater than or equal to 0x00000000, MUST be less than the value of the cDim field of the
preceding SxView.
2.4.273.100 SXAddl_SXCView_SXDCalcMember
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C D E F reserved2
483 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... reserved3
stName (variable)
...
stMDXFormula (variable)
...
stMemberName (variable)
...
stSourceHierarchy (variable)
...
stParentUnqiue (variable)
...
wSolveOrder
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x03.
A - fParentUnique (1 bit): A bit that specifies whether stParentUnique exists. If the value is 1,
stParentUnique exists. If fSet is 1, this field MUST be zero.
B - fMemberName (1 bit): A bit that specifies whether stMemberName exists. If the value is 1,
stMemberName exists. If fSet is 1, this field MUST be zero; otherwise, this field MUST be 1.
C - fSourceHier (1 bit): A bit that specifies whether stSourceHierarchy exists. If the value is 1,
stSourceHierarchy exists. If fSet is 1, this field MUST be zero; otherwise, this field MUST be 1.
D - fLongFormula (1 bit): A bit that specifies whether the length of the user-specified MDX
expression that defines the calculation is greater than 255 characters.
Value Meaning
0 Length of the user-specified MDX expression is less than or equal to 255 characters and
stMDXFormula contains the MDX.
1 Length of the user-specified MDX expression is greater than 255 characters and the user-
specified MDX expression is written to a subsequent SXAddl_SXCView_SXDCalcMemString
record.
F - fSet (1 bit): A bit that specifies whether this calculation is for an OLAP named set.
484 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved3 (2 bytes): MUST be zero, and MUST be ignored.
stName (variable): An XLUnicodeString structure that specifies the MDX unique name of this OLAP
calculated member. The length of this field MUST be greater than 0 characters and less than or
equal to 255 characters.
stMemberName (variable): An XLUnicodeString structure that specifies the name of this OLAP
calculated member. If fMemberName is 0, this field does not exist. If fMemberName is 1, the
length of this field MUST be less than or equal to 255 characters.
stSourceHierarchy (variable): An XLUnicodeString structure that specifies the MDX unique name of
the OLAP hierarchy that this OLAP calculated member is associated with. If fSourceHier is zero
this field does not exist. If fSourceHier is 1 then the length of this field MUST be less than or
equal to 255 characters.
stParentUnqiue (variable): An XLUnicodeString structure that specifies the MDX unique name of
the parent member (2) that this OLAP calculated member is associated with. If fParentUnique
is zero this field does not exist. If fParentUnique is 1 then the length of this field MUST be less
than or equal to 255 characters.
wSolveOrder (4 bytes): An unsigned integer that specifies the calculation order when there are
multiple OLAP calculated members. The calculation order goes from lowest wSolveOrder value to
highest. If the value is zero the calculation order is determined by the OLAP data provider.
2.4.273.101 SXAddl_SXCView_SXDCalcMemString
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x0A.
2.4.273.102 SXAddl_SXCView_SXDCompactColHdr
The SXAddl_SXCView_SXDCompactColHdr record specifies the column area caption string used in
the compact PivotTable layout for a PivotTable view, for an SxcView class.
485 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x22.
stHeader (variable): An SXAddl_SXString structure that specifies the caption displayed in the
column area of the compact PivotTable layout. The length MUST be less than or equal to 255
characters.
2.4.273.103 SXAddl_SXCView_SXDCompactRwHdr
The SXAddl_SXCView_SXDCompactRwHdr record specifies the row area caption string used in the
compact PivotTable layout for a PivotTable view, for an SxcView class.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x21.
stHeader (variable): An SXAddl_SXString structure that specifies the caption displayed in the row
area of the compact PivotTable layout. The length MUST be less than or equal to 255 characters.
2.4.273.104 SXAddl_SXCView_SXDEnd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0xFF.
486 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.105 SXAddl_SXCView_SXDId
The SXAddl_SXCView_SXDId record specifies how an SxcView class is associated with other records
for a PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x00.
stName (variable): An SXAddl_SXString structure that specifies the PivotTable view that this
SxcView class applies to. The corresponding SxView record of this PivotTable view is the SxView
record, in this Worksheet substream, with its stTable field equal to the value of this field. If there
exists no such SxView record then this SxcView class MUST be ignored.
2.4.273.106 SXAddl_SXCView_SXDSXPIIvmb
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
isxpi
ivmb
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x36.
isxpi (4 bytes): An unsigned integer that specifies the index of the entry on the page axis. MUST be
greater than or equal to zero and less than the value of the cDimPg field of the SxView record of
the PivotTable view.
ivmb (4 bytes): An unsigned integer that specifies the zero-based index of the MDB record in the
sequence of records that conforms to the MDBLOCK rule. The referenced MDB specifies the value
metadata. MUST be greater than or equal to zero and less than the count of MDB records.
487 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.273.107 SXAddl_SXCView_SXDTableStyleClient
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved1
...
...
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x1E.
B - fLastColumn (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000004 are applied to the PivotTable view.
C - fRowStrips (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000005 or 0x00000006 are applied to the
PivotTable view.
D - fColumnStrips (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000007 or 0x00000008 are applied to the
PivotTable view.
E - fRowHeaders (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000003, 0x00000017, 0x00000018, or
0x00000019 are applied to the PivotTable view.
F - fColumnHeaders (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000001, 0x00000014, 0x00000015, or
0x00000016 are applied to the PivotTable view.
G - fDefaultStyle (1 bit): A bit that specifies whether to apply the default TableStyle to the
PivotTable view.
stName (variable): An LPWideString structure that specifies the name of the TableStyle applied to
the PivotTable view. The length MUST be greater than zero and less than or equal to 255
characters.
2.4.273.108 SXAddl_SXCView_SXDVer10Info
488 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... bVerSxMacro A B C D E F G H
I J unused reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x02.
bVerSxMacro (1 byte): A DataFunctionalityLevel structure that specifies the data functionality level
that this PivotTable was created with. SHOULD<129> be less than 3 if the PivotCache functionality
level of the associated PivotCache is less than 3. MUST be greater than or equal to 3 if the
PivotCache functionality level of the associated PivotCache is greater than or equal to 3.
A - fDisplayImmediateItems (1 bit): A bit that specifies whether pivot items are displayed in the
PivotTable view even when there is no pivot field on the data axis. If bVerSxMacro is greater
than or equal to 3 then this value MUST be 1.
B - fEnableDataEd (1 bit): A bit that specifies whether the user is allowed to change values in the
data axis of the PivotTable view.
C - fDisableFList (1 bit): A bit that specifies whether the PivotTable field list is disabled.
D - fReenterOnLoadOnce (1 bit): A bit that specifies whether the PivotTable view is recalculated
the next time the workbook is opened.
Value Meaning
0 OLAP calculated members are not hidden.
1 OLAP calculated members are hidden.
F - fNotVisualTotals (1 bit): A bit that specifies whether grand totals and subtotals in an OLAP
PivotTable view include the values of hidden OLAP members.
Value Meaning
0 Hidden OLAP members are not included in grand totals and subtotals.
1 Hidden OLAP members are included in grand totals and subtotals.
G - fPageMultipleItemLabel (1 bit): A bit that specifies what text is displayed in a cell in the page
area when a non-OLAP data source has one or more hidden pivot items.
Value Meaning
489 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0 Show text indicating that all items are displayed.
1 If the data source has one or more hidden pivot items, show text indicating that not all
items are displayed, otherwise show text indicating that all items are displayed.
H - fTensorFillCv (1 bit): A bit that specifies whether the fill color retrieved from the OLAP data
source is used in the PivotTable view.
Value Meaning
0 The fill color from the OLAP data source is not used.
1 If the data source is OLAP and the fill color is available from the OLAP data source, then the
fill color is used.
I - fHideDDData (1 bit): A bit that specifies whether the control for selecting the pivot items to be
displayed in the PivotTable view is hidden.
2.4.273.109 SXAddl_SXCView_SXDVer12Info
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... A B C D E F G H I J K reserved2
hdr (6 bytes): An SXAddlHdr structure. The value of hdr.sxc MUST equal 0x00 and the value of
hdr.sxd MUST equal 0x19.
A - fDefaultCompact (1 bit): A bit that specifies whether new pivot fields added to the PivotTable
view are in compact axis mode by default.
B - fDefaultOutline (1 bit): A bit that specifies whether new pivot fields added to the PivotTable
view are displayed in outline format by default.
C - fOutlineData (1 bit): A bit that specifies whether the data field is displayed in outline format.
See Subtotalling for more information.
D - fCompactData (1 bit): A bit that specifies whether the data field is displayed in compact axis
mode. See PivotTable Layout for more information.
490 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
E - fNewDropZones (1 bit): A bit that specifies whether the application allows dragging within the
PivotTable field list.
F - fPublished (1 bit): A bit that specifies whether this PivotTable is marked as having already been
published to a server-based application. This bit is ignored if the fPublishedBookItems field of
the BookExt_Conditional12 structure is zero.
G - fTurnOffImmersive (1 bit): A bit that specifies whether a user interface for manipulating
PivotTable options is displayed.
Value Meaning
0 A user interface for manipulating PivotTable options is displayed.
1 A user interface for manipulating PivotTable options is not displayed.
H - fSingleFilterPerField (1 bit): A bit that specifies whether this PivotTable can have multiple
filters per field.
Value Meaning
0 The PivotTable can have many filters per field.
1 The PivotTable can have a maximum of one filter per field.
I - fNonDefaultSortInFlist (1 bit): A bit that specifies whether PivotTable fields are sorted in the
PivotTable field list.
Value Meaning
0 PivotTable fields are not sorted in the PivotTable field list.
1 PivotTable fields are sorted in the PivotTable field list.
K - fDontUseCustomLists (1 bit): A bit that specifies whether to use custom lists when sorting the
PivotTable.
Value Meaning
0 Custom lists are used when sorting the PivotTable.
1 Custom lists are not used when sorting the PivotTable.
L - fHideDrillIndicators (1 bit): A bit that specifies whether the expand/collapse buttons are
hidden in the PivotTable view.
491 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
M - fPrintDrillIndicators (1 bit): A bit that specifies whether the expand/collapse buttons are
printed.
N - fMemPropsInTips (1 bit): A bit that specifies whether OLAP member properties are displayed
in ToolTips.
O - fNoPivotTips (1 bit): A bit that specifies whether ToolTips are displayed on cells in the
PivotTable view.
Value Meaning
0 ToolTips are displayed on cells in the PivotTable view.
1 ToolTips are not displayed on cells in the PivotTable view.
cIndentInc (7 bits): An unsigned integer that specifies the number of characters to indent row
labels by when compact axis mode is used. See PivotTable Layout for more information.
P - fNoHeaders (1 bit): A bit that specifies whether field captions are displayed in the PivotTable
layout.
Value Meaning
0 Field captions are displayed in the PivotTable layout.
1 Field captions are not displayed in the PivotTable layout.
2.4.273.110 SXAddl_SXCView_SXDVerUpdInv
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
data
...
...
data (12 bytes): An SXAddl_SXDVerUpdInv structure. The value of data.hdr.sxc MUST equal 0x00
and the value of data.hdr.sxd MUST equal 0x01. The value of data.dwVersionInvalidates
MUST equal 0x0002 or 0x00FF.
If the value of data.dwVersionInvalidates is not 0x00FF and is greater than or equal to the
value of the VerSxLastUpdated field of the QsiSXTag record of this PivotTable view, the following
records of this SXCView class, including nested classes or until another
SXAddl_SXCView_SXDVerUpdInv record is encountered, MUST be ignored.
492 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.274 SxBool
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
bool
bool (2 bytes): A Boolean (section 2.5.14) that specifies the record value.
2.4.275 SXDB
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
crdbdb
idstm A B C D E F unused1
unused2 cfdbdb
cfdbTot crdbUsed
vsType cchWho
rgb (variable)
...
crdbdb (4 bytes): A signed integer that specifies the number of cache records for this PivotCache.
MUST be greater than or equal to 0. MUST be 0 for OLAP PivotCaches. MUST be ignored if
fSaveData is 0.
idstm (2 bytes): An unsigned integer that specifies the stream that contains the data for this
PivotCache. MUST be equal to the value of the idstm field of the SXStreamID record that specifies
the PivotCache stream that contains this record.
A - fSaveData (1 bit): A bit that specifies whether cache records exist. MUST be 0 for OLAP
PivotCaches.
B - fInvalid (1 bit): A bit that specifies whether the cache records are in the not-valid state. MUST
be equal to 1 if the PivotCache functionality level is greater than or equal to 3. MUST be equal to 1
for OLAP PivotCaches. See cache records for more information.
C - fRefreshOnLoad (1 bit): A bit that specifies whether the PivotCache is refreshed on load.
D - fOptimizeCache (1 bit): A bit that specifies whether optimization is applied to the PivotCache to
reduce memory usage. MUST be 0 and MUST be ignored for a non-ODBC PivotCache.
E - fBackgroundQuery (1 bit): A bit that specifies whether the query used to refresh the
PivotCache is executed asynchronously. MUST be ignored if vsType not equals 0x0002.
493 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
F - fEnableRefresh (1 bit): A bit that specifies whether refresh of the PivotCache is enabled. MUST
be equal to 0 if the PivotCache functionality level is greater than or equal to 3. MUST be equal to 0
for OLAP PivotCaches.
cfdbdb (2 bytes): A signed integer that specifies the number of cache fields that corresponds to the
source data. MUST be greater than or equal to 0.
cfdbTot (2 bytes): A signed integer that specifies the number of cache fields in the PivotCache.
MUST be greater than or equal to 0.
crdbUsed (2 bytes): An unsigned integer that specifies the number of records used to calculate the
PivotTable report. Records excluded by PivotTable view filtering are not included in this value.
MUST be 0 for OLAP PivotCaches.
vsType (2 bytes): An unsigned integer that specifies the type of source data. MUST be equal to the
value of the sxvs field of the SXVS record that follows the SXStreamID record that specifies the
PivotCache stream that contains this record.
cchWho (2 bytes): An unsigned integer that specifies the number of characters in rgb. MUST be
equal to 0xFFFF, or MUST be greater than or equal to 1 and less than or equal to 0x00FF.
rgb (variable): An optional XLUnicodeStringNoCch structure that specifies the name of the user who
last refreshed the PivotCache. MUST exist if and only if the value of cchWho is not equal to
0xFFFF. If this field exists, the length MUST equal cchWho. The length of this value MUST be less
than 256 characters. The name is an application-specific setting that is not necessarily related to
the User Names Stream ABNF.
2.4.276 SXDBB
The SXDBB record specifies the values of all the cache fields that have a fAllAtoms field of the
SXFDB record equal to 1 and that correspond to source data entities, as specified by cache fields, for a
single cache record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
blob (variable)
...
blob (variable): An array of 1-byte and 2-byte unsigned integers that specifies indexes to cache
items of cache fields that correspond to source data entities, as specified by cache fields, that
have an fAllAtoms field of the SXFDB record equal to 1. The order of the indexes specified in the
array corresponds to the order of the cache fields as they appear in the PivotCache. Each unsigned
integer specifies a zero-based index of a record in the sequence of records that conforms to the
SRCSXOPER rule of the associated cache field. The referenced record from the SRCSXOPER rule
specifies a cache item that specifies a value for the associated cache field. If the fShortIitms field
of an SXFDB record of the cache field equals 1, the index value for this cache field is stored in this
field in two bytes; otherwise, the index value is stored in this field in a single byte.
2.4.277 SXDBEx
494 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numDate
...
cSxFormula
numDate (8 bytes): A DateAsNum structure that specifies the date and time on which the
PivotCache was created or last refreshed.
cSxFormula (4 bytes): An unsigned integer that specifies the count of SXFormula records for this
cache.
2.4.278 SXDI
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
isxvdData iiftab
df isxvd
isxvi ifmt
...
isxvdData (2 bytes): A signed integer that specifies a pivot field index as specified in Pivot Fields.
If the PivotTable view is a non-OLAP PivotTable view, the values in the source data associated with
the associated cache field of the referenced pivot field are aggregated as specified in this record.
If the PivotTable view is an OLAP PivotTable view, the associated pivot hierarchy of the referenced
pivot field specifies the OLAP measure for this data item and the iiftab field is ignored. See
Association of Pivot Hierarchies and Pivot Fields and Cache Fields to determine the associated
pivot hierarchy.
MUST be greater than or equal to zero and less than the value of the cDim field of the preceding
SxView record.
The value of the sxaxis.sxaxisData field of the Sxvd record of the referenced pivot field MUST be
1.
Value Meaning
0x0000 Sum of values
0x0001 Count of values
495 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0002 Average of values
0x0003 Max of values
0x0004 Min of values
0x0005 Product of values
0x0006 Count of numbers
0x0007 Statistical standard deviation (sample)
0x0008 Statistical standard deviation (population)
0x0009 Statistical variance (sample)
0x000A Statistical variance (population)
df (2 bytes): A signed integer that specifies the calculation used to display the value of this data
item.
Value Meaning
0x0000 The data item value is displayed.
0x0001 Display as the difference between this data item value and the value of the
pivot item specified by isxvi.
0x0002 Display as a percentage of the value of the pivot item specified by isxvi.
0x0003 Display as a percentage difference from the value of the pivot item
specified by isxvi.
0x0004 Display as the running total for successive pivot items in the pivot field
specified by isxvd.
0x0005 Display as a percentage of the total for the row containing this data item.
0x0006 Display as a percentage of the total for the column containing this data
item.
0x0007 Display as a percentage of the grand total of the data item.
0x0008 Calculate the value to display using the following formula:
((this data item value) * (grand total of grand totals)) / ((row grand
total) * (column grand total))
isxvd (2 bytes): A signed integer that specifies a pivot field index as specified in Pivot Fields. The
referenced pivot field is used in calculations as specified by the df field.
If df is 0x0001, 0x0002, 0x0003, or 0x0004 then the value of isxvd MUST be greater than or
equal to zero and less than the value of the cDim field in the preceding SxView record. Otherwise,
the value of isxvd is undefined and MUST be ignored.
isxvi (2 bytes): A signed integer that specifies the pivot item used by df.
If df is 0x0001, 0x0002, or 0x0003 then the value of this field MUST be a value from the following
table:
Value Meaning
0 to 0x7EFE A pivot item index, as specified by Pivot Items, that specifies a pivot item in the pivot
field specified by isxvd. MUST be less than the cItm field of the Sxvd record of the
pivot field specified by isxvd.
0x7FFB The previous pivot item in the pivot field specified by isxvd.
0x7FFC The next pivot item in the pivot field specified by isxvd.
496 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Otherwise, the value is undefined and MUST be ignored.
ifmt (2 bytes): An IFmt structure that specifies the number format for this item.
cchName (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stName field. If the value is 0xFFFF then stName does
not exist. Otherwise, the value MUST be greater than zero and less than or equal to 0x00FF.
MUST NOT be 0xFFFF when the PivotCache functionality level is less than 3, or for non-OLAP
PivotTable view .
stName (variable): An XLUnicodeStringNoCch structure that specifies the name of this data item. A
value that is not NULL specifies that this string is used to override the name in the corresponding
cache field.
MUST NOT exist if cchName is 0xFFFF. Otherwise, MUST exist and the length MUST equal
cchName.
If this string is not NULL and the PivotTable view is a non-OLAP PivotTable view, this field MUST be
unique within all SXDI records in this PivotTable view.
2.4.279 SXDtr
The SXDtr record specifies a cache item or a value in the PivotCache that is an instance in time,
expressed as a date and time of day.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
yr mon
yr (2 bytes): An unsigned integer that specifies the year component of the date. MUST be greater
than or equal to 1900 and MUST be less than or equal to 9999. If dom is 0, yr MUST be 1900.
mon (2 bytes): An unsigned integer that specifies the month component of the date. MUST be
greater than or equal to 1, and MUST be less than or equal to 12. If dom is equal to 0, mon
MUST be equal to 1.
dom (1 byte): An unsigned integer that specifies the day of month component of the date. MUST be
greater than or equal to 0 and MUST be less than or equal to 31.
hr (1 byte): An unsigned integer that specifies the hour component of the time of day. MUST be less
than or equal to 23.
min (1 byte): An unsigned integer that specifies the minute component of the time of day. MUST be
less than or equal to 59.
sec (1 byte): An unsigned integer that specifies the second component of the time of day. MUST be
less than or equal to 59.
2.4.280 SxDXF
497 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dxf (variable)
...
2.4.281 SxErr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wbe
wbe (2 bytes): An unsigned integer that specifies the error record value. MUST be a value from the
following table<130>:
Value Meaning
0x00 #NULL!
0x07 #DIV/0!
0x0F #VALUE!
0x17 #REF!
0x1D #NAME?
0x24 #NUM!
0x2A #N/A
2.4.282 SXEx
The SXEx record specifies additional properties of a PivotTable view and specifies the beginning of a
collection of records as defined by the Worksheet substream ABNF. The collection of records specifies
selection and formatting properties for the PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
csxformat cchErrorString
cchNullString cchTag
csxselect crwPage
D E F G H I J K reserved3 cchPageFieldStyle
cchTableStyle cchVacateStyle
498 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stError (variable)
...
stDisplayNull (variable)
...
stTag (variable)
...
stPageFieldStyle (variable)
...
stTableStyle (variable)
...
stVacateStyle (variable)
...
csxformat (2 bytes): An unsigned integer that specifies the number of SxFormat records that follow
this record. MUST be less than or equal to 0xFFFF.
cchErrorString (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stError field. If the value is 0xFFFF, then stError does not
exist. MUST be 0xFFFF or MUST be greater than zero and less than or equal to 0x00FF.
cchNullString (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stDisplayNull field. If the value is 0xFFFF, then
stDisplayNull does not exist. MUST be 0xFFFF or MUST be greater than zero and less than or
equal to 0x00FF.
cchTag (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stTag field. If the value is 0xFFFF, then stTag does not
exist. MUST be 0xFFFF or MUST be greater than zero and less than or equal to 0x00FF.
csxselect (2 bytes): An unsigned integer that specifies the number of SxSelect records that follow
this record. MUST be less than or equal to 0xFFFF.
crwPage (2 bytes): A DRw structure that specifies the number of rows in the page area (see
Location and Body) of the PivotTable view.
ccolPage (2 bytes): A DCol structure that specifies the number of columns in the page area (see
Location and Body) of the PivotTable view.
A - fAcrossPageLay (1 bit): A bit that specifies how pivot fields are laid out in the page area (see
Location and Body) when there are multiple pivot fields on the page axis. MUST be a value from
the following table:
499 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0 Pivot fields are displayed in the page area from the top to the bottom first, as fields are added, before
moving to another column.
0x1 Pivot fields are displayed in the page area from left to right first, as fields are added, before moving to
another row.
cWrapPage (8 bits): An unsigned integer that specifies the number of pivot fields in the page area
(see Location and Body) to display before moving to another row or column, as specified by
fAcrossPageLay.
MUST be less than or equal to 0xFF. A value of 0 means that no wrap is allowed.
D - fEnableWizard (1 bit): A bit that specifies whether a wizard user interface is displayed to work
with the PivotTable view.
E - fEnableDrilldown (1 bit): A bit that specifies whether details can be shown for cells in the data
area, as specified by PivotTable Layout.
F - fEnableFieldDialog (1 bit): A bit that specifies whether a user interface for setting properties of
a pivot field can be displayed.
G - fPreserveFormatting (1 bit): A bit that specifies whether formatting is preserved when the
PivotTable view is recalculated.
If the value is 1, csxformat MUST be 0 and there MUST be no SxFormat records following this
record.
H - fMergeLabels (1 bit): A bit that specifies whether empty cells adjacent to the cells displaying
pivot item captions of pivot fields on the row axis and column axis of the PivotTable view are
merged into a single cell with center-aligned text.
I - fDisplayErrorString (1 bit): A bit that specifies whether the PivotTable view displays the custom
error string stError in cells that contain errors.
J - fDisplayNullString (1 bit): A bit that specifies whether the PivotTable view displays the custom
string stDisplayNull in cells that contain NULL values.
cchPageFieldStyle (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stPageFieldStyle field. If the value is 0xFFFF, then
stPageFieldStyle does not exist.
MUST be 0xFFFF or MUST be greater than zero and less than or equal to 0x00FF.
500 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchTableStyle (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stTableStyle field. If the value is 0xFFFF, then
stTableStyle does not exist.
MUST be 0xFFFF or MUST be greater than zero and less than or equal to 0x00FF.
cchVacateStyle (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the stVacateStyle field. If the value is 0xFFFF, then
stVacateStyle does not exist.
MUST be 0xFFFF or MUST be greater than zero and less than or equal to 0x00FF.
stTag (variable): An XLUnicodeStringNoCch structure that specifies a custom string saved with the
PivotTable view. The length is specified in cchTag.
stTableStyle (variable): An XLUnicodeStringNoCch structure that specifies the style used in the
body of the PivotTable view. The style is specified by the StyleExt record with its stName field
equal to this field's value. If cchTableStyle is 0xFFFF or less than 1, no style is applied. The
length is specified in cchTableStyle.
2.4.283 SXFDB
The SXFDB record specifies properties for a cache field within a PivotCache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M N O P ifdbParent
501 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ifdbBase citmUnq
csxoper cisxoper
...
A - fAllAtoms (1 bit): A bit that specifies whether this cache field has a collection of cache items. If
fSomeUnhashed is equal to 1, this value MUST be equal to 0.
B - fSomeUnhashed (1 bit): Undefined, and MUST be ignored. If the fAllAtoms field is equal to 1,
MUST be equal to 0.
D - fHasParent (1 bit): A bit that specifies whether ifdbParent specifies a reference to a parent
grouping cache field. For more information, see Grouping. If the fCalculatedField field is equal to
1, then this field MUST be equal to 0.
E - fRangeGroup (1 bit): A bit that specifies whether this cache field is grouped by using numeric
grouping or date grouping, as specified by Grouping. If this field is equal to 1, then this record
MUST be followed by a sequence of SXString records, as specified by the GRPSXOPER rule. The
quantity of SXString records is specified by csxoper. If this field is equal to 1, then this record
MUST be followed by a sequence of records that conforms to the SXRANGE rule that specifies the
grouping properties for the ranges of values.
F - fNumField (1 bit): A bit that specifies whether the cache items in this cache field contain at least
one numeric cache item, as specified by SXNum. If fDateInField is equal to 1, this field MUST be
equal to 0.
H - fTextEtcField (1 bit): A bit that specifies whether the cache items contain text data. If
fNumField is 1, this field MUST be ignored.
I - fnumMinMaxValid (1 bit): A bit that specifies whether a valid minimum or maximum value can
be computed for the cache field. MUST be equal to 1 if fDateInField or fNumField is equal to 1.
J - fShortIitms (1 bit): A bit that specifies whether there are more than 255 cache items in this
cache field. If catm is greater than 255, this value MUST be equal to 1; otherwise it MUST be 0.
K - fNonDates (1 bit): A bit that specifies whether the cache items in this cache field contain values
that are not time or date values. If this cache field is a grouping cache field, as specified by
Grouping, then this field MUST be ignored. Otherwise, if fDateInField is equal to 1, then this field
MUST be 0.
L - fDateInField (1 bit): A bit that specifies whether the cache items in this cache field contain at
least one time or date cache item, as specified by SXDtr. If fNonDates is equal to 1, then this
field MUST be equal to 0.
N - fServerBased (1 bit): A bit that specifies whether this cache field is a server-based page field
when the corresponding pivot field is on the page axis of the PivotTable view, as specified in
source data.
502 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This value applies only to an ODBC PivotCache. MUST NOT be equal to 1 if
fCantGetUniqueItems is equal to 1. If fCantGetUniqueItems is equal to 1, then the ODBC
connection cannot provide a list of unique items for the cache field.
O - fCantGetUniqueItems (1 bit): A bit that specifies whether a list of unique values for the cache
field was not available while refreshing the source data. This field applies only to a PivotCache that
uses ODBC source data and is intended to be used in conjunction with optimization features. For
example, the application can optimize memory usage when populating PivotCache records if it has
a list of unique values for a cache field before all the records are retrieved from the ODBC
connection. Or, the application can determine the appropriate setting of fServerBased based on
this value.
P - fCalculatedField (1 bit): A bit that specifies whether this field is a calculated field. The formula
(section 2.2.2) of the calculated field is stored in a directly following SXFormula record. If
fHasParent is equal to 1, this field MUST be equal to 0.
ifdbParent (2 bytes): An unsigned integer that specifies the cache field index, as specified by Cache
Fields, of the grouping cache field for this cache field. MUST be greater than or equal to 0x0000
and less than the cfdbTot field of the SXDB record of this PivotCache. If fHasParent is equal to
0, then this field MUST be ignored. If fHasParent is equal to 1, and fRangeGroup is equal to 1,
and the iByType field of the SXRng record of this cache field is greater than 0, then the
fRangeGroup of the SXFDB record of the cache field specified by ifdbParent MUST be 1 and the
iByType field of the SXRng record of the cache field specified by ifdbParent MUST be greater
than the iByType field of the SXRng record of this cache field.
ifdbBase (2 bytes): An unsigned integer that specifies the cache field index, as specified by Cache
Fields, of the base cache field, as specified by Grouping, for the cache field specified by this
record. MUST be greater than or equal to 0x0000 and less than the value of the cfdbdb field of
the SXDB record of this PivotCache. If the cache field specified by this record is not a grouping
cache field, then this field MUST be ignored.
csxoper (2 bytes): An unsigned integer that specifies the number of cache items in this cache field
when this cache field is a grouping cache field, as specified by Grouping. There MUST be an
equivalent number of sequences of records that conform to the GRPSXOPER rule following this
record that specify the cache items. If the fRangeGroup field and the fCalculatedField field are
equal to 0 and this cache field corresponds to a source data entity, this field MUST be equal to 0.
If the fRangeGroup field is equal to 1, this value MUST be greater than or equal to 1.
cisxoper (2 bytes): An unsigned integer that specifies the number of cache items in the base cache
field that are grouped by this cache field. There MUST be an equivalent number of SxIsxoper
records following this record that specify which cache item in this cache field groups each of the
cache items in the base cache field. For more information, see Grouping.
catm (2 bytes): An unsigned integer that specifies the number of cache items in the collection
sequences of records that conform to the SRCSXOPER rule in this cache field. If fAllAtoms is 0,
then this field MUST be equal to 0x0000. If this cache field corresponds to source data entities
then there MUST be an equal number of SRCSXOPER rules in this cache field.
stFieldName (variable): An XLUnicodeString structure that specifies the name of the cache field.
MUST be less than or equal to 255 characters long.
503 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.284 SXFDBType
The SXFDBType record specifies the type of data contained in this cache field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wTypeSql
wTypeSql (2 bytes): An ODBCType structure that specifies the ODBC data type as returned by the
ODBC provider of the data in this cache field.
2.4.285 SxFilt
See SxRule for more information about PivotTable views that this record applies to.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E iDim isxvd F G H
grbitSbt cisxvi
A - sxaxisRw (1 bit): A bit that specifies whether this filter refers to the row axis. MUST be zero if
sxaxisCol is 1, if sxaxisPage is 1, or if sxaxisData is 1.
B - sxaxisCol (1 bit): A bit that specifies whether this filter refers to the column axis. MUST be zero
if sxaxisRw is 1, if sxaxisPage is 1, or if sxaxisData is 1.
C - sxaxisPage (1 bit): A bit that specifies whether this filter refers to the page axis. MUST be zero
if sxaxisRw is 1, if sxaxisCol is 1, or if sxaxisData is 1.
D - sxaxisData (1 bit): A bit that specifies whether this filter refers to the value axis. MUST be zero
if sxaxisRw is 1, if sxaxisCol is 1, or if sxaxisPage is 1.
iDim (10 bits): A signed integer that specifies the zero-based position of the PivotTable field within
the PivotTable axis specified by sxAxis. MUST be greater than or equal to 0 and less than or equal
to 31.
isxvd (10 bits): A signed integer that specifies the data field, pivot field, or cache field that this filter
refers to. MUST be greater than or equal to 0 and less than or equal to 255 or equal to -2. MUST
be a value from the following table:
Value of the
fCacheBased
field of the
preceding SxRule
Value record Meaning
-2 MUST be 0 Specifies that this rule refers to the data field.
A value 0 Specifies a pivot field index as specified by pivot fields. The pivot
greater than field index specifies which pivot field is referenced by this filter.
or equal to
zero
504 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of the
fCacheBased
field of the
preceding SxRule
Value record Meaning
A value 1 Specifies a cache field index as specified by cache fields. The
greater than cache field index specifies which cache field is referenced by this
or equal to filter.
zero
F - fSelected (1 bit): A bit that specifies whether the header of the PivotTable field this filter refers
to is included in the PivotTable rule that this record belongs to.
grbitSbt (2 bytes): A signed integer that specifies the set of subtotals used in this filter. MUST be
one of the following bits, or a combination of the following bits. DEFAULT MUST be combined only
with DATA, BLANK, or both.
Bits Meaning
0x0001 DATA
0x0002 DEFAULT
0x0004 SUM
0x0008 COUNTA
0x0010 AVERAGE
0x0020 MAX
0x0040 MIN
0x0080 PRODUCT
0x0100 COUNT
0x0200 STDEV
0x0400 STDEVP
0x0800 VAR
0x1000 VARP
0x4000 BLANK
cisxvi (2 bytes): An unsigned integer that specifies the number of indexes in the SxItm record that
follows this record.
2.4.286 SxFmla
The SxFmla record specifies a PivotParsedFormula and specifies the beginning of a collection of
records as defined by the pivot cache storage ABNF. The collection of records specifies the PivotTable
calculated field or calculated item formula (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
formula (variable)
505 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
2.4.287 SxFormat
The SxFormat record specifies the beginning of a collection of records as defined by the Worksheet
substream ABNF. The collection of records specifies the differential formatting and specifies a
PivotRule that specifies the area of the PivotTable view to apply the formatting to.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rlType (4 bits): A Boolean (section 2.5.14) that specifies whether formatting was applied to the
PivotTable view. MUST be a value from the following table:
Value Description
0x0000 The formatting was cleared.
0x0001 The formatting was applied.
cbData (2 bytes): An unsigned integer that specifies the number of bytes in the SxDXF record that
follows this record. MUST be zero if rlType is zero. If this field is zero then zero SxDXF records
MUST follow this record.
2.4.288 SXFormula
The SXFormula record specifies the cache field that a calculated item formula (section 2.2.2) applies
to. The calculated item formula is stored in the last SxFmla record preceding this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved ifdb
ifdb (2 bytes): A signed integer that specifies the cache field index as specified in Cache Fields. The
cache field index specifies which cache field the calculated item formula applies to. MUST be
greater than or equal to -1. If the value is -1, the calculated item formula applies to all cache
fields. If the cache field is a source field, the value MUST be equal to the value of isxvd in the last
SxRule record preceding this record.
2.4.289 SXInt
506 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
2.4.290 SxIsxoper
The SxIsxoper record specifies the mapping between cache items in a cache field and cache items in
a grouping cache field for discrete grouping, as specified by Grouping. The grouping cache field is
specified by the SXFDB record preceding this record. The value of the fRangeGroup field of the
SXFDB record MUST be 0 and the value of the csxoper field of the SXFDB record MUST be greater
than 0. This record immediately follows the collection of records that specifies cache item values for
the SXFDB record as defined in the PivotCache Storage part ABNF.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgSxIsxoper (variable)
...
rgSxIsxoper (variable): An array of 2-byte unsigned integers. Each element of the array
corresponds to a cache item in the cache field being grouped by the grouping cache field. The
value of each element specifies the index of the cache item, as specified by Cache Items, in the
grouping cache field that the cache item in the cache field is grouped under.
The count of elements in the array MUST be equal to the value of the cisxoper field of the SXFDB
record preceding this record and is identical to the number of cache items in the cache field being
grouped. The value of each element MUST be less than the total number of cache items in the
grouping cache field.
2.4.291 SxItm
The SxItm record specifies references to pivot items, data items, or cache items as part of a
PivotTable rule filter.
If this record exists, the cisxvi field of the preceding SxFilt MUST be greater than 0.
See SxRule for more information about PivotTable views that this record applies to.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgisxvi (variable)
...
rgisxvi (variable): An array of 2-byte unsigned integers that specifies pivot items, data item, or
cache items associated with ranges of cells included in the PivotTable rule. The array MUST be
sorted in ascending order. The size of the array MUST be equal to the value of the cisxvi field of
the preceding SxFilt record. Each unsigned 2-byte integer in the array MUST be less than or equal
to 32500, or equal to 32767. The value 32767 specifies that there is no associated pivot item,
507 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
data item, or cache item with the index. For more information, see PivotTable Rules. The meaning
of this field is specified in the following table:
2.4.292 SxIvd
An array of SxIvdRw specifies all items for the row axis of the PivotTable view. An array of SxIvdCol
specifies all items on column axis of the PivotTable view.
Two or fewer records of this type appear in the file depending on the values of the cDimRw and
cDimCol fields of the SxView record of the PivotTable view.
If the cDimRw and cDimCol fields of the SxView record are both greater than zero, then two records
of this type appear in the file for the PivotTable view. The first record is an array of SxIvdRw and the
second record is an array of SxIvdCol.
If the value of the cDimRw field of the SxView record is greater than zero and the value of the
cDimCol field of the SxView record is equal to zero, then only one record of this type appears in the
file for the PivotTable view and it is an array of SxIvdRw.
If the value of the cDimCol field of the SxView record is greater than zero and the value of the
cDimRw field of the SxView record is equal to zero, then only one record of this type appears in the
file for the PivotTable view and it is an array of SxIvdCol.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgSxivd (variable)
...
If this is an array of SxIvdRw, the count of elements in the array MUST equal the value of the
cDimRw field of the SxView record.
508 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If this is an array of SxIvdCol, the count of elements in the array MUST equal the value of the
cDimCol field of the SxView record.
2.4.293 SXLI
The SXLI record specifies pivot lines for the row area or column area of a PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgsxli (variable)
...
Zero or two records of this type appear in the file for each PivotTable view depending on the values of
the cRw and cCol fields of the associated SxView record.
If the value of either of the cRw or cCol fields of the associated SxView is greater than zero, then two
records of this type MUST exist in the file for the associated SxView. The first record contains row area
pivot lines and the second record contains column area pivot lines.
The count of SXLIItem structures in rgsxli, which are row area pivot lines, MUST equal the cRw field
of SxView.
The count of SXLIItem structures in rgsxli, which are column area pivot lines, MUST equal the cCol
field of SxView.
The associated SxView record is the SxView record of the PivotTable view.
2.4.294 SxName
The SxName record specifies information used for a calculated field or calculated item and that
specifies the beginning of a collection of records as specified by the pivot cache storage ABNF. When
used for a calculated field, this record specifies the index of a cache field used in a calculated field
formula (section 2.2.2). When used for a calculated item, this record is followed by a collection of
SxPair records that specify a pivot item used in a calculated item formula (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B unused2 ifdb
ifn csxpair
B - fErrName (1 bit): A bit that specifies whether this record is not valid. MUST be set to 1 if ifdb
field is set to -1.
ifdb (2 bytes): A signed integer that specifies a cache field index. The cache field index specifies a
cache field used in a calculated field formula. MUST be greater than or equal to -1. MUST be set to
509 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
-1 if csxpair is greater than 0. MUST be set to -1 when the calculated field formula cannot be
computed because the cache field used in the formula is removed.
csxpair (2 bytes): An unsigned integer that specifies the count of contiguous SXPair records that
follow this record. MUST be less than or equal to 1. MUST be equal to 0 if and only if this record is
in a calculated field.
2.4.295 SxNil
2.4.296 SXNum
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
...
num (8 bytes): An Xnum (section 2.5.342) structure that specifies the numeric record value.
2.4.297 SXPair
The SXPair record specifies a reference to a pivot item used to compute the value of a calculated item
in a PivotTable.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
isxvd iCache
reserved1 A B C D reserved3
isxvd (2 bytes): An unsigned integer that specifies a cache field index. This index specifies a cache
field that contains the cache item associated with the pivot item specified by iCache.
iCache (2 bytes): A signed integer that specifies a pivot item of the PivotTable view associated with
this record as specified by Associated PivotCache. This pivot item is used in a calculated item
formula (section 2.2.2). If more than one PivotTable view is associated with this record, iCache
specifies a pivot item for each such PivotTable view.
If the value of fPhysical is 0, iCache is a cache item index and specifies the pivot item associated
with that cache item.
Otherwise, if the value of fRelative is 0 or if no pivot item in the visible item collection has a pivot
item index smaller than the pivot item index of the current pivot item, iCache is a visible item index.
Otherwise, the pivot item specified by iCache is the pivot item whose visible item index equals the
value of iCache + 1 + the largest visible item index whose associated pivot item has a pivot item
index smaller than the pivot item index of the current pivot item. If this value is less than 0 or greater
than or equal to the number of elements in the visible item collection, no pivot item is specified.
510 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The current pivot item is the pivot item in the current pivot field that corresponds to the calculated
item that contains this record.
The current pivot field is the pivot field of the PivotTable view associated with the cache field specified
by isxvd.
The visible item collection is the ordered collection of all pivot items specified by the sequence of
records that conforms to the PIVOTVD rule associated with the current pivot field that satisfy the
following criteria:
The value of the fHidden field of the SXVI record associated with the pivot item is 0.
The value of the fMissing field of the SXVI record associated with the pivot item is 0 or the value
of the fShowAllItems field of the SXVI record associated with the current pivot field is 1.
The value of the itmType field of the SXVI record associated with the pivot item is 0.
A visible item index is specified to be the zero-based index of a pivot item in the visible item
collection.
A - fFormula (1 bit): A bit that specifies whether the item is a calculated item. If fPhysical is 1, it
MUST have the same value as the fFormula field of the SXVI record corresponding to the pivot
item specified by iCache.
C - fPhysical (1 bit): A bit that specifies whether iCache specifies a cache item index.
Value Meaning
0 iCache specifies a cache item index.
1 iCache does not specify a cache item index.
D - fRelative (1 bit): A bit that specifies whether the item is referred to by relative position rather
than absolute position. If fPhysical is 0, fRelative MUST be 0 and MUST be ignored. If fPhysical
is 1, fRelative MUST be a value from the following table:
Value Meaning
0 Absolute position.
1 Position relative to the calculated item referring this
item.
2.4.298 SXPI
The SXPI record specifies the pivot fields and information about filtering on the page axis of a
PivotTable view.
MUST exist if and only if the value of the cDimPg field of the SxView record of the PivotTable view is
greater than zero.
511 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgsxpi (variable)
...
rgsxpi (variable): An array of SXPI_Items that specifies the pivot fields and information about
filtering on the page axis of a PivotTable view. The number of array elements MUST equal the
value of the cDimPg field of the SxView record of the PivotTable view.
2.4.299 SXPIEx
The SXPIEx record specifies OLAP extensions to the page axis of a PivotTable view. The number of
SXPIEx records MUST equal the number of array elements in the rgsxpi field of the SXPI record. Each
SXPIEx record corresponds to the SXPI_Item at the same position in the rgsxpi field of the SXPI
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
isxth
stUnique (variable)
...
stDisplay (variable)
...
isxth (4 bytes): An unsigned integer that specifies a pivot hierarchy index, as specified in Pivot
Hierarchies, of the pivot hierarchy associated with this entry on the page axis. The
sxaxis.sxaxisPage field of the SXTH record of the pivot hierarchy MUST be 1.
stUnique (variable): A XLUnicodeString structure that specifies the unique name of the OLAP
member that is used for filtering. The length of the string MUST be less than or equal to 255.
stDisplay (variable): A XLUnicodeString structure that specifies the caption of this OLAP member.
The length of the string MUST be less than or equal to 255.
2.4.300 SXRng
The SXRng record specifies properties for numeric grouping or date grouping of cache items in a
grouping cache field, as specified by Grouping. The values of the fRangeGroup and fCalculatedField
fields of the SXFDB record of this cache field MUST be 1 and 0, respectively.
512 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C unused
A - fAutoStart (1 bit): A bit that specifies whether the source data is used to set the starting range
value.
Value Meaning
B - fAutoEnd (1 bit): A bit that specifies whether the source data is used to set the ending range
value.
Value Meaning
If the value of the fNumField field of the SXFDB record of this cache field is 1, iByType specifies
numeric grouping, as specified by Grouping. In this case, iByType MUST be 0 and this record
MUST be followed by three SXNum records specifying the starting number, the ending number,
and the interval size, respectively. Additionally, the ending number MUST be greater than or equal
to the starting number.
If the value of the fNumField field of the SXFDB record of this cache field is 0, iByType specifies
date grouping, as specified by Grouping. In this case, iByType MUST be greater than 0.
Additionally, this record MUST be followed by two SXDtr records followed by one SXInt record
specifying the starting date/time, the ending date/time, and the interval size, respectively. The
ending date/time MUST be greater than or equal to the starting date/time. If this cache field
corresponds to source data entities, the collection of sequences of records that conform to the
SRCSXOPER rule in this cache field MUST contain only SXDtr and SxNil records.
513 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Restriction on the value of the
catm field of the SXFDB record of
this cache field, dictated by the
Value Meaning value of iByType.
2 Group by minutes. MUST be 62.
2.4.301 SxRule
The SxRule record specifies areas or parts of a one or more PivotTable views, as specified in
PivotTable rules, and that specifies the beginning of a collection of SxFilt records as specified by the
Common Productions ABNF. Each SxFilt record specifies an individual area or part of the PivotTable
view.
If this record occurs as part of the specification of a PivotTable view, references (in this record and in
the collection) to pivot fields, the data field, and pivot items are instances of those entities in the
context of the PivotTable view.
If this record occurs as part of the specification of a PivotCache, references (in this record and the
collection) to PivotTable view, pivot fields, the data field, and pivot items are instances of those
entities in the context of all the associated PivotTable views of the PivotCache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved csxFilt
iDim (8 bits): An unsigned integer that specifies the zero-based position of the pivot field specified
by isxvd within the PivotTable axis. MUST be greater than or equal to 0 and less than or equal to
255.
isxvd (8 bits): An unsigned integer that specifies the data field, pivot field, or cache field that this
rule refers to. MUST be equal to 0xFF if this record is followed by any SxFilt records. MUST be a
value from the following table:
Value of
Value fCacheBased Meaning
0 to 0xFD 0 Specifies a pivot field index, as specified by pivot fields, to the
pivot field that this rule refers to.
0 to 0xFD 1 Specifies a cache field index, as specified by cache fields, to the
514 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of
Value fCacheBased Meaning
cache field that this rule refers to.
0xFE MUST be 0 Specifies that this rule refers to the data field.
0xFF 0 Specifies that the rule is followed by zero or more SxFilt records,
which specify the pivot fields that this rule refers to.
0xFF 1 Specifies that the rule is followed by zero or more SxFilt records,
which specify the cache fields that this rule refers to.
A - sxaxisRw (1 bit): A bit that specifies whether the row axis is referenced by this record.
B - sxaxisCol (1 bit): A bit that specifies whether the column axis is referenced by this record.
C - sxaxisPage (1 bit): A bit that specifies whether the page axis is referenced by this record.
D - sxaxisData (1 bit): A bit that specifies whether the value axis is referenced by this record.
sxrType (4 bits): An unsigned integer that specifies the PivotTable view area that this rule refers to.
MUST be a value from the following table:
Value Meaning
0x0 Does not refer to any area.
0x1 Refers to one or more pivot fields specified by SxFilt records that follow
this record.
0x2 Refers to cells displaying values of data items specified by SxFilt records
that follow this record.
0x3 Refers to the entire PivotTable view.
0x4 Refers to the cells at the top-left of the PivotTable view, or at the top-right
for a right-to-left sheet. For more information about this area, see
Location and Body.
0x5 Refers to a cell displaying a pivot field caption.
The pivot field is specified by isxvd.
0x6 Refers to the cells at the top-right of the PivotTable view, or at the top-left
for a right-to-left sheet. For more information about this area, see
Location and Body.
This rule is followed by SxFilt records if and only if that value of sxrType is equal to 0x1 or 0x2.
E - fPart (1 bit): A bit that specifies whether only a portion of the PivotTable view area is included in
this rule. If the value equals 1, irwFirst, irwLast, icolFirst, and icolLast hold the relative
location in the PivotTable view area included in this rule.
F - fDataOnly (1 bit): A bit that specifies whether only the data cells of the PivotTable view are
included in this rule. MUST be 0 if fLabelOnly is equal to 1.
G - fLabelOnly (1 bit): A bit that specifies whether only the labels of the PivotTable view are
included in this rule. MUST be 1 if sxrType is equal to 0x5 or 0x6. MUST be 0 if fDataOnly is
equal to 1.
515 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
H - fGrandRw (1 bit): A bit that specifies whether the grand total row is included in this rule.
I - fGrandCol (1 bit): A bit that specifies whether the grand total column is included in this rule.
J - fGrandRwSav (1 bit): A bit that specifies whether the grand total row was included in this
PivotTable rule when the PivotTable rule was created.
K - fCacheBased (1 bit): A bit that specifies whether isxvd specifies a cache field in the PivotCache,
or a pivot field or the data field in a PivotTable view.
Value Meaning
0 isxvd specifies a pivot field or the data field in a PivotTable view.
L - fGrandColSav (1 bit): A bit that specifies whether the grand total column was included in this
PivotTable rule when the PivotTable rule was created.
csxFilt (2 bytes): An unsigned integer that specifies the number of SxFilt records following this
record. MUST be zero if sxrType is neither 0x1 nor 0x2.
irwFirst (1 byte): An optional unsigned integer that specifies the offset of the first row, from the
first cell in the PivotTable view area to the first cell in the partial area included in this rule. MUST
be less than or equal to 255. This field MUST NOT exist if fPart is equal to 0.
irwLast (1 byte): An optional unsigned integer that specifies the offset of the last row, from the first
cell in the PivotTable view area to the last cell in the partial area included in this rule. MUST be
greater than or equal to irwFirst and less than or equal to 255. This field MUST NOT exist if fPart
is equal to 0.
icolFirst (1 byte): An optional unsigned integer that specifies the offset of the first column, from the
first cell in the PivotTable view area to the first cell in the partial area included in this rule. MUST
be less than or equal to 255. This field MUST NOT exist if fPart is equal to 0.
icolLast (1 byte): An optional unsigned integer that specifies the offset of the last column, from the
first cell in the PivotTable view area to the last cell in the partial area included in this rule. MUST
be greater than or equal to icolFirst and less than or equal to 255. This field MUST NOT exist if
fPart is equal to 0.
2.4.302 SxSelect
The SxSelect record specifies information about selected cells in the PivotTable report for a
PivotTable view. The selection is stored in the PivotTable rule following this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sxaxisAct iDimAct
iLiStart iLiAct
516 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iLiMin iLiMax
rwClick colClick
rwClickPrev colClickPrev
cClick A B C D E unused
sxaxisAct (2 bytes): An SXAxis structure that specifies the PivtotTable Axis of the PivotTable
selection.
iDimAct (2 bytes): An unsigned integer that specifies the zero-based field position of the field that is
selected within the PivtotTable Axis.
iLiStart (2 bytes): An unsigned integer that specifies the zero-based position of the PivotTable line
where the selection operation started. MUST be greater than or equal to the iLiMin field and less
than or equal to the iLiMax field.
iLiAct (2 bytes): An unsigned integer that specifies the zero-based position of the PivotTable line
that was most recently included in the selection. MUST be greater than or equal to zero and less
than or equal to the iLiMax field.
iLiMin (2 bytes): An unsigned integer that specifies the zero-based position of the minimum
PivotTable line that could be included in the selection. MUST be greater than or equal to zero and
less than or equal to the iLiMax field.
iLiMax (2 bytes): An unsigned integer that specifies the zero-based position of the maximum
PivotTable line that could be included in the selection. MUST be greater than or equal to zero.
MUST be greater than or equal to the iLiMin field.
rwClick (2 bytes): An RwU structure that specifies the row of the cell where the user last clicked for
the PivotTable selection.
colClick (2 bytes): A ColU structure that specifies the column of the cell where the user last clicked
for the PivotTable selection.
rwClickPrev (2 bytes): An RwU structure that specifies the row of the cell previously clicked by the
user on the PivotTable selection.
colClickPrev (2 bytes): A ColU structure that specifies the column of the cell previously clicked on
the PivotTable selection.
cClick (5 bits): An unsigned integer that specifies the number of clicks made by the user to refine
the current PivotTable selection.
A - fLabelOnly (1 bit): A bit that specifies that only cells in the row area, column area, or page area
are selected.
B - fDataOnly (1 bit): A bit that specifies that only cells in the data area are selected.
517 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - fToggleDataHeader (1 bit): A bit that specifies whether the PivotTable selection toggle is
enabled. The selection toggle enables a method for the user to select values, labels, or both
values and labels.
D - fSelectionClick (1 bit): A bit that specifies whether any selections on the PivotTable were
refined by the user.
E - fExtendable (1 bit): A bit that specifies whether an additional PivotTable line can be added to the
current selection.
2.4.303 SXStreamID
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
idStm
idStm (2 bytes): An unsigned integer that specifies a stream in the PivotCache storage. The stream
specified is the one that has its name equal to the hexadecimal representation of this field. The
four-digit hexadecimal string representation of this field, where each hexadecimal letter digit is a
capital letter, MUST be equal to the name of a stream in the PivotCache storage.
2.4.304 SXString
The SXString record specifies a segment of a string that contains information about a PivotCache or
an external connection. When this record occurs in a sequence of records that conforms to the
SRCSXOPER rule or the GRPSXOPER rule, then it specifies a cache item with a string value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cch (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch structure in the segment field. If cch is 0xFFFF, segment MUST NOT
exist.
segment (variable): An XLUnicodeStringNoCch structure that specifies a segment of the string. This
exists only if the value of the cch field is different than 0xFFFF.
2.4.305 SXTbl
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cdref csxtbpg
518 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cPages A
cdref (2 bytes): An unsigned integer that specifies the number of multiple consolidation ranges used
as source data for the PivotCache. MUST be equal to the number of DConRef, DConBin, or
DConName records that follow this record.
csxtbpg (2 bytes): An unsigned integer that specifies the number of SxTbpg records that follow this
record. MUST be equal to cdref.
cPages (15 bits): An unsigned integer that specifies the number of optional cache fields in the
PivotCache, as specified by Multiple Consolidation Ranges. MUST be less than or equal to 0x0004.
A - fAutoPage (1 bit): A bit that specifies whether there is one automatically created cache field with
cache items qualifying each source data range of the multiple consolidation ranges PivotCache.
MUST be a value from the following table:
Value Meaning
0 The cache fields that qualify the source data ranges are not automatically created.
1 There is one automatically created cache field with cache items qualifying each source data
range of the multiple consolidation ranges PivotCache. Each cache item qualifies one source
data range.
2.4.306 SxTbpg
The SxTbpg record specifies properties of source data ranges for a multiple consolidation ranges
PivotCache. There MUST be one SxTbpg record for each source data range. The order of the SxTbpg
records corresponds to the order of the DREF records that precede this record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgiitem (variable)
...
rgiitem (variable): An array of signed 2-byte integers that associates cache items with the range
associated with this record. Each element in this array is associated with a cache field, as specified
in the multiple consolidation ranges overview.
The number of elements in this array MUST be equal to the value of the cPages field of the
preceding SXTbl record and MUST be equal to the number of SXTBRGIITM records that follow this
record. The nth element in this array is associated with the nth SXTBRGIITM record that follows this
record.
Each element in this array MUST be less than the value of the cItems field of the associated
SXTBRGIITM. Each element in this array MUST be a value from the following table:
Value Meaning
-1 Specifies that a blank cache item is used.
Greater than or Specifies the zero-based index of an SXString record in the
equal to zero collection of SXString records directly following the associated
SXTBRGIITM record.
519 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.307 SXTBRGIITM
The SXTBRGIITM record specifies the beginning of a collection of SXString records as specified by
the Globals Substream ABNF. The collection of SXString records specifies the values corresponding to
the cache items for an optional cache field in a multiple consolidation ranges PivotCache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cItems
cItems (2 bytes): An unsigned integer that specifies the number of SXString records that follow this
record. MUST be less than or equal to 65534.
2.4.308 SXTH
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
A B C D E F G H I J K L M unused3
sxaxis reserved
isxvd
csxvdXl
...
stDisplay (variable)
...
stDefault (variable)
...
stAll (variable)
...
stDimension (variable)
...
cisxvd
520 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgisxvd (variable)
...
cHiddenMemberSets
rgHiddenMemberSets (variable)
...
A - fMeasure (1 bit): A bit that specifies whether this pivot hierarchy is an OLAP measure, which
means it can be placed only on the data axis.
C - fOutlineMode (1 bit): A bit that specifies whether the pivot fields representing the levels of this
pivot hierarchy have the fOutline field of the SXVDEx record set to 1 when the pivot fields are
first created. See Subtotalling for more information.
D - fEnableMultiplePageItems (1 bit): A bit that specifies whether multiple OLAP members can
be selected when the pivot hierarchy is on the page axis of the PivotTable view.
E - fSubtotalAtTop (1 bit): A bit that specifies whether the pivot fields representing the levels of this
pivot hierarchy have the fSubtotalAtTop field of the SXVDEx record set to 1 when the pivot fields
are first created. See Subtotalling for more information.
F - fSet (1 bit): A bit that specifies whether this pivot hierarchy is an OLAP named set. MUST be 0
if fMeasure is 1.
G - fDontShowFList (1 bit): A bit that specifies whether this pivot hierarchy is hidden in the list of
pivot fields that can be added to or removed from the PivotTable view.
H - fAttributeHierarchy (1 bit): A bit that specifies whether this pivot hierarchy is an attribute
hierarchy.
I - fTimeHierarchy (1 bit): A bit that specifies whether this pivot hierarchy is a time hierarchy.
J - fFilterInclusive (1 bit): A bit that specifies whether manual filters applied to this pivot hierarchy
are inclusive or exclusive. MUST be a value from the following table:
Value Meaning
0 OLAP members specified in the manual filter are excluded from the PivotTable view along
with their descendants.
1 OLAP members specified in the manual filter are included from the PivotTable view along with
their ascendants and descendants.
L - fKeyAttributeHierarchy (1 bit): A bit that specifies whether this pivot hierarchy is the key
attribute hierarchy in the OLAP dimension (1).
521 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
M - fKPI (1 bit): A bit that specifies whether this pivot hierarchy is a key performance indicator
(KPI) hierarchy.
sxaxis (2 bytes): An SXAxis structure that specifies the axis or axes this pivot hierarchy is present
on. For more information, see PivotTable Axes.
isxvd (4 bytes): A signed integer that specifies a pivot field index as specified by Pivot Fields. The
pivot field index specifies the associated pivot field for this pivot hierarchy.
If the value of sxaxis.sxaxisPage is 1 or the value of sxaxis.sxaxisData is 1, then the value of this
field MUST be greater than or equal to 0 and MUST be less than the value of the cDim field of the
SxView record of the PivotTable view, and the value of cisxvd MUST be 0. Also, the sxaxis field
of the Sxvd record of the referenced pivot field MUST be equal to the sxaxis field of this record.
If both sxaxis.sxaxisPage and sxaxis.sxaxisData are equal to 0, the value of this field MUST be
ignored.
csxvdXl (4 bytes): A signed integer that specifies the number of pivot fields in the PivotTable view
on PivotTable axes for this pivot hierarchy. MUST be greater than or equal to 0.
N - fDragToRow (1 bit): A bit that specifies whether this pivot hierarchy can be placed on the row
axis of the PivotTable view. MUST be 0 if fMeasure is 1.
O - fDragToColumn (1 bit): A bit that specifies whether this pivot hierarchy can be placed on the
column axis of the PivotTable view. MUST be 0 if fMeasure is 1.
P - fDragToPage (1 bit): A bit that specifies whether this pivot hierarchy can be placed on the page
axis of the PivotTable view. MUST be 0 if fMeasure is 1.
Q - fDragToData (1 bit): A bit that specifies whether this pivot hierarchy can be placed on the data
axis of the PivotTable view.
R - fDragToHide (1 bit): A bit that specifies whether this pivot hierarchy can be removed from the
PivotTable view.
522 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stUnique (variable): An XLUnicodeString structure that specifies the MDX unique name of this
pivot hierarchy. The length of the string MUST be greater than zero and less than or equal to 255.
stDisplay (variable): An XLUnicodeString structure that specifies the display name of this pivot
hierarchy. The length of the string MUST be greater than zero and less than or equal to 255.
stDefault (variable): An XLUnicodeString structure that specifies the MDX unique name of the
default member (2) of this pivot hierarchy. The length of the string MUST be less than or equal
to 255.
stAll (variable): An XLUnicodeString structure that specifies the unique name of the ALL member
(2) of this pivot hierarchy. The length of the string MUST be less than or equal to 255. A length of
zero specifies that there is no ALL member (2) of this pivot hierarchy.
stDimension (variable): An XLUnicodeString structure that specifies the unique name of the OLAP
dimension (1) to which this pivot hierarchy belongs, unless the length of the string is zero. The
length of the string MUST be less than or equal to 255. If fMeasure is 1, the length of the string
MUST be zero.
cisxvd (4 bytes): An unsigned integer that specifies the number of elements in rgisxvd. MUST be
zero If sxaxis.sxaxisRw is 0 and sxaxis.sxaxisCol is 0.
rgisxvd (variable): An array of 4-byte signed integers that specify the pivot fields associated with
this pivot hierarchy. Each array element MUST be a value from the following table:
Value Meaning
Greater than A pivot field index, as specified by pivot fields, that specifies a pivot field that is associated
or equal to with this pivot hierarchy. The referenced pivot field MUST have an sxaxis field equal to the
zero value of the sxaxis field of this record.
This field is arranged such that the nth element in the array is a reference to the Sxvd record that
has a related SXVDTEx record that has a value of n for its isxtl field. If there is no such SXVDTEx
for the nth element, the value of the nth element MUST be equal to -1.
cHiddenMemberSets (4 bytes): An unsigned integer that specifies the deepest one-based level in
the pivot hierarchy that has OLAP members hidden from the PivotTable view. If the value of
cisxvd is greater than 0, then the value of this field also specifies the number of elements in
rgHiddenMemberSets. If the value of fFilterInclusive is 1, then the value of this field MUST be
0.
2.4.309 Sxvd
The Sxvd record specifies pivot field properties and that specifies the beginning of a collection of
records as defined in the Worksheet substream ABNF. This collection of records specifies details for a
pivot field.
523 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sxaxis cSub
A B C D E F G H I J K L M cItm
...
sxaxis (2 bytes): An SXAxis structure that specifies the PivotTable axis that this pivot field is on. If
the sxaxis.sxaxisData field equals 1, there MUST be a corresponding SXDI record with an isxvd
field that specifies this Sxvd record.
cSub (2 bytes): An unsigned integer that specifies the number of subtotal functions used for this
pivot field. MUST equal the count of subtotal fields of this record whose value is 1. The subtotal
fields of this record are fDefault, fSum, fCounta, fAverage, fMax, fMin, fProduct, fCount,
fStdev, fStdevp, fVariance, and fVariancep. For more information, see Subtotalling.
A - fDefault (1 bit): A bit that specifies whether the default subtotal function is applied. The default
subtotal is separately determined for each data item. If the fDefault field equals 1 and the
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the
SXVI record equal to 1. MUST be a value from the following table:
Value Meaning
0 The default subtotal function is not applied.
1 The default subtotal function is applied.
B - fSum (1 bit): A bit that specifies whether the sum subtotal function is displayed. If the fDefault
field equals 1, this value MUST be zero. If the fSum field equals 1 and the sxaxis.sxaxisRw field
equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the sxaxis.sxaxisPage field equals 1, there
MUST be one SXVI record with the itmType field of the SXVI record equal to 2. MUST be a value from
the following table:
Value Meaning
0 The sum subtotal function is not displayed.
1 The sum subtotal function is displayed.
C - fCounta (1 bit): A bit that specifies whether the count subtotal function is displayed. If the
fDefault field equals 1, this value MUST be zero. If the fCounta field equals 1 and the
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the SXVI
record equal to 3. MUST be a value from the following table:
Value Meaning
0 The count subtotal function is not displayed.
1 The count subtotal function is displayed.
524 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fAverage (1 bit): A bit that specifies whether the average subtotal function is displayed. If the
fDefault field equals 1, this value MUST be zero. If the fAverage field equals 1 and the
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the SXVI
record equal to 4. MUST be a value from the following table:
Value Meaning
0 The average subtotal function is not displayed.
1 The average subtotal function is displayed.
E - fMax (1 bit): A bit that specifies whether the max subtotal function is displayed. If the fDefault
field equals 1, this value MUST be zero. If the fMax field equals 1 and the sxaxis.sxaxisRw field
equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the sxaxis.sxaxisPage field equals 1,
there MUST be one SXVI record with the itmType field of the SXVI record equal to 5. MUST be a
value from the following table:
Value Meaning
0 The max subtotal function is not displayed.
1 The max subtotal function is displayed.
F - fMin (1 bit): A bit that specifies whether the min subtotal function is displayed. If the fDefault
field equals 1, this value MUST be zero. If the fMin field equals 1 and the sxaxis.sxaxisRw field
equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the sxaxis.sxaxisPage field equals 1,
there MUST be one SXVI record with the itmType field of the SXVI record equal to 6. MUST be a
value from the following table:
Value Meaning
0 The min subtotal function is not displayed.
1 The min subtotal function is displayed.
G - fProduct (1 bit): A bit that specifies whether the product subtotal function is displayed. If the
fDefault field is 1, this value MUST be zero. If the fProduct field is 1 and the sxaxis.sxaxisRw
field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the sxaxis.sxaxisPage field equals 1,
there MUST be one SXVI record with the itmType field of the SXVI record equal to 7. MUST be a
value from the following table:
Value Meaning
0 The product subtotal function is not displayed.
1 The product subtotal function is displayed.
H - fCount (1 bit): A bit that specifies whether the count numbers subtotal function is displayed. If
the fDefault field is 1, this value MUST be zero. If the fCount field equals 1 and the
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the
SXVI record equal to 8. MUST be a value from the following table:
Value Meaning
0 The count numbers subtotal function is not displayed.
1 The count numbers subtotal function is displayed.
525 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
I - fStdev (1 bit): A bit that specifies whether the standard deviation subtotal function is displayed.
If the fDefault field is 1, this value MUST be zero. If the fStdev field equals 1 and the
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the
SXVI record equal to 9. MUST be a value from the following table:
Value Meaning
0 The standard deviation subtotal function is not displayed.
1 The standard deviation subtotal function is displayed.
J - fStdevp (1 bit): A bit that specifies whether the standard deviation population subtotal function
is displayed. If the fDefault field equals 1, this value MUST be zero. If the fStdevp field equals 1
and the sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the
SXVI record equal to 10. MUST be a value from the following table:
Value Meaning
0 The standard deviation population subtotal function is not displayed.
1 The standard deviation population subtotal function is displayed.
K - fVariance (1 bit): A bit that specifies whether the variance subtotal function is displayed. If the
fDefault field is 1, this value MUST be zero. If the fVariance field is 1 and the sxaxis.sxaxisRw
field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the sxaxis.sxaxisPage field equals 1,
there MUST be one SXVI record with the itmType field of the SXVI record equal to 11. MUST be a
value from the following table:
Value Meaning
0 The variance subtotal function is not displayed.
1 The variance subtotal function is displayed.
L - fVariancep (1 bit): A bit that specifies whether the variance population subtotal function is
displayed. If the fDefault field is 1, the value MUST be zero. If the fVariancep field equals 1 and
sxaxis.sxaxisRw field equals 1 or if the sxaxis.sxaxisCol field equals 1 or if the
sxaxis.sxaxisPage field equals 1, there MUST be one SXVI record with the itmType field of the
SXVI record equal to 12. MUST be a value from the following table:
Value Meaning
0 The variance population subtotal function is not displayed.
1 The variance population subtotal function is displayed.
cItm (2 bytes): A signed integer that specifies the number of pivot items for this pivot field. This
value MUST match the number of SXVI records following this record and MUST be less than or
equal to the following formula:
526 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchName (2 bytes): An unsigned integer that specifies the length, in characters, of the stName
field. If the value is 0xFFFF then stName is NULL. The value MUST be 0xFFFF or greater than zero
and less than or equal to 255.
stName (variable): An XLUnicodeStringNoCch structure that specifies the caption of this pivot field.
A non-NULL value specifies that this string is used to override the stFieldName field in SXFDB
record from the associated cache field, as specified in pivot fields. The length is specified in
cchName. This field exists only if the value of cchName is not 0xFFFF. If this PivotTable view is
not an OLAP PivotTable view and this string is non-NULL, then stName MUST be unique within all
Sxvd records in this PivotTable view.
2.4.310 SXVDEx
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M N O P reserved3 Q R S citmAutoShow
isxdiAutoSort isxdiAutoShow
...
A - fShowAllItems (1 bit): A bit that specifies whether to show all pivot items for this pivot field,
including pivot items that do not currently exist in the source data. The value MUST be 0 for an
OLAP PivotTable view. MUST be a value from the following table:
Value Meaning
0x0 Specifies that all pivot items are not displayed.
0x1 Specifies that all pivot items are displayed.
B - fDragToRow (1 bit): A bit that specifies whether this pivot field can be placed on the row axis.
This value MUST be ignored for an OLAP PivotTable view. MUST be a value from the following
table:
Value Meaning
0x0 Specifies that the user is prevented from placing this pivot field on the row axis.
0x1 Specifies that the user is not prevented from placing this pivot field on the row axis.
C - fDragToColumn (1 bit): A bit that specifies whether this pivot field can be placed on the column
axis. This value MUST be ignored for an OLAP PivotTable view. MUST be a value from the following
table:
Value Meaning
0x0 Specifies that the user is prevented from placing this pivot field on the column axis.
0x1 Specifies that the user is not prevented from placing this pivot field on the column
axis.
527 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fDragToPage (1 bit): A bit that specifies whether this pivot field can be placed on the page axis.
This value MUST be ignored for an OLAP PivotTable view. MUST be a value from the following
table:
Value Meaning
0x0 Specifies that the user is prevented from placing this pivot field on the page axis.
0x1 Specifies that the user is not prevented from placing this pivot field on the page axis.
E - fDragToHide (1 bit): A bit that specifies whether this pivot field can be removed from the
PivotTable view. This value MUST be ignored for an OLAP PivotTable view. MUST be a value from
the following table:
Value Meaning
0x0 Specifies that the user is prevented from removing this pivot field from the PivotTable
view.
0x1 Specifies that the user is not prevented from removing this pivot field from the
PivotTable view.
F - fNotDragToData (1 bit): A bit that specifies whether this pivot field can be placed on the data
axis. This value MUST be ignored for an OLAP PivotTable view. MUST be a value from the following
table:
Value Meaning
0x0 Specifies that the user is not prevented from placing this pivot field on the data axis.
0x1 Specifies that the user is prevented from placing this pivot field on the data axis.
H - fServerBased (1 bit): A bit that specifies whether this pivot field is server-based when on the
page axis. For more information, see Source Data. A value of 1 specifies that this pivot field is a
server-based pivot field.
MUST be 1 if and only if the value of the fServerBased field of the SXFDB record of the
associated cache field of this pivot field is 1.
J - fAutoSort (1 bit): A bit that specifies whether AutoSort will be applied to this pivot field. For
more information, see Pivot Field Sorting.
K - fAscendSort (1 bit): A bit that specifies whether any AutoSort applied to this pivot field will sort
in ascending order. MUST be a value from the following table:
Value Meaning
0x0 Sort in descending order.
0x1 Sort in ascending order.
528 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
L - fAutoShow (1 bit): A bit that specifies whether an AutoShow filter is applied to this pivot field.
For more information, see Simple Filters.
M - fTopAutoShow (1 bit): A bit that specifies whether any AutoShow filter applied to this pivot field
shows the top-ranked or bottom-ranked values. For more information, see Simple Filters. MUST be
a value from the following table:
Value Meaning
0x0 Any AutoShow filter applied to this pivot field shows the
bottom-ranked values.
0x1 Any AutoShow filter applied to this pivot field shows the top-
ranked values.
N - fCalculatedField (1 bit): A bit that specifies whether this pivot field is a calculated field. A value
of 1 specifies that this pivot field is a calculated field.
MUST be 1 if and only if the value of the fCalculatedField field of the SXFDB record of the cache
field associated with this pivot field is 1.
O - fPageBreaksBetweenItems (1 bit): A bit that specifies whether a page break is inserted after
each pivot item when the PivotTable is printed.
P - fHideNewItems (1 bit): A bit that specifies whether new pivot items that appear after a refresh
are hidden by default. This value MUST be equal to 0 for a non-OLAP PivotTable view.
Value Meaning
0x0 New pivot items are shown by default.
0x1 New pivot items are hidden by default.
Q - fOutline (1 bit): A bit that specifies whether this pivot field is in outline form. For more
information, see PivotTable layout.
R - fInsertBlankRow (1 bit): A bit that specifies whether to insert a blank row after each pivot item.
S - fSubtotalAtTop (1 bit): A bit that specifies whether subtotals are displayed at the top of the
group when the fOutline field is equal to 1. For more information, see PivotTable layout.
citmAutoShow (8 bits): An unsigned integer that specifies the number of pivot items to show when
the fAutoShow field is equal to 1. The value MUST be greater than or equal to 1 and less than or
equal to 255.
isxdiAutoSort (2 bytes): A signed integer that specifies the data item that AutoSort uses when the
fAutoSort field is equal to 1. If the value of the fAutoSort field is one, the value MUST be greater
than or equal to zero and less than the count of SXDI records. MUST be a value from the following
table:
Value Meaning
-1 Specifies that the values of the pivot items themselves are used.
Greater than or Specifies a data item index, as specified in Data Items, of the data item that is used.
equal to zero
529 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
isxdiAutoShow (2 bytes): A signed integer that specifies the data item that AutoShow ranks by
when the fAutoShow field is equal to 1. For more information, see Simple Filters. If the value of
the fAutoShow field is 1, this value MUST be greater than or equal to zero and less than the
count of SXDI records. MUST be a value from the following table:
Value Meaning
Greater than or Specifies a data item index, as specified in Data Items, of the data item that is used.
equal to zero
ifmt (2 bytes): An IFmt structure that specifies the number format of this pivot field.
subName (variable): An optional SXVDEx_Opt structure that specifies the name of the aggregate
function used to calculate this pivot field's subtotals. SHOULD<131> be present.
2.4.311 SXVDTEx
The SXVDTEx record specifies OLAP extensions to a pivot field. This record MUST NOT exist if this
PivotTable view is a non-OLAP PivotTable view.
The pivot field associated with this record is the pivot field with an index that equals the index of this
SXVDTEx record in the collection of SXVDTEx records of this PivotTable view.
The count of SXVDTEx records MUST equal the count of pivot fields in the OLAP PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
A B C D E F reserved isxth
isxtl
csxvi
rgsxvi (variable)
...
A - fTensorSort (1 bit): A bit that specifies whether the sort order is determined by the OLAP
source data. See Pivot Field Sorting for more information.
B - fDrilledLevel (1 bit): A bit that specifies whether all pivot items in this pivot field are expanded.
See Collapsing for more information.
D - fMemPropDisplayInReport (1 bit): A bit that specifies whether this member property pivot
field is displayed in the PivotTable report. See row axis or column axis for more information. MUST
530 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
be 0 if the PivotCache functionality level of the associated PivotCache is less than 3. MUST be
ignored if this pivot field is not a member property pivot field.
E - fMemPropDisplayInTip (1 bit): A bit that specifies whether this member property pivot field is
displayed in a ToolTip. MUST be 0 if the PivotCache functionality level of the associated
PivotCache is less than 3. MUST be ignored if this pivot field is not a member property pivot field.
isxth (2 bytes): A signed integer that specifies the pivot hierarchy that this pivot field is associated
with. See Association of Pivot Hierarchies and Pivot Fields and Cache Fields for more information.
MUST be a value from the following table:
Value Meaning
Greater than or This specifies a pivot hierarchy index, as specified in Pivot Hierarchies, that specifies a
equal to zero pivot hierarchy.
MUST be greater than or equal to -1 and less than the csxth field of the SXViewEx record of the
PivotTable view.
isxtl (4 bytes): A signed integer that specifies the zero-based index of the OLAP level associated with
the pivot hierarchy. If isxth specifies a pivot hierarchy that is not an OLAP Hierarchy, this value
MUST be ignored.
csxvi (4 bytes): A signed integer that specifies the number of items in the array specified by rgsxvi.
MUST equal the count of pivot items in this pivot field.
rgsxvi (variable): An array of SXVIFlags that specifies additional properties for the pivot items in this
pivot field. Each SXVIFlags in the rgsxvi array specifies additional properties of the pivot item
with a pivot item index equal to the index of the SXVIFlags element in the rgsxvi array.
2.4.312 SXVI
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
itmType A B C D E reserved2
iCache cchName
stName (variable)
...
531 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
itmType (2 bytes): A signed integer that specifies the pivot item type. The value MUST be one of
the following values:
A - fHidden (1 bit): A bit that specifies whether this pivot item is hidden. For more information, see
Manual Filtering.
MUST be zero if itmType is not itmtypeData. MUST be zero for OLAP PivotTable view.
B - fHideDetail (1 bit): A bit that specifies whether the pivot item detail is collapsed.
D - fFormula (1 bit): A bit that specifies whether this pivot item is a calculated item.
The sxaxisPage field of sxaxis in the Sxvd record of the pivot field equals 1 (the associated Sxvd
is the last Sxvd record before this record in the stream).
The fCalculatedField field in the SXVDEx record of the pivot field equals 1.
The fRangeGroup field of the SXFDB record, of the associated cache field of the pivot field,
equals 1.
The fCalculatedField field of the SXFDB record, of the associated cache field of the pivot field,
equals 1.
E - fMissing (1 bit): A bit that specifies if this pivot item does not exist in the data source.
MUST be zero if itmType is not zero. MUST be zero for OLAP PivotTable view.
532 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iCache (2 bytes): A signed integer that specifies a reference to a cache item. MUST be a value from
the following table:
Value Meaning
0+ A cache item index in the cache field associated with the pivot field, as specified by Cache Items.
If itmType is not zero, a reference to a cache item is not specified and this value MUST be -1.
Otherwise, this value MUST be greater than or equal to 0.
cchName (2 bytes): An unsigned integer that specifies the length of the stName string. If the value
is 0xFFFF then stName is NULL. Otherwise, the value MUST be less than or equal to 254.
stName (variable): An XLUnicodeStringNoCch structure that specifies the name of this pivot item. If
not NULL, this is used as the caption of the pivot item instead of the value in the cache item
specified by iCache. The length of this field is specified in cchName. This field exists only if
cchName is not 0xFFFF. If this is in a non-OLAP PivotTable view and this string is not NULL, it
MUST be unique within all SXVI records in associated with the pivot field.
2.4.313 SxView
The SxView record specifies PivotTable view information and that specifies the beginning of a
collection of records as defined by the Worksheet substream ABNF. The collection specifies the
remainder of the PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
...
rwFirstHead rwFirstData
colFirstData iCache
reserved sxaxis4Data
ipos4Data cDim
cDimRw cDimCol
cDimPg cDimData
cRw cCol
A B C D E F G H I J unused2 itblAutoFmt
cchTableName cchDataName
533 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stTable (variable)
...
stData (variable)
...
ref (8 bytes): A Ref8U structure that specifies the PivotTable report body. For more information, see
Location and Body.
rwFirstHead (2 bytes): An RwU structure that specifies the first row of the row area. MUST be 1 if
none of the axes are assigned in this PivotTable view. Otherwise, the value MUST be greater than
or equal to ref.rwFirst.
rwFirstData (2 bytes): An RwU structure that specifies the first row of the data area. MUST be 1 if
none of the axes are assigned in this PivotTable view. Otherwise, it MUST be equal to the value as
specified by the following formula:
colFirstData (2 bytes): A ColU structure that specifies the first column of the data area. It MUST be
1 if none of the axes are assigned in this PivotTable view. Otherwise, the value MUST be greater
than or equal to ref.colFirst, and if the value of cDimCol or cDimData is not zero, it MUST be
less than or equal to ref.colLast.
iCache (2 bytes): A signed integer that specifies the zero-based index of an SXStreamID record in
the Globals Substream. See Associated PivotCache for more information. MUST be greater than or
equal to zero and less than the number of SXStreamID records in the Globals Substream.
sxaxis4Data (2 bytes): An SXAxis structure that specifies the default axis for the data field. Either
the sxaxis4Data.sxaxisRw field MUST be 1 or the sxaxis4Data.sxaxisCol field MUST be 1.
The sxaxis4Data.sxaxisPage field MUST be 0 and the sxaxis4Data.sxaxisData field MUST be
0.
ipos4Data (2 bytes): A signed integer that specifies the row or column position for the data field in
the PivotTable view. The sxaxis4Data field specifies whether this is a row or column position.
MUST be greater than or equal to -1 and less than or equal to 0x7FFF. A value of -1 specifies the
default position.
cDim (2 bytes): A signed integer that specifies the number of pivot fields in the PivotTable view.
MUST equal the number of Sxvd records following this record. MUST equal the number of fields in
the associated PivotCache specified by iCache.
cDimRw (2 bytes): An unsigned integer that specifies the number of fields on the row axis of the
PivotTable view. MUST be less than or equal to 0x7FFF. MUST equal the number of array elements
in the SxIvd record in this PivotTable view that contain row items.
cDimCol (2 bytes): An unsigned integer that specifies the number of fields on the column axis of
the PivotTable view. MUST be less than or equal to 0x7FFF. MUST equal the number of array
elements in the SxIvd record in this PivotTable view that contain column items.
cDimPg (2 bytes): An unsigned integer that specifies the number of page fields in the PivotTable
view. MUST be less than or equal to 0x7FFF. MUST equal the number of array elements in the
SXPI record in this PivotTable view.
534 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cDimData (2 bytes): A signed integer that specifies the number of data fields in the PivotTable
view. MUST be greater than or equal to zero and less than or equal to 0x7FFF. MUST equal the
number of SXDI records in this PivotTable view.
cRw (2 bytes): An unsigned integer that specifies the number of pivot lines in the row area of the
PivotTable view. MUST be less than or equal to 0x7FFF. MUST equal the number of array elements
in the first SXLI record in this PivotTable view.
cCol (2 bytes): An unsigned integer that specifies the number of pivot lines in the column area of
the PivotTable view. MUST equal the number of array elements in the second SXLI record in this
PivotTable view.
A - fRwGrand (1 bit): A bit that specifies whether the PivotTable contains grand totals for rows.
MUST be 0 if none of the axes have been assigned in this PivotTable view.
B - fColGrand (1 bit): A bit that specifies whether the PivotTable contains grand totals for columns.
MUST be 1 if none of the axes are assigned in this PivotTable view.
D - fAutoFormat (1 bit): A bit that specifies whether the PivotTable has AutoFormat applied.
E - fAtrNum (1 bit): A bit that specifies whether the PivotTable has number AutoFormat applied.
F - fAtrFnt (1 bit): A bit that specifies whether the PivotTable has font AutoFormat applied.
G - fAtrAlc (1 bit): A bit that specifies whether the PivotTable has alignment AutoFormat applied.
H - fAtrBdr (1 bit): A bit that specifies whether the PivotTable has border AutoFormat applied.
I - fAtrPat (1 bit): A bit that specifies whether the PivotTable has pattern AutoFormat applied.
J - fAtrProc (1 bit): A bit that specifies whether the PivotTable has width/height AutoFormat
applied.
itblAutoFmt (2 bytes): An AutoFmt8 structure that specifies the PivotTable AutoFormat. If the value
of itblAutoFmt in the associated SXViewEx9 record is not 1, this field is overridden by the value
of itblAutoFmt in the associated SXViewEx9.
cchTableName (2 bytes): An unsigned integer that specifies the length, in characters, of stTable.
MUST be greater than or equal to zero and less than or equal to 0x00FF.
cchDataName (2 bytes): An unsigned integer that specifies the length, in characters of stData.
MUST be greater than zero and less than or equal to 0x00FE.
stTable (variable): An XLUnicodeStringNoCch structure that specifies the name of the PivotTable.
The length of this field is specified by cchTableName.
stData (variable): An XLUnicodeStringNoCch structure that specifies the name of the data field. The
length of this field is specified by cchDataName.
2.4.314 SXViewEx
The SXViewEx record specifies the beginning of a collection of records as specified in the Worksheet
substream ABNF. The collection of records specifies details about an OLAP PivotTable view.
535 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
csxth
csxpi
csxvdtex
cbFuture
rgbFuture (variable)
...
frtHeaderOld (4 bytes): An FrtHeaderOld structure. The value of the frtHeaderOld.rt field MUST
be 0x80C.
csxth (4 bytes): A signed integer that specifies the number of SXTH records following this record.
MUST be greater than or equal to 1.
csxpi (4 bytes): A signed integer that specifies the number of SXPIEx records following the SXTH
records. MUST be greater than or equal to zero.
csxvdtex (4 bytes): A signed integer that specifies the number of SXVDTEx records following the
SXPIEx records. MUST be greater than or equal to zero.
cbFuture (4 bytes): An unsigned integer that specifies the count of bytes in rgbFuture. MUST be
greater than or equal to zero and less than or equal to 1024. MUST be equal to the byte count of
rgbFuture.
rgbFuture (variable): Information from future versions. The byte count MUST equal cbFuture.
2.4.315 SXViewEx9
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt A B reserved2
reserved3
C D E F G reserved6
...
rt (2 bytes): An unsigned integer that specifies the record type identifier. The value MUST be
0x0810.
536 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - reserved1 (1 bit): MUST be zero, and MUST be ignored.
B - fFrtAlert (1 bit): A bit that specifies whether features of this PivotTable are not
supported in earlier versions of the BIFF.
An application can alert the user of possible problems when saving as an earlier version of the BIFF.
D - fPrintTitles (1 bit): A bit that specifies whether the print titles for the worksheet are set based
on the PivotTable report. The row print titles are set to the pivot item captions on the column axis
and the column print titles are set to the pivot item captions on the row axis.
E - fLineMode (1 bit): A bit that specifies whether any pivot field is in outline mode. See
Subtotalling for more information.
itblAutoFmt (2 bytes): An AutoFmt8 structure that specifies the PivotTable AutoFormat. If the
value of this field is not 1, this field overrides the itblAutoFmt field in the previous SxView record.
2.4.316 SXViewLink
The SXViewLink record specifies the name of the source PivotTable view associated with a Pivot
Chart.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt unused
...
cch (1 byte): An unsigned integer that specifies the count of characters of the stPivotTable field.
537 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.317 SXVS
The SXVS record specifies the type of source data used for a PivotCache. This record is followed by a
sequence of records that specify additional information about the source data.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sxvs
sxvs (2 bytes): An unsigned integer that specifies the type of source data used for the PivotCache.
The types of records that follow this record are dictated by the value of this field. MUST be a value
from the following table:
SHEET 0x0001 Specifies that the source data is a range. This record MUST be followed by
a DConRef record that specifies a simple range, or a DConName record that
specifies a named range, or a DConBin record that specifies a built-in
named range.
EXTERNAL 0x0002 Specifies that external source data is used. This record MUST be followed by
a sequence of records beginning with a DbQuery record that specifies
connection and query information that is used to retrieve external data.
CONSOLIDATION 0x0004 Specifies that multiple consolidation ranges are used as the source data.
This record MUST be followed by a sequence of records beginning with an
SXTbl record that specifies information about the multiple consolidation
ranges.
SCENARIO 0x0010 The source data is populated from a temporary internal structure. In this
case there is no additional source data information because the raw data
does not exist as a permanent structure and the logic to produce it is
application-dependent.
2.4.318 Sync
When multiple windows are used to view a sheet with synchronous scrolling enabled, the Sync record
specifies the coordinates of the top-left visible cell of all windows.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
rw (2 bytes): A RwU structure that specifies the row for the top-left visible cell of all windows.
col (2 bytes): A ColU structure that specifies the column for the top-left visible cell of all windows.
2.4.319 Table
The Table record specifies a data table (1). This record is preceded by a single Formula record that
defines the first cell in the data table (1). Other Formula records that represent the rest of cells in the
data table (1) follow later in the file, not necessarily in a contiguous sequence. Formula records that
define the cells in the data table (1) MUST have the cell field that is within the range specified in the
538 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ref field of this record and MUST have their formula begin with PtgTbl. Also, each cell specified in the
ref field MUST have a Formula that is part of this table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ref
... A B C D E F reserved2
rwInpRw colInpRw
rwInpCol colInpCol
ref (6 bytes): A Ref structure that specifies the range of the data table (1). The value of
ref.rwFirst.rw MUST be greater than or equal to 1. The value of ref.colFirst.col MUST be
greater than or equal to 1.
A - fAlwaysCalc (1 bit): A bit that specifies whether this data table (1) is recalculated as part of the
next recalculation.
C - fRw (1 bit): A bit that specifies whether the input cell of a one-variable data table is a row
input cell or a column input cell. If the value is 1, the input cell for a one-variable data table is a
row input cell.
If the value of the fTbl2 field is 1, the value of fRw is undefined and MUST be ignored.
D - fTbl2 (1 bit): A bit that specifies whether the data table (1) is a two-variable data table or a
one-variable data table. If the value is 1, the data table (1) is a two-variable data table.
E - fDeleted1 (1 bit): A bit that specifies whether the cell referenced in the input cell specified by
the rwInpRw and colInpRw fields is deleted.
F - fDeleted2 (1 bit): A bit that specifies whether the cell referenced in the input cell specified by
the rwInpCol and colInpCol fields is deleted.
rwInpRw (2 bytes): A RwU structure that specifies either the row of a row input cell or the row of a
column input cell. If the value of the fTbl2 field is 0 and the value of the fRw field is 0, the value
of rwInpRw specifies the row of a column input cell; for any other combination of the fTbl2 and
fRw fields, rwInpRw specifies the row of a row input cell. If the value of fDeleted field is 1, the
value of rwInpRw MUST be 65535.
rwInpRw and colInpRw MUST specify a cell outside the bounds specified by ref.rwFirst – 1,
ref.rwLast, ref.colFirst – 1, and ref.colLast.
colInpRw (2 bytes): A Col_NegativeOne structure that specifies either the column of a row input
cell or the column of a column input cell. If the value of the fTbl2 field is 0 and the value of fRw
field is 0, the value of colInpRw specifies the column of the column input cell; for any other
combination of the fTbl2 and fRw fields, colInpRw specifies the column of a row input cell. If the
539 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
value of the fDeleted field is 1, the value of colInpRw MUST be -1. If the value of the fDeleted
field is 0, the value of colInpRw MUST be greater than or equal to 0.
rwInpCol (2 bytes): A RwU structure that specifies the row of the column input cell. The restrictions
on the value of rwInpCol are dictated by the value of the fTbl2 field and the value of the
fDeleted2 field, as specified in the following table:
colInpCol (2 bytes): A Col_NegativeOne structure that specifies the column of the column input
cell. The restrictions on the value of colInpCol are dictated by the value of the fTbl2 field and the
value of the fDeleted2 field, as specified in the following table:
2.4.320 TableStyle
The TableStyle record specifies a user-defined table style and the beginning of a collection of
TableStyleElement records as specified by the Globals Substream ABNF. The collection of
TableStyleElement records specifies the properties of the table style.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
A B C reserved2 ctse
... cchName
rgchName (variable)
540 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x088F.
B - fIsPivot (1 bit): A bit that specifies whether the style can be applied to PivotTable views.
C - fIsTable (1 bit): A bit that specifies whether the style can be applied to tables.
ctse (4 bytes): An unsigned integer that specifies the count of TableStyleElement records to follow
this record. MUST be less than or equal to 28.
cchName (2 bytes): An unsigned integer that specifies the count of characters in the rgchName
field. This value MUST be less than or equal to 255 and greater than or equal to 1.
rgchName (variable): An array of Unicode characters whose length is specified by cchName that
specifies the style name.
2.4.321 TableStyleElement
The TableStyleElement record specifies formatting for one element of a table style. Each table style
element specifies the formatting to apply to a particular area of a table or PivotTable view when the
table style is applied.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
tseType
size
index
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x0890.
tseType (4 bytes): An unsigned integer that specifies the area of the table or PivotTable viewto
which the formatting is applied. MUST be a value from the following table:
Value Meaning
0x00000000 Whole table. If this table style is applied to a PivotTable view, this formatting type
also applies to page field captions and page item captions.
0x00000001 Header row. If this table style is applied to a PivotTable view, this formatting type
applies to the collection of rows above the data region. See S in the PivotTable
Style Diagram.
0x00000002 Total row. If this table style is applied to a PivotTable view, this formatting type
applies to the grand total row. See N in the PivotTable Style Diagram.
541 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00000003 First column. If this table style is applied to a PivotTable view, this formatting type
applies to the row label area, which can span multiple columns. See R in the
PivotTable Style Diagram.
0x00000004 Last column. If this table style is applied to a PivotTable view, this formatting type
applies to the grand total column. See A in the PivotTable Style Diagram.
0x00000005 Row stripe band 1
0x00000006 Row stripe band 2
0x00000007 Column stripe band 1
0x00000008 Column stripe band 2
0x00000009 First cell of Header row. If this table style is applied to a PivotTable view, this
formatting type applies to cells contained in area intersected by the header row and
first column.
0x0000000A Last cell of header row. MUST be ignored if this table style is applied to a PivotTable
view.
0x0000000B First cell of Total row. MUST be ignored if this table style is applied to a PivotTable
view.
0x0000000C Last cell of Total row. MUST be ignored if this table style is applied to a PivotTable
view.
0x0000000D Outermost subtotal columns in a PivotTable view, specified by the columns
displaying subtotals for the first Sxvd record in the PIVOTVD collection where the
sxaxis field of the Sxvd record specifies the column axis. See B in the PivotTable
Style Diagram. Used only for PivotTables.
0x0000000E Alternating even subtotal columns in a PivotTable view, specified by the columns
displaying subtotals for Sxvd records for which the zero-based index in the PIVOTVD
collection is an odd number, omitting Sxvd records where the sxaxis field of the
Sxvd record does not specify the column axis. See C in the PivotTable Style
Diagram. Used only for PivotTables.
0x0000000F Alternating odd subtotal columns in a PivotTable view, specified by the columns
displaying subtotals for Sxvd records for which the zero-based index in the PIVOTVD
collection is an even number greater than zero, omitting Sxvd records where the
sxaxis field of the Sxvd record does not specify the column axis. See D in the
PivotTable Style Diagram. Used only for PivotTables.
0x00000010 Outermost subtotal rows in a PivotTable view, specified by the rows displaying
subtotals for the first Sxvd record in the PIVOTVD collection where the sxaxis field
of the Sxvd record specifies the row axis. See M in the PivotTable Style Diagram.
Used only for PivotTables.
0x00000011 Alternating even subtotal rows in a PivotTable view, specified by the rows displaying
subtotals for Sxvd records for which the zero-based index in the PIVOTVD collection
is an odd number, omitting Sxvd records where the sxaxis field of the Sxvd record
does not specify the row axis. See K in the PivotTable Style Diagram. Used only for
PivotTables.
0x00000012 Alternating odd subtotal rows in a PivotTable view, specified by the rows displaying
subtotals for Sxvd records for which the zero-based index in the PIVOTVD collection
is an even number greater than zero, omitting Sxvd records where the sxaxis field
of the Sxvd record does not specify the row axis. See J in the PivotTable Style
Diagram. Used only for PivotTables.
0x00000013 Empty rows after each subtotal row. See L in the PivotTable Style Diagram. Used
only for PivotTables.
0x00000014 Outermost column subheadings in a PivotTable view, specified by the columns
displaying pivot field captions for the first Sxvd record in the PIVOTVD collection
where the sxaxis field of the Sxvd record specifies the column axis. See O in the
PivotTable Style Diagram. Used only for PivotTables.
0x00000015 Alternating even column subheadings in a PivotTable view, specified by the column
columns displaying pivot field captions for Sxvd records for which the zero-based
index in the PIVOTVD collection is an odd number, omitting Sxvd records where the
sxaxis field of the Sxvd record does not specify the column axis. See P in the
542 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
PivotTable Style Diagram. Used only for PivotTables.
0x00000016 Alternating odd column subheadings in a PivotTable view, specified by the columns
displaying pivot field captions for Sxvd records for which the zero-based index in the
PIVOTVD collection is an even number greater than zero, omitting Sxvd records
where the sxaxis field of the Sxvd record does not specify the column axis. See Q
in the PivotTable Style Diagram. Used only for PivotTables.
0x00000017 Outermost row subheadings in a PivotTable view, specified by the rows displaying
pivot field captions for the first Sxvd record in the PIVOTVD collection where the
sxaxis field of the Sxvd record specifies the row axis. See G in the PivotTable Style
Diagram. Used only for PivotTables.
0x00000018 Alternating even row subheadings in a PivotTable view, specified by the rows
displaying pivot field captions for Sxvd records for which the zero-based index in the
PIVOTVD collection is an odd number, omitting Sxvd records where the sxaxis field
of the Sxvd record does not specify the row axis. See H in the PivotTable Style
Diagram. Used only for PivotTables.
0x00000019 Alternating odd row subheadings in a PivotTable view, specified by the rows
displaying pivot field captions for Sxvd records for which the zero-based index in the
PIVOTVD collection is an even number greater than zero, omitting Sxvd records
where the sxaxis field of the Sxvd record does not specify the row axis. See I in the
PivotTable Style Diagram. Used only for PivotTables.
0x0000001A Page field captions in a PivotTable view, specified by the cells displaying pivot field
captions for the Sxvd records in the PIVOTVD collection where the sxaxis field of the
Sxvd record specifies the page axis. See F in the PivotTable Style Diagram. Used
only for PivotTables.
0x0000001B Page item captions in a PivotTable view, specified by the cells displaying pivot item
captions for the Sxvd records in the PIVOTVD collection where the sxaxis field of the
Sxvd record specifies the page axis. See E in the PivotTable Style Diagram. Used
only for PivotTables.
543 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 18: PivotTable-style diagram
size (4 bytes): An unsigned integer that specifies the number of rows or columns to include in a
single stripe band. MUST be ignored when the value of tseType does not equal 0x00000005,
0x00000006, 0x00000007, or 0x00000008. MUST be greater than or equal to 1 and less than or
equal to 9.
index (4 bytes): A DXFId structure that specifies the DXF record that contains the differential
formatting properties for this element.
2.4.322 TableStyles
The TableStyles record specifies the default table and PivotTable table styles and specifies the
beginning of a collection of TableStyle records as defined by the Globals Substream ABNF. The
collection of TableStyle records specifies user-defined table styles.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
544 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cts
cchDefTableStyle cchDefPivotStyle
rgchDefTableStyle (variable)
...
rgchDefPivotStyle (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x088E.
cts (4 bytes): An unsigned integer that specifies the total number of table styles in this document.
This is the sum of the standard built-in table styles and all of the custom table styles. This value
MUST be greater than or equal to 144 (the number of built-in table styles).
cchDefTableStyle (2 bytes): An unsigned integer that specifies the count of characters in the
rgchDefTableStyle field. This value MUST be less than or equal to 255.
cchDefPivotStyle (2 bytes): An unsigned integer that specifies the count of characters in the
rgchDefPivotStyle field. This value MUST be less than or equal to 255.
2.4.323 Template
The Template record is an empty record that specifies whether the workbook is a template. If this
record is present, the workbook is a template.
2.4.324 Text
The Text record specifies the properties of an attached label and specifies the beginning of a collection
of records as defined by the chart sheet substream ABNF. This collection of records specifies an
attached label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
at vat wBkgMode
rgbText
545 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
x
dx
dy
A B C D E F G H I J K L M N icvText
at (1 byte): An unsigned integer that specifies the horizontal alignment of the text. MUST be a
value from the following table:
Value Alignment
0x01 Left-alignment if iReadingOrder specifies left-to-right reading
order; otherwise, right-alignment
0x02 Center-alignment
vat (1 byte): An unsigned integer that specifies the vertical alignment of the text. MUST be a value
from the following table:
Value Alignment
0x01 Top-alignment
0x02 Center-alignment
0x03 Bottom-alignment
0x04 Justify-alignment
0x07 Distributed alignment
wBkgMode (2 bytes): An unsigned integer that specifies the display mode of the background of the
text. MUST be a value from the following table:
rgbText (4 bytes): A LongRGB structure that specifies the color of the text.
546 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
x (4 bytes): A signed integer that specifies the horizontal position of the text, relative to the upper-
left of the chart area (section 2.2.3.17) in SPRC. This value MUST be ignored when this record is
preceded by a DefaultText record or when it is followed by a Pos record; otherwise MUST be
greater than or equal to 0 and less than or equal to 32767. SHOULD<132> be less than or equal
to 4000.
y (4 bytes): A signed integer that specifies the vertical position of the text, relative to the upper-left
of the chart area (section 2.2.3.17) in SPRC. This value MUST be ignored when this record is
preceded by a DefaultText record or when it is followed by a Pos record; otherwise MUST be
greater than or equal to 0 and less than or equal to 32767. SHOULD<133> be less than or equal
to 4000.
dx (4 bytes): A signed integer that specifies the horizontal size of the text, relative to the chart area
(section 2.2.3.17) in SPRC. This value MUST be ignored when this record is followed by a Pos
record; otherwise MUST be greater than or equal to 0 and less than or equal to 32767.
SHOULD<134> be less than or equal to 4000.
dy (4 bytes): A signed integer that specifies the vertical size of the text, relative to the chart area
(section 2.2.3.17) in SPRC. This value MUST be ignored when this record is followed by a Pos
record; otherwise MUST be greater than or equal to 0 and less than or equal to 32767.
SHOULD<135> be less than or equal to 4000.
A - fAutoColor (1 bit): A bit that specifies whether the foreground text color is determined
automatically.
B - fShowKey (1 bit): A bit that specifies whether the text is attached to a legend key.
C - fShowValue (1 bit): A bit that specifies whether the value, or the vertical value on bubble or
scatter chart groups, is displayed in the data label.
If the current attached label contains a DataLabExtContents record and the fPercent field of the
DataLabExtContents record equals 0, this field MUST equal the fValue field of the
DataLabExtContents record.
If the current attached label does not contain a DataLabExtContents record and
fShowLabelAndPerc equals 1, this field MUST equal 0.
This field MUST equal 0 if the current attached label does not contain a DataLabExtContents record
and one or more of the following conditions are satisfied:
E - fAutoText (1 bit): A bit that specifies whether the text value of this text field is automatically
generated and unchanged.
F - fGenerated (1 bit): A bit that specifies whether the properties of this text field are automatically
generated and unchanged.
G - fDeleted (1 bit): A bit that specifies whether this data label was deleted by the user.
H - fAutoMode (1 bit): A bit that specifies whether the background color is determined
automatically.
547 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
J - fShowLabelAndPerc (1 bit): A bit that specifies whether the category (2) name and the value,
represented as a percentage of the sum of the values of the series the data label is associated
with, are displayed in the data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point, is not
a bar of pie, doughnut, pie, or pie of pie chart group.
This field MUST equal 1 if the current attached label contains a DataLabExtContents record and
both of the following conditions are satisfied:
The fSerName, fValue, and fBubSizes fields of the DataLabExtContents record equal 0.
This field MUST equal 0 if the current attached label contains a DataLabExtContents record and
one or more of the following conditions is satisfied:
K - fShowPercent (1 bit): A bit that specifies whether the value, represented as a percentage of
the sum of the values of the series the data label is associated with, is displayed in the data label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not
a bar of pie, doughnut, pie, or pie of pie chart group.
If the current attached label contains a DataLabExtContents record, this field MUST equal the
value of the fPercent field of the DataLabExtContents record.
If the current attached label does not contain a DataLabExtContents record and
fShowLabelAndPerc equals 1, this field MUST equal 1.
L - fShowBubbleSizes (1 bit): A bit that specifies whether the bubble size is displayed in the data
label.
MUST equal 0 if the chart group type of the corresponding chart group, series, or data point is not
a bubble chart group.
If the current attached label contains a DataLabExtContents record and the fPercent, fValue, and
fCatName fields of the DataLabExtContents record equal 0, this field MUST equal the fBubSizes
field of the DataLabExtContents record.
If the current attached label contains a DataLabExtContents record and the fPercent, fValue, or
fCatName fields of the DataLabExtContents record equal 1, this field MUST equal 0.
If the current attached label does not contain a DataLabExtContents record and fShowPercent,
fShowValue, or fShowLabel equal 1, this field MUST equal 0.
M - fShowLabel (1 bit): A bit that specifies whether the category (2), or the horizontal value on
bubble or scatter chart groups, is displayed in the data label on a non-area chart group, or the
series name is displayed in the data label on an area chart group.
548 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This field MUST equal the fCatNameLabel field of the DataLabExtContents record if the current
attached label contains a DataLabExtContents record, the chart group is non-area, and both of
the following conditions are satisfied:
This field MUST equal the fCatNameLabel field of the DataLabExtContents record if the current
attached label contains a DataLabExtContents record, the chart group is area or filled radar, and
the following condition is satisfied:
If the current attached label contains a DataLabExtContents record and the fValue field of the
DataLabExtContents record equals 1, this field MUST equal 0.
This field MUST equal 0 if the current attached label does not contain a DataLabExtContents record
and one of the following conditions is satisfied:
icvText (2 bytes): An Icv structure that specifies the color of the text.
dlp (4 bits): An unsigned integer that specifies the data label positioning of the text, relative to the
graph object item the text is attached to. For all data label text fields, MUST be a value from the
following table:
549 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value for chart group
Data label position Value type
chart group
O - iReadingOrder (2 bits): An unsigned integer that specifies the reading order of the text. MUST
be a value from the following table:
trot (2 bytes): An unsigned integer that specifies the text rotation. MUST be a value from the
following table:
2.4.325 TextPropsStream
The TextPropsStream record specifies additional text properties for the text in the entire chart, text
in the current legend, text in the current legend entry, text in the attached label, or the axis labels of
the current axis. These text properties are a superset of the properties stored in the associated Text
and Font records based on the following table, as specified by Chart Sheet substream ABNF. In each
case, the associated Font record is specified by the associated FontX record.<136>
CHARTFORMATS Specifies additional Rich Text Format properties for the text of the
entire chart. The associated Text and FontX records are contained in
the attached label that is contained in the first sequence of records
that conforms to the DFTTEXT rule in the chart and that is not
contained in the chart group.
LD Specifies additional Rich Text Format properties for text in the current
550 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Rule containing the
TextPropsStream record Meaning
legend. The associated Text and FontX records are contained in the
sequence of records that conforms to the ATTACHEDLABEL rule that is
contained in the collection of records conforming to the LD rule.
SERIESFORMAT Specifies additional Rich Text Format properties for the current legend
entry. The associated Text and FontX records are contained in the
sequence of records that conforms to the ATTACHEDLABEL rule that
immediately precedes this record contained in the sequence of records
that conforms to the SERIESFORMAT rule.
ATTACHEDLABEL Specifies additional Rich Text Format properties for the text in the
attached label. The associated Text and FontX records are contained
in the sequence of records that conforms to the ATTACHEDLABEL rule.
AXS Specifies additional Rich Text Format properties for the axis labels of
the current axis. The associated Text and FontX records are contained
in the sequence of records that conforms to the AXS rule.
These text properties are stored in the XML stream (section 2.1.7.22), as specified in [ECMA-376]
Part 4, section 5.7.2.217.
An application can choose to ignore this record without loss of functionality, except for the additional
text properties. If an application chooses to implement this record, the application MUST implement
the validation checksum specified by the dwChecksum field.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
dwChecksum
cb
rgb (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x08A5.
dwChecksum (4 bytes): An unsigned integer that specifies the checksum of the text properties
attributes related to this record. The algorithm used to calculate the checksum is specified by [MS-
OSHARED] section 2.4.3.2. The checksum MUST be calculated from every property of the
property stream, taken as an array of bytes as specified by the TextPropsStreamChecksumData
structure.
The information required to build the memory stream can be gathered from the Text and Font
records associated with this record, as previously specified.
When reading this record, the checksum is calculated as previously specified and compared to the
dwChecksum value stored in this record. If the calculated checksum does not match the
551 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
dwChecksum data, the application MUST assume that the XML stream (section 2.1.7.22) is out
of date, and the data from the associated Text and Font records MUST be used instead of the data
specified by the XML stream (section 2.1.7.22).
cb (4 bytes): An unsigned integer that specifies the size of the rgb field. This field MUST contain the
exact length in bytes of the rgb field.
rgb (variable): An array of ANSI characters that contains the XML representation of the text
formatting properties, as defined in [ECMA-376] Part 4, section 5.7.2.217. The length of this field
is specified by the cb field.
2.4.326 Theme
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
dwThemeVersion
rgb (variable)
...
frtHeader (12 bytes): An FrtHeader structure. The value of the frtHeader.rt field MUST be 2198.
dwThemeVersion (4 bytes): An unsigned integer that specifies the theme type. SHOULD be a value
from the following table<137>:
Value Meaning
0 Custom theme
124226 Default theme
rgb (variable): An optional byte stream that specifies the theme contents (as defined in [ECMA-376]
Part 1, Section 14.2.7). MUST exist if dwThemeVersion equals 0.
2.4.327 Tick
The Tick record specifies the attributes of the axis labels, major tick marks, and minor tick marks
associated with an axis.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
552 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgb
reserved1
reserved2
reserved3
reserved4
trot
tktMajor (1 byte): An unsigned integer that specifies the location of major tick marks. MUST be a
value from the following table:
0x0001 Inside. Major tick marks are drawn toward the plot area.
0x0002 Outside. Major tick marks are drawn away from the plot area.
0x0003 Crossing. Major tick marks are drawn evenly on both sides of the axis.
tktMinor (1 byte): An unsigned integer that specifies the location of minor tick marks. MUST be a
value from the following table:
0x0001 Inside. Minor tick marks are drawn toward the plot area.
0x0002 Outside. Minor tick marks are drawn away from the plot area.
0x0003 Crossing. Minor tick marks are drawn evenly on both sides of the axis.
tlt (1 byte): An unsigned integer that specifies the location of axis labels. MUST be a value from the
following table:
0x0001 Low. Axis labels are drawn to the left of the plot area for a vertical axis
or below the plot area for a horizontal axis for all chart group types
except radar. Axis labels for radar chart group types will be drawn as if
the value was 0x0003.
0x0002 High. Axis labels are drawn to the right of the plot area for a vertical
axis or above the plot area for a horizontal axis for all chart group types
except radar. Axis labels for radar chart group types will be drawn as if
the value was 0x0003.
553 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Tick mark label location
0x0003 Next to Axis. Axis labels are drawn next to the axis.
wBkgMode (1 byte): An unsigned integer that specifies the display mode of the background of the
text of the axis labels. MUST be ignored if the value of fAutoCo is 1. MUST be a value from the
following table:
0x0002 Opaque background. The background color will match the rgbBack field
in the associated AreaFormat record as specified by the AXS rule in the
Chart Sheet Substream ABNF.
rgb (4 bytes): A LongRGB structure that specifies the color of the text for the axis labels. MUST be
ignored if fAutoCo is 1.
A - fAutoCo (1 bit): A bit that specifies if the foreground text color of the axis labels is determined
automatically.
Value Meaning
B - fAutoMode (1 bit): A bit that specifies if the background color of the axis label is determined
automatically.
Value Meaning
rot (3 bits): An unsigned integer that specifies text rotation of the axis labels. MUST be a value from
the following table:
0x0 Text is drawn with the rotation specified by the value of trot.
554 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Text Rotation
C - fAutoRot (1 bit): A bit that specifies whether the text rotation of the axis label is determined
automatically.
Value Meaning
0 The axis labels do not rotate automatically, and follow the rotation
specified by rot and trot.
1 The axis labels rotate as the location of the axis changes and the value
of the rot and trot fields MUST be ignored.
D - iReadingOrder (2 bits): An unsigned integer that specifies the reading order of the axis
labels. MUST be a value from the following table:
Value Meaning
0x0 The reading order is equal to the iReadingOrder value of the Text
record immediately following the closest preceding Chart, DataFormat,
Legend, Series or YMult record where iReadingOrder is not equal to
0x0. If no such preceding record exists, the DefaultText settings of the
chart is used. If the DefaultText settings also specify 0x0, the reading
order is determined by the Application.
0x1 Left-to-right
0x2 Right-to-left
icv (2 bytes): An Icv that specifies the color of the text. The color MUST be the same as rgb.
trot (2 bytes): An unsigned integer that specifies the axis label’s text rotation. MUST be a value
from the following table:
Value Meaning
2.4.328 TopMargin
The TopMargin record specifies the top margin of the current sheet.
555 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
num
...
num (8 bytes): An Xnum (section 2.5.342) structure that specifies the top margin of the current
sheet in inches. The value MUST be greater than or equal to 0 and less than or equal to 49.
2.4.329 TxO
The TxO record specifies the text in a text box or a form control. This record can be followed by a
collection of Continue records that specifies additional feature data to complete this record, as follows:
If the value of the cchText field is not zero, this record does not fully specify the text. The rest of
the data that MUST be specified is the text string and the formatting runs information. That data
is specified in two sets of following Continue records:
Text String Specification: The first set of Continue records specifies the text string.
Each of these Continue records contains an XLUnicodeStringNoCch structure that specifies
part of the string. The total number of characters in all XLUnicodeStringNoCch MUST be
cchText.
Formatting Run Specification: The second set of Continue records specifies formatting
runs. These Continue records contain a TxORuns structure. If the size of the TxORuns
structure is longer than 8,224 bytes, it is split across multiple Continue records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H rot
...
cchText cbRuns
...
B - hAlignment (3 bits): An unsigned integer that specifies the horizontal alignment. The value
MUST be one of the values in the following table:
Value Meaning
1 Specifies left alignment.
556 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
2<138> Specifies centered alignment.
C - vAlignment (3 bits): An unsigned integer that specifies the vertical alignment. The value
MUST be one of the values in the following table:
Value Meaning
1 Specifies top alignment.
G - fJustLast (1 bit): A bit that specifies whether the justify alignment or justify distributed
alignment is used on the last line of the text in specific versions of the application<140>.
H - fSecretEdit (1 bit): A bit that specifies whether this is a text box used for typing passwords and
hiding the actual characters being typed by the user.
rot (2 bytes): An unsigned integer that specifies the orientation of the text within the object
boundary. The value MUST be one of the values in the following table:
Value Meaning
0 Specifies no rotation.
reserved4 (2 bytes): MUST be zero and MUST be ignored. This field MUST exist if and only if the
value of cmo.ot in the preceding Obj record is not 0, 5, 7, 11, 12 or 14.
reserved5 (4 bytes): MUST be zero and MUST be ignored. This field MUST exist if and only if the
value of cmo.ot in the preceding Obj record is not 0, 5, 7, 11, 12 or 14.
557 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
controlInfo (6 bytes): An optional ControlInfo structure that specifies the properties for some form
controls. The field MUST exist if and only if the value of cmo.ot in the preceding Obj record is 0,
5, 7, 11, 12, or 14.
cchText (2 bytes): An unsigned integer that specifies the number of characters in the text string
contained in the Continue records immediately following this record.
cbRuns (2 bytes): An unsigned integer that specifies the number of bytes of formatting run
information in the TxORuns structure contained in the Continue records following this record. If
cchText is 0, this value MUST be 0. Otherwise, the value MUST be greater than or equal to 16
and MUST be a multiple of 8.
ifntEmpty (2 bytes): A FontIndex structure that specifies the font when the value of cchText is 0.
fmla (variable): An ObjFmla structure that specifies the parsed expression of the formula (section
2.2.2) for the text.
2.4.330 TxtQry
The TxtQry record specifies information for a text query and that specifies the beginning of a
collection of ExtString records, as defined by the Worksheet substream ABNF. The collection of
ExtString records specifies the connection string for a query that retrieves external data.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt reserved
A B C D iCpidNew E unused1
rowStartAt
F G H I J K L chCustom unused2
itwf
...
rgchFile (variable)
...
rt (2 bytes): An unsigned integer that specifies the record type. MUST be 0x0805.
A - fFile (1 bit): A bit that specifies that the query was generated from an import text file action.
MUST be 1.
B - fDelimited (1 bit): A bit that specifies whether the data is delimited. MUST be a value from the
following table:
558 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0 The data fields are of fixed size.
0x1 The data is delimited.
C - iCpid (2 bits): An unsigned integer that specifies the code page used for the origin of the file.
This value is unused when the value of the fUseNewiCpid field is equal to 1 and the value of the
iCpidNew field is greater than 2. MUST be a value from the following table:
Value Meaning
0x0 Macintosh
0x1 Windows (ANSI)
0x2 MS-DOS (PC-8)
D - fPromptForFile (1 bit): A bit that specifies whether a file name is prompted for on refresh.
MUST be a value from the following table:
Value Meaning
0x0 Saved file location is used during refresh
0x1 Prompt for file name on refresh
iCpidNew (10 bits): An unsigned integer that specifies application-specific code page information
that can be used to optimize text importation and can be ignored.
E - fUseNewiCpid (1 bit): A bit that specifies whether the iCpidNew value is used for specifying
the code page instead of the iCpid value.
rowStartAt (4 bytes): A signed integer that specifies the row in the source file where the query
begins.
F - fTab (1 bit): A bit that specifies whether the tab character is treated as a column delimiter.
G - fSpace (1 bit): A bit that specifies whether the space character is treated as a column delimiter.
H - fComma (1 bit): A bit that specifies whether the comma character is treated as a field delimiter.
I - fSemiColon (1 bit): A bit that specifies whether the semi-colon character is treated as a column
delimiter.
J - fCustom (1 bit): A bit that specifies whether the custom character defined in the chCustom field
is treated as a column delimiter.
K - fConsecutive (1 bit): A bit that specifies whether consecutive delimiters are treated as one
delimiter.
L - iTextDelm (2 bits): An unsigned integer that specifies a text delimiter. MUST be a value from
the following table:
Value Meaning
0x0 Quotation mark
0x1 Apostrophe
559 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x2 No text delimiter
chCustom (16 bits): An unsigned integer that specifies the custom delimiter Unicode character.
This value is used if the fCustom value equals 1.
itwf (4 bytes): A signed integer that specifies the number of fields in each row of data. MUST be
greater than 0 and less than or equal to 256.
chDecimal (1 byte): An unsigned integer that specifies the decimal separator. MUST be a character
from the ANSI character set.
chThousSep (1 byte): An unsigned integer that specifies the thousands separator. MUST be a
character from the ANSI character set.
rgtxtwf (variable): An array of TxtWf that specifies the text to column fields. The size of the array is
determined by the itwf value. The array MUST NOT be empty.
rgchFile (variable): An XLUnicodeString structure that specifies the name of the text file that is the
source of the query.
2.4.331 Uncalced
The Uncalced record specifies that formulas (section 2.2.2) were pending recalculation when the file
was saved.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1
2.4.332 Units
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
2.4.333 UserBView
The UserBView record specifies the general custom view settings that apply to a whole workbook.
There are accompanying UserSViewBegin records that specify individual custom view settings of each
sheet. The set of this record and the accompanying UserSViewBegin records share the same GUID.
560 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused1
tabId reserved1
...
...
dx
dy
wTabRatio A B C D E F G H I J K L M N
unused2 O P unused3
wMergeInterval st (variable)
...
tabId (2 bytes): A TabId structure that specifies the active sheet in this custom view. If the value
of the fInvalidTabId field is 1, the value of tabId is undefined and MUST be ignored.
guid (16 bytes): A GUID as specified by [MS-DTYP] that specifies the identity of the custom view.
x (4 bytes): A signed integer that specifies the horizontal position of the workbook window, in
pixels.
y (4 bytes): A signed integer that specifies the vertical position of the workbook window, in pixels.
dx (4 bytes): A signed integer that specifies the width of the workbook window, in pixels. MUST be
greater than or equal to 0.
dy (4 bytes): A signed integer that specifies the height of the workbook window, in pixels. MUST be
greater than or equal to 0.
wTabRatio (2 bytes): An unsigned integer that specifies the ratio of the window area used to
display sheet tabs and the window area used to display the horizontal scroll bar. The value of
wTabRatio MUST be greater than or equal to zero and less than or equal to 1000. A value of 0
specifies that only the horizontal scroll bar is displayed. A value of 1000 specifies that only sheet
tabs are displayed.
561 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fDspFmlaBar (1 bit): A bit that specifies whether a formula bar is displayed.
C - mdNoteDisp (2 bits): An unsigned integer that specifies whether to show cell comment and
visual cue on each cell that has a comment. MUST be a value from the following table:
Value Meaning
0x0 Comment and visual cue are off for each cell with a comment.
0x1 A visual cue that indicates the cell has a comment.
0x2 Comment and visual cue are on for each cell with a comment.
D - fDspHScroll (1 bit): A bit that specifies whether a horizontal scroll bar is displayed.
E - fDspVScroll (1 bit): A bit that specifies whether a vertical scroll bar is displayed.
F - fBotAdornment (1 bit): A bit that specifies whether sheet tabs are displayed.
G - fZoom (1 bit): A bit that specifies whether the workbook window is maximized. The value of
fIconic and the value of fZoom MUST NOT both be 1.
H - fHideObj (2 bits): A HideObjEnum structure that specifies how ActiveX objects, OLE objects,
and drawing objects appear in the workbook Window.
I - fPrintIncl (1 bit): A bit that specifies whether the custom view includes the print settings of the
workbook. MUST be a value from the following table:
Value Meaning
0x0 The custom view does not include print settings of the workbook.
0x1 The custom view includes print settings of the workbook.
UserSViewBegin records that have a guid field value equal to the guid of this
record specify which print settings are included in the custom view.
Additionally, print titles and print areas are specified by Lbl records that have
Name containing the guid of this record, using the following form, where <guid>
matches the value of guid with the characters left brace "{", right brace "}", and
dash "-" in guid replaced by an underscore "_" character:
J - fRowColIncl (1 bit): A bit that specifies whether the custom view includes the hidden rows,
hidden columns, and filters for the workbook. MUST be a value from the following table:
Value Meaning
0x0 The custom view does not include Hidden rows, hidden columns, or filter settings.
0x1 The custom view includes Hidden rows, hidden columns, or filter settings of the
workbook.
UserSViewBegin records that have a guid field value equal to the guid of this
record specify whether Hidden rows, hidden columns, or filter settings are included
562 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
in the custom view.
Additionally, hidden rows and hidden columns are specified by Lbl records that
have Name containing the guid of this record, using the following form, where
<guid> matches the value of guid with the characters left brace "{", right brace
"}", and dash "-" in guid replaced by an underscore "_" character:
Filter settings are also specified by Lbl records that have Name containing the
value of guid for this record, using the following form, where <guid> matches the
value of guid with the characters left brace "{", right brace "}", and dash "-" in
guid replaced by an underscore "_" character:
K - fInvalidTabId (1 bit): A bit that specifies whether the tabId field is ignored.
L - fTimedUpdate (1 bit): A bit that specifies whether updates associated with linked or external
data are coordinated. If the value of the fPersonalView field is 0, the value of fTimedUpdate
MUST be 0.
M - fAllMemChanges (1 bit): A bit that specifies whether the changes being saved have priority in a
merge conflict. If the value of the fTimedUpdate field is 0, the value of fAllMemChanges is
undefined and MUST be ignored.
N - fOnlySync (1 bit): A bit that specifies whether the automatic update merges the current changes
into a shared workbook or whether the automatic update merges and also saves the changes. If
the value of the fPersonalView field is 0, the value of fOnlySync MUST be 0.
O - fPersonalView (1 bit): A bit that specifies whether the custom view is the personal view of a
shared workbook. MUST be 0 if this is not a shared workbook.
P - fIconic (1 bit): A bit that specifies whether the workbook window is minimized. The value of
fIconic and the value of fZoom MUST NOT both be 1.
wMergeInterval (2 bytes): An unsigned integer that specifies the time interval, in minutes,
between automatic merges of a shared workbook. The restrictions on the value of
wMergeInterval are dictated by the value of the fPersonalView field and the value of the
fTimedUpdate field, as specified in the following table:
563 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
st (variable): An XLUnicodeString structure that specifies the name of the custom view.
2.4.334 UserSViewBegin
The UserSViewBegin record specifies custom view settings for the current sheet and specifies the
beginning of a collection of records as defined by the Chart Sheet substream ABNF, Dialog Sheet
substream ABNF, Macro Sheet substream ABNF, and Worksheet substream ABNF. The collection of
records specifies custom view settings for the current sheet. There is an associated UserBView record,
specified by the guid field, that specifies custom view settings that apply to the whole workbook. If
the current sheet is a chart sheet, the UserSViewBegin_Chart version of this record MUST be used.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
iTabid reserved1
wScale
icvHdr reserved2
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b
ref8TopLeft
...
operNumX
...
operNumY
...
colRPane rwBPane
guid (16 bytes): A GUID, as specified by [MS-DTYP], that specifies the association with a
UserBView. MUST equal the value of the guid field of the UserBView.
iTabid (2 bytes): A TabId structure that specifies the sheet of this custom view.
564 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
wScale (4 bytes): An unsigned integer that specifies the zoom level of the window used to display
the sheet. MUST be greater than or equal to 10 and less than or equal to 400.
icvHdr (2 bytes): An Icv structure that specifies the color of the gridlines displayed in the view.
MUST be less than or equal to 64.
A - fShowBrks (1 bit): A bit that specifies whether page breaks are displayed.
B - fDspFmlaSv (1 bit): A bit that specifies whether the window used to display the sheet displays
formulas or values. MUST be 0 for dialog sheets. MUST be a value from the following table:
Value Meaning
0x0 The window used to display the sheet displays values.
0x1 The window used to display the sheet displays formulas.
C - fDspGridSv (1 bit): A bit that specifies whether the window used to display the sheet displays
gridlines.
D - fDspRwColSv (1 bit): A bit that specifies whether the window used to display the sheet displays
row and column headings. MUST be 0 for dialog sheets.
E - fDspGutsSv (1 bit): A bit that specifies whether outline symbols are displayed. MUST be 0 for
dialog sheets. MUST be 1 for macro sheets.
F - fDspZerosSv (1 bit): A bit that specifies whether the window used to display the sheet displays
zero values or suppresses display of zero values. MUST be 0 for dialog sheets. MUST be a value
from the following table:
Value Meaning
0 The window used to display the sheet displays zero values.
1 The window used to display the sheet suppresses display of zero values.
G - fHorizontal (1 bit): A bit that specifies whether the sheet is centered between the horizontal
margins when printed.
H - fVertical (1 bit): A bit that specifies whether the sheet is centered between the vertical margins
when printed.
I - fPrintRwCol (1 bit): A bit that specifies whether to print the row and column headings. MUST be
0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal to the guid of
this record has the fPrintIncl field value of 0.
J - fPrintGrid (1 bit): A bit that specifies whether to print the gridlines. MUST be 0 for dialog sheets.
MUST be 0 if the UserBView record with guid field value equals to the guid of this record has the
fPrintIncl field value of 0.
565 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
K - fFitToPage (1 bit): A bit that specifies whether the fit to page option is enabled. MUST be 0 if
the UserBView record with guid field value equal to the guid of this record has the fPrintIncl
field value of 0.
L - fPrintArea (1 bit): A bit that specifies whether there is at least one print area on the sheet. If
the value of fOnePrintArea is 1, the value of fPrintArea MUST be 1. MUST be 0 for dialog
sheets. MUST be 0 if the UserBView record with guid field value equal to the guid of this record
has the fPrintIncl field value of 0.
Additionally, if fPrintArea is 1, there MUST exist an Lbl record for the print area as specified in
the description for the fPrintIncl field in UserBView.
M - fOnePrintArea (1 bit): A bit that specifies whether there is only one print area on the sheet.
MUST be 0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal to the
guid of this record has the fPrintIncl field value of 0.
Additionally, if fOnePrintArea is 1, there MUST exist an Lbl record for the print area as specified
in the description for the fPrintIncl field in UserBView.
N - fFilterMode (1 bit): A bit that specifies whether there are hidden cells because of filtering.
MUST be 0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal to the
guid of this record has the fRowColIncl field value of 0.
Additionally, if fFilterMode is 1, there MUST exist an Lbl record for the range being filtered as
specified in the description for the fRowColIncl field in UserBView. There can exist an Lbl record
for the range containing filter criteria as specified in the description for the fRowColIncl field in
UserBView.
O - fEzFilter (1 bit): A bit that specifies whether the AutoFilter icon is shown on the sheet. MUST
be 0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal to the guid
of this record has the fRowColIncl field value of 0.
Additionally, if fEzFilter is 1, there MUST exist an Lbl record for the range being filtered as
specified in the description for the fRowColIncl field in UserBView. There can exist an Lbl record
for the range containing filter criteria as specified in the description for the fRowColIncl field in
UserBView.
P - fFrozen (1 bit): A bit that specifies whether the panes in the window used to display the sheet
are frozen. If the value of fFrozenNoSplit is 1, the value of fFrozen MUST be 1.
Q - fFrozenNoSplit (1 bit): A bit that specifies whether the panes in the window used to display the
sheet are frozen panes but are not split panes.
R - fSplitV (1 bit): A bit that specifies whether the window used to display the sheet is split
vertically.
S - fSplitH (1 bit): A bit that specifies whether the window used to display the sheet is split
horizontally.
T - fHiddenRw (2 bits): An unsigned integer that specifies the state of hidden rows, excluding the
filtered rows. MUST be a value from the following table:
Value Meaning
0x0 Indicates a hidden row is present.
0x1 Indicates a hidden row is not present.
MUST be 0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal to the
guid of this record has the fRowColIncl field value of 0.
566 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Additionally, if fHiddenRw is 1, there MUST exist an Lbl record for the hidden rows as specified in
the description for the fRowColIncl field in UserBView.
U - fHiddenCol (1 bit): A bit that specifies whether there is at least one hidden column in the
sheet. MUST be 0 for dialog sheets. MUST be 0 if the UserBView record with guid field value equal
to the guid of this record has the fRowColIncl field value of 0.
Additionally, if fHiddenRw is 1, there MUST exist an Lbl record for the hidden columns as
specified in the description for the fRowColIncl field in UserBView.
W - fFilterUnique (1 bit): A bit that specifies whether the sheet has the advanced filter enabled
and is displaying only unique rows. MUST be 0 for dialog sheets. MUST be 0 if the UserBView
record with guid field value equal to the guid of this record has the fRowColIncl field value of 0.
Additionally, if fFilterUnique is 1, there MUST exist an Lbl record for the range being filtered as
specified in the description for the fRowColIncl field in UserBView. There can exist an Lbl record
for the range containing filter criteria as specified in the description for the fRowColIncl field in
UserBView.
X - fSheetLayoutView (1 bit): A bit that specifies whether the sheet is in the Page Break
Preview view. Only one of this value or the value of fPageLayoutView can be 1. If both values
are 0, the custom view is in the Normal view. MUST be 0 for dialog sheets and macro sheets.
Y - fPageLayoutView (1 bit): A bit that specifies whether the sheet is in the Page Layout view.
MUST be 0 for dialog sheets and macro sheets.
ref8TopLeft (8 bytes): A Ref8U structure that specifies the visible area of the logical top-left
pane.
operNumX (8 bytes): A floating-point number that specifies the left-to-right position of the start
of the split pane expressed as a column number. The value MUST be greater than or equal to 0.
The sum of this value and the value of ref8TopLeft.colFirst MUST be less than or equal to 256.
operNumY (8 bytes): A floating-point number that specifies the top-to-bottom position of the start
of the split pane expressed as a row number. The value MUST be greater than or equal to 0. The
sum of this value and the value of ref8TopLeft.rowFirst MUST be less than or equal to 65536.
colRPane (2 bytes): An unsigned integer that specifies the first visible column of the logical right
pane. MUST be 65535 or less than or equal to 255. If the value of the fSplitV field is 1, the value
of colRPane MUST be 65535. If the value of the fSplitV field is 0, the value of colRPane MUST
be less than or equal to 255.
rwBPane (2 bytes): An unsigned integer that specifies the first visible row of the bottom pane. If
the value of the fSplitH field is 1, the value of rwRPane MUST be 65535.
2.4.335 UserSViewBegin_Chart
The UserSViewBegin_Chart record specifies custom view settings for the current chart sheet and
that specifies the beginning of a collection of records as defined by the Chart Sheet substream ABNF.
The collection of records specifies custom view settings for the current chart sheet. There is an
associated UserBView record, specified by the guid field, that specifies custom view settings that
apply to the whole workbook.
567 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
iTabid
wScale
reserved1
unused1
reserved2 A reserved3 B C
unused2
...
unused3
...
unused4
...
unused5 unused6
guid (16 bytes): A GUID, as specified by [MS-DTYP], that specifies the association with a
UserBView. MUST equal the value of the guid field of the UserBView record.
iTabid (4 bytes): A TabId structure that specifies the sheet of this custom view.
wScale (4 bytes): An unsigned integer that specifies the zoom level of the window used to display
the sheet. MUST be greater than or equal to 10 and less than or equal to 400.
A - hsState (2 bits): An unsigned integer that specifies the hidden state of the chart sheet. MUST
be a value from the following table:
Value Meaning
0x0 The chart sheet is visible.
0x1 The chart sheet is hidden.
568 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x2 Very Hidden; the sheet is hidden and cannot be displayed using the user interface.
B - fZoomToFit (1 bit): A bit that specifies whether the zoom level is set to "Zoom to Fit Selection".
SHOULD<141> be 1 if the current zoom level specified by the wScale field fits the current
selection.
2.4.336 UserSViewEnd
The UserSViewEnd record specifies the end of a collection of records, as defined by the common
productions substream ABNF and the Dialog Sheet substream ABNF. The collection of records
specifies a collection of custom view records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
2.4.337 UsesELFs
The UsesELFs record specifies whether the file supports natural language formulas.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
useselfs
useselfs (2 bytes): A Boolean (section 2.5.14) that specifies whether the file supports natural
language formulas. The value SHOULD<142> be 0x0000.
2.4.338 UsrChk
The UsrChk record specifies the version information for the last user who opened the shared
workbook.
569 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
version reserved
version (2 bytes): An unsigned integer that specifies the BIFF version that was used by the last
user to open the shared workbook. The value MUST be a value from the following table:
Value Meaning
0x0200 BIFF2
0x0300 BIFF3
0x0400 BIFF4
0x0500 BIFF5
0x0600 BIFF8
2.4.339 UsrExcl
The UsrExcl record specifies whether a user has acquired an exclusive lock on the shared workbook
and that specifies the beginning of a collection of records as defined by the revision stream ABNF.
The collection of records specifies properties for a shared workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fExclusive
sdtr
...
...
fExclusive (4 bytes): A Boolean (section 2.5.14) that specifies whether the user has an exclusive
lock on the workbook. The value MUST be a value from the following table:
Value Meaning
0x00000000 The user does not have an exclusive lock on the workbook.
0x00000001 The user has an exclusive lock on the workbook.
sdtr (8 bytes): A ShortDTR structure that specifies the date and time when fExclusive was set to
0x00000001.
570 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchUser (2 bytes): An unsigned integer that specifies the number of characters in stUser that are
used to specify the name of the user who has locked the workbook. Characters in stUser that are
to the right of these used characters are ignored. MUST be less than or equal to 0x0036.
stUser (variable): An XLUnicodeStringNoCch structure that specifies the name of the user who has
locked the workbook. The count of characters MUST be 147.
2.4.340 UsrInfo
The UsrInfo record specifies information about a user who currently has the shared workbook open.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
lUsrId
...
...
shortdtr
...
stUserName (variable)
...
unused
lUsrId (4 bytes): A signed integer that specifies a unique user identifier for this user.
guid (16 bytes): A GUID, as specified by [MS-DTYP], that specifies the last set of revisions synced
to by this user.
shortdtr (8 bytes): A ShortDTR structure that specifies the date and time this user opened the
shared workbook.
stUserName (variable): A XLUnicodeString structure that specifies the name of this user. The
number of characters in this string MUST be greater than or equal to 1 and less than or equal to
54.
2.4.341 ValueRange
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numMin
571 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
numMax
...
numMajor
...
numMinor
...
numCross
...
A B C D E F G H unused
numMin (8 bytes): An Xnum (section 2.5.342) structure that specifies the minimum value of the
value axis. MUST be less than the value of numMax. If the value of fAutoMin is 1, this field
MUST be ignored.
numMax (8 bytes): An Xnum structure that specifies the maximum value of the value axis. MUST be
greater than the value of numMin. If the value of fAutoMax is 1, this field MUST be ignored.
numMajor (8 bytes): An Xnum structure that specifies the interval at which major tick marks and
major gridlines are displayed. MUST be greater than or equal to the value of numMinor. If the
value of fAutoMajor is 1, this field MUST be ignored.
numMinor (8 bytes): An Xnum structure that specifies the interval at which minor tick marks and
minor gridlines are displayed. MUST be greater than or equal to zero. If the value of
fAutoMinor is 1, this field MUST be ignored.
numCross (8 bytes): An Xnum structure that specifies at which value the other axes in the axis
group cross this value axis. If the value of fAutoCross is 1, this field MUST be ignored.
A - fAutoMin (1 bit): A bit that specifies whether numMin is calculated automatically. MUST be a
value from the following table:
Value Meaning
0 The value specified by numMin is used as the minimum value of the value axis.
1 numMin is calculated such that the data point with the minimum value can be displayed in
the plot area.
B - fAutoMax (1 bit): A bit that specifies whether numMax is calculated automatically. MUST be a
value from the following table:
Value Meaning
0 The value specified by numMax is used as the maximum value of the value axis.
572 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
1 numMax is calculated such that the data point with the maximum value can be displayed in
the plot area.
C - fAutoMajor (1 bit): A bit that specifies whether numMajor is calculated automatically. MUST be
a value from the following table:
Value Meaning
0 The value specified by numMajor is used as the interval at which major tick marks and
major gridlines are displayed.
D - fAutoMinor (1 bit): A bit that specifies whether numMinor is calculated automatically. MUST be
a value from the following table:
Value Meaning
0 The value specified by numMinor is used as the interval at which minor tick marks and
minor gridlines are displayed.
1 numMinor is calculated automatically.
E - fAutoCross (1 bit): A bit that specifies whether numCross is calculated automatically. MUST be
a value from the following table:
Value Meaning
0 The value specified by numCross is used as the point at which the other axes in the axis
group cross this value axis.
1 numCross is calculated so that the crossing point is displayed in the plot area.
F - fLog (1 bit): A bit that specifies whether the value axis has a logarithmic scale. MUST be a value
from the following table:
Value Meaning
0 The scale of the value axis is linear.
1 The scale of the value axis is logarithmic. The default base of the logarithmic scale is 10,
unless a CrtMlFrt record follows this record, specifying the base in a XmlTkLogBaseFrt
structure.
G - fReversed (1 bit): A bit that specifies whether the values on the value axis are displayed in
reverse order. MUST be a value from the following table:
Value Meaning
0 Values are displayed from smallest-to-largest, from left-to-right, or from bottom-to-top,
respectively, depending on the orientation of the axis.
1 The values are displayed in reverse order, meaning largest-to-smallest, from left-to-right, or
from bottom-to-top, respectively.
573 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
H - fMaxCross (1 bit): A bit that specifies whether the other axes in the axis group cross this value
axis at the maximum value. MUST be a value from the following table:
Value Meaning
0 The other axes in the axis group cross this value axis at the value specified by numCross.
1 The other axes in the axis group cross the value axis at the maximum value. If fMaxCross
is 1, then both fAutoCross and numCross MUST be ignored.
2.4.342 VCenter
The VCenter record specifies whether the sheet is centered vertically when printed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
vcenter
vcenter (2 bytes): A Boolean (section 2.5.14) that specifies whether the sheet is centered between
TopMargin and BottomMargin when printed.
2.4.343 VerticalPageBreaks
The VerticalPageBreaks record specifies a list of all explicit column page breaks in the sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cbrk (2 bytes): An unsigned integer that specifies the number of page breaks. The value MUST be
less than or equal to 255.
rgbrk (variable): An array of VertBrk that specifies all of the page breaks. The array MUST be
sorted first by the col value and then by the RowStart value in each VertBrk. Two page breaks
MUST NOT overlap. The number of VertBrk MUST equal the value of cbrk.
2.4.344 WebPub
The WebPub record specifies the information for a single published Web page.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtRefHeaderU
...
574 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
reserved3 unused2
nStyleId
cb
srcName (variable)
...
stFileDest (variable)
...
stDivId (variable)
...
stTitle (variable)
...
crtID (optional)
frtRgb (variable)
...
unused3
tws (1 byte): An unsigned integer that specifies the type of Web source that was published. It MUST
be a value from the following table:
Value Meaning
0xFF The source is undefined.
0x00 Workbook
0x01 Entire sheet
0x02 Print area
0x03 AutoFilter range
0x04 Range of cells
0x05 Chart
575 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x06 PivotTable report
0x07 Query table (external data range)
0x08 Named range
twd (1 byte): An unsigned integer that specifies the type of Web page created and whether the item
is static or interactive. It MUST be a value from the following table:
Value Meaning
0x00 Non-interactive page, only for viewing
0x01 Uses workbook functionality
0x02 Uses PivotTable functionality
0x03 Uses chart functionality
B - fAutoRepublish (1 bit): This bit specifies whether to republish the Web page when it is saved.
D - fMhtml (1 bit): This bit specifies whether the file is published as a single Web page or as a Web
page with references to other files.
nStyleId (4 bytes): An unsigned integer that specifies the unique identifier for this published
content.
cb (4 bytes): An unsigned integer that specifies the size of the data that follows in this record
according to the following formula:
size of srcName + size of stFileDest + size of stDivId + size of stTitle + size of crtID + size of
frtRGB + size of unused3
srcName (variable): A WebPubString structure that specifies the named range to be published. The
field MUST exist if and only if the value of tws is greater than 4. The character count in the string
MUST be less than or equal to 255.
stFileDest (variable): A WebPubString structure that specifies the URL or the path to the location of
the published page. The character count in the string MUST be less than or equal to 255.
stDivId (variable): A WebPubString structure that specifies the destination bookmark of the
published page. The character count in the string MUST be less than or equal to 255.
stTitle (variable): A WebPubString structure that specifies the title of the published item.
crtID (4 bytes): An MSOSPID structure, as specified in [MS-ODRAW], that specifies the published
chart object. This field MUST exist if and only if tws equals 5.
576 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
frtRgb (variable): A binary stream that specifies the bytes reserved for future use. The size of this
field in bytes is calculated according to the following formula:
size of this record – 30 – size of srcName – size of stFileDest – size of stDivId – size of stTitle
– size of crtID<143>
2.4.345 Window1
The Window1 record specifies attributes of a window used to display a sheet (called "the window"
within this record definition). For each Window1 record in the Globals Substream there MUST be an
associated Window2 record in each chart sheet, worksheet, macro sheet, and dialog sheet substream
that exists in the workbook. The Window2 record in a given substream associated with a given
Window1 record is the Window2 record whose ordinal position in the collection of Window2 records in
the containing substream is equal to the ordinal position of the given Window1 record in the collection
of Window1 records in the Globals Substream. Each Window2 record specifies extended properties of
the associated Window1 record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xWn yWn
dxWn dyWn
A B C D E F G reserved itabCur
itabFirst ctabSel
wTabRatio
xWn (2 bytes): A signed integer that specifies the horizontal position, in twips, of the window. The
value is relative to the logical left edge of the client area of the window.
yWn (2 bytes): A signed integer that specifies the vertical position, in twips, of the window. The
value is relative to the top edge of the client area of the window.
dxWn (2 bytes): A signed integer that specifies the width, in twips, of the window. MUST be greater
than or equal to 1.
dyWn (2 bytes): A signed integer that specifies the height, in twips, of the window. MUST be
greater than or equal to 1.
A - fHidden (1 bit): A bit that specifies whether the window is in the list of hidden windows.
C - fVeryHidden (1 bit): A bit that specifies whether the window has the properties of fHidden and
that also specifies that the user cannot see that the window is in the list of hidden windows.
D - fDspHScroll (1 bit): A bit that specifies whether a horizontal scroll bar is displayed.
E - fDspVScroll (1 bit): A bit that specifies whether a vertical scroll bar is displayed.
F - fBotAdornment (1 bit): A bit that specifies whether sheet tabs are displayed.
577 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
G - fNoAFDateGroup (1 bit): A bit that specifies whether dates are grouped hierarchically in the
AutoFilter menu or listed chronologically in the AutoFilter menu.
Value Meaning
0 Dates are grouped by year, month and day in the AutoFilter menu.
1 Dates are listed chronologically in the AutoFilter menu.
itabCur (2 bytes): A TabIndex structure that specifies the selected sheet tab.
itabFirst (2 bytes): A TabIndex structure that specifies the first displayed sheet tab.
ctabSel (2 bytes): An unsigned integer that specifies the number of sheet tabs that are selected.
The value MUST be less than or equal to the number of sheets in the workbook. Each sheet
stream in the workbook stream specifies a sheet.
wTabRatio (2 bytes): An unsigned integer that specifies the ratio of the width of the sheet tabs to
the width of the horizontal scroll bar, multiplied by 1000. MUST be less than or equal to 1000.
2.4.346 Window2
The Window2 record specifies attributes of the window used to display a sheet in a workbook and
that specifies the beginning of a collection of records as defined by the Chart Sheet substream ABNF,
Macro Sheet substream ABNF, and Worksheet substream ABNF. The collection of records specifies the
settings of a Page Layout view for a sheet, the zoom of the current view, the position of either
frozen panes or unfrozen panes, and the selected cells within the sheet. When this record is
contained in a macro sheet substream or a worksheet substream, it has a length of 18 bytes. When
this record is contained in a chart sheet substream, it has a length of 10 bytes (which are the first 10
bytes of the original 18-byte record) and only the fSelected field is used. This record specifies
extended properties of an associated Window1 record, and that association is specified in Window1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M rwTop
colLeft icvHdr
reserved2 wScaleSLV
wScaleNormal unused
reserved3
A - fDspFmlaRt (1 bit): A bit that specifies whether the window displays formulas (section 2.2.2) or
values. If the value is 1, the window displays formulas (section 2.2.2). This field is undefined and
MUST be ignored if this record is contained in a chart sheet substream.
B - fDspGridRt (1 bit): A bit that specifies whether the window displays gridlines.
Value Meaning
0 The window does not display gridlines.
1 The window displays gridlines.
578 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
C - fDspRwColRt (1 bit): A bit that specifies whether the window displays row headings and column
headings.
Value Meaning
0 The window does not display row headings and column headings.
1 The window displays row headings and column headings.
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
D - fFrozenRt (1 bit): A bit that specifies whether the panes in the window are frozen. The value
MUST be 0 if either the value of colLeft is 255 or the value of rwTop is 65535. This field is
undefined and MUST be ignored if this record is contained in a chart sheet substream.
E - fDspZerosRt (1 bit): A bit that specifies whether the window displays zero values.
Value Meaning
0 The window displays cells that have a value of zero as blank.
1 The window displays cells that have a value of zero as a zero.
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
F - fDefaultHdr (1 bit): A bit that specifies whether the gridlines of the window are drawn in the
window's default foreground color or in the color specified by the value of icvHdr. This field is
undefined and MUST be ignored if this record is contained in a chart sheet substream.
Value Meaning
0 Gridlines of the window are drawn in the color specified by the value of icvHdr.
1 Gridlines of the window are drawn in the default foreground color of the window.
G - fRightToLeft (1 bit): A bit that specifies whether the text is displayed in right-to-left mode in
the window.
Value Meaning
0 The text is displayed in left-to-right mode.
1 The text is displayed in right-to-left mode.
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
H - fDspGuts (1 bit): A bit that specifies whether the window displays the outline state. This field
is undefined and MUST be ignored if this record is contained in a chart sheet substream.
I - fFrozenNoSplit (1 bit): A bit that specifies whether the panes in the window are frozen without
pane splits or frozen with pane splits. If the value of fFrozenRt is 0, the value of fFrozenNoSplit
MUST be 0.
Value Meaning
0 The panes in the window are frozen with pane splits.
1 The panes in the window are frozen without pane splits.
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
J - fSelected (1 bit): A bit that specifies whether the sheet tab is selected.
K - fPaged (1 bit): A bit that specifies whether the sheet is currently being displayed in the window.
This field is undefined and MUST be ignored if this record is contained in a chart sheet substream.
579 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
L - fSLV (1 bit): A bit that specifies whether the sheet is in Page Break Preview view. This field is
undefined and MUST be ignored if this record is contained in a chart sheet substream.
M - reserved1 (4 bits): MUST be zero, and MUST be ignored. This field is undefined and MUST be
ignored if this record is contained in a chart sheet substream.
rwTop (2 bytes): A RwU structure that specifies a zero-based row index of the first visible row of
the sheet. This field is undefined and MUST be ignored if this record is contained in a chart sheet
substream.
colLeft (2 bytes): A ColU structure that specifies a zero-based column index of the logical left-
most visible column. This field is undefined and MUST be ignored if this record is contained in a
chart sheet substream.
icvHdr (2 bytes): An Icv structure that specifies the color of the gridlines. MUST be less than or
equal to 64. MUST be 64 if and only if the value of fDefaultHdr is 1. This field is undefined and
MUST be ignored if this record is contained in a chart sheet substream.
reserved2 (2 bytes): MUST be zero, and MUST be ignored. This field is undefined and MUST be
ignored if this record is contained in a chart sheet substream.
wScaleSLV (2 bytes): An unsigned integer that specifies the zoom level in the Page Break Preview
view. If the value of fSLV is 1 and this record has an associated Scl as specified in the ABNF in
Common Productions, the value of wScaleSLV is undefined and MUST be ignored. MUST<144>
be either 0 or greater than or equal to 10 and less than or equal to 400. A value of 0 specifies the
default zoom level. This field MUST NOT exist if this record is contained in a chart sheet
substream.
wScaleNormal (2 bytes): An unsigned integer that specifies the zoom level in the Normal view. If
the value of fSLV is 0 and the value of the fPageLayoutView field of the PLV, as specified in the
ABNF in Common Productions, is 0 and this record has an associated Scl, then the value of
wScaleNormal is undefined and MUST be ignored. MUST<145> be either 0 or greater than or
equal to 10 and less than or equal to 400. A value of 0 specifies the default zoom level. This field
MUST NOT exist if this record is contained in a chart sheet substream.
unused (2 bytes): Undefined and MUST be ignored. This field MUST NOT exist if this record is
contained in a chart sheet substream.
reserved3 (2 bytes): MUST be zero, and MUST be ignored. This field MUST NOT exist if this record
is contained in a chart sheet substream.
2.4.347 WinProtect
The WinProtect record specifies whether the workbook windows can be resized or moved and
whether the window state can be changed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fLockWn
fLockWn (2 bytes): A Boolean (section 2.5.14) that specifies whether the windows can be resized or
moved and whether the window state can be changed. It MUST be a value from the following
table:
Value Meaning
0x0000 The workbook windows can be resized or moved and the
window state can be changed.
580 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0001 The workbook windows cannot be resized or moved and the
window state cannot be changed.
2.4.348 WOpt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
dwPixelsPerInch
uiCodePage
rgbLocationOfComponents (variable)
...
rgbFuture (variable)
...
frtHeaderOld (4 bytes): An FrtHeaderOld structure. The value of the frtHeaderOld.rt field MUST
be 0x080B.
A - fRelyOnCSS (1 bit): A bit that specifies whether cascading style sheets (CSS) is used for
font formatting when viewing the saved file in a Web browser.
B - fOrganizeInFolder (1 bit): A bit that specifies whether all supporting files, such as background
textures and graphics, are organized in a separate folder when saving this file as a Web page.
MUST be a value from the following table:
Value Meaning
0 All supporting files are saved in the same folder as the Web page.
C - fUseLongFileNames (1 bit): A bit that specifies whether long file names are used when
saving this file as a Web page.
581 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fDownloadComponents (1 bit): A bit that specifies whether the necessary Microsoft Office
Web Components are downloaded if they are not installed when viewing the saved file in a Web
browser.
E - fRelyOnVML (1 bit): A bit that specifies whether the application uses VML to display graphics in
a Web browser.
F - fAllowPNG (1 bit): A bit that specifies whether Portable Network Graphics (PNG) format is
allowed as an image format when saving this file as a Web page.
dwPixelsPerInch (4 bytes): An unsigned integer that specifies the density, in pixels per inch, of
graphics images and table cells when saving this file as a Web page. The value MUST be greater
than or equal to 19 and less than or equal to 480.
uiCodePage (4 bytes): An unsigned integer that specifies the code page. The value MUST be one
of the code page values specified in [CODEPG], to be used by the Web browser when viewing the
saved file.
rgbLocationOfComponents (variable): An LPWideString structure that specifies the URL or the file
path to the location from which authorized users can download Microsoft Office Web Components
when viewing the saved file as a Web page. The value of rgbLocationOfComponents.cch MUST
be less than or equal to 2083.
rgbFuture (variable): A binary stream that specifies the bytes reserved for future use. The size of
this field in bytes is calculated according to the following formula:
2.4.349 WriteAccess
The WriteAccess record specifies the name of the user who last created, opened, or modified the file.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
userName (variable)
...
unused (variable)
...
userName (variable): An XLUnicodeString structure that specifies the user name. The value of
userName.cch MUST be less than or equal to 54. If the value of userName.rgb is equal to
"\0x20\0x20" no user name is specified.
unused (variable): Undefined and MUST be ignored. The size of this field in bytes
MUST be equal to the value of the following formula: (112 – number of bytes of userName).
582 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.350 WriteProtect
The existence of the WriteProtect record specifies that the file is write-protected.
2.4.351 WsBool
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M
A - fShowAutoBreaks (1 bit): A bit that specifies whether page breaks inserted automatically are
visible on the sheet.
C - fDialog (1 bit): A bit that specifies whether the sheet is a dialog sheet.
D - fApplyStyles (1 bit): A bit that specifies whether to apply styles in an outline when an outline
is applied.
E - fRowSumsBelow (1 bit): A bit that specifies whether summary rows appear below an outline's
detail rows.
F - fColSumsRight (1 bit): A bit that specifies whether summary columns appear to the right or left
of an outline's detail columns. Valid values are specified in the following table:
Value Meaning
0 The summary columns appear to the right, if the sheet is displayed left-to-
right, or appear to the left, if the sheet is displayed right-to-left.
1 The summary columns appear to the left, if the sheet is displayed left-to-
right, or appear to the right, if the sheet is displayed right-to-left.
G - fFitToPage (1 bit): A bit that specifies whether to fit the printable contents to a single page
when printing this sheet.
J - fSyncHoriz (1 bit): A bit that specifies whether horizontal scrolling is synchronized across
multiple windows displaying this sheet.
K - fSyncVert (1 bit): A bit that specifies whether vertical scrolling is synchronized across multiple
windows displaying this sheet.
L - fAltExprEval (1 bit): A bit that specifies whether the sheet uses transition formula
evaluation.
M - fAltFormulaEntry (1 bit): A bit that specifies whether the sheet uses transition formula
entry.
583 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.4.352 XCT
The XCT record specifies the beginning of an external cell cache and that specifies the beginning of a
collection of CRN records as defined in the Globals Substream ABNF. The collection of CRN records
specifies the values of cells in a sheet in the external cell cache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ccrn (2 bytes): A signed integer of which the absolute value specifies the number of CRN records
immediately following this record. A value less than zero specifies that the most recent SupBook
preceding this record contains a link that is not valid.
itab (2 bytes): An unsigned integer that specifies a zero-based index into the rgst array of the most
recent instance of a SupBook preceding this record in the file. The element of the rgst array
specified by this field contains the name of the sheet that contains the cached cells. The value of
itab MUST be less than the value of the ctab field of the most recent instance of SupBook.
2.4.353 XF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ifnt ifmt
...
A - fLocked (1 bit): A bit that specifies whether the locked protection property is set to true.
B - fHidden (1 bit): A bit that specifies whether the hidden protection property is set to true.
C - fStyle (1 bit): A bit that specifies whether this record specifies a cell XF or a cell style XF. If the
value is 1, this record specifies a cell style XF.
D - f123Prefix (1 bit): A bit that specifies whether prefix characters are present in the cell. The
possible prefix characters are single quote (0x27), double quote (0x22), caret (0x5E), and
backslash (0x5C).<146> If fStyle equals 1, this field MUST equal 0.
ixfParent (12 bits): An unsigned integer that specifies the zero-based index of a cell style XF record
in the collection of XF records in the Globals Substream that this cell format inherits properties
from. Cell style XF records are the subset of XF records with an fStyle field equal to 1. See
XFIndex for more information about the organization of XF records in the file.
If fStyle equals 1, this field SHOULD equal 0xFFF, indicating there is no inheritance from a cell
style XF. <147>
584 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Data (variable): If the value of fStyle equals 0, this field contains a CellXF that specifies additional
properties of the cell XF. If the value of fStyle equals 1, this field contains a StyleXF that specifies
additional properties of the cell style XF.
2.4.354 XFCRC
The XFCRC record specifies the number of XF records contained in this file and that contains a
checksum of the data in those records. This record MUST exist if and only if there are XFExt records
in the file.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
reserved cxfs
crc
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x87C.
cxfs (2 bytes): An unsigned integer that specifies the number of XF records in this file. MUST be
greater than or equal to 16 and less than or equal to 4050.
crc (4 bytes): An unsigned integer that specifies a checksum, as specified by [MS-OSHARED] section
2.4.3, of the data portion of the XF records. This checksum is used to detect whether the XF
records in the file were modified by an application that does not support the formatting feature
extensions in XFExt records.
2.4.355 XFExt
The XFExt record specifies a set of formatting property extensions to an XF record in this file.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeader
...
...
reserved1 ixfe
reserved2 cexts
rgExt (variable)
585 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
frtHeader (12 bytes): An FrtHeader structure. The frtHeader.rt field MUST be 0x087D.
ixfe (2 bytes): An XFIndex structure that specifies the XF record in the file that this record extends.
MUST be less than or equal to 4050.
cexts (2 bytes): An unsigned integer that specifies the number of elements in rgExt.
rgExt (variable): An array of ExtProp. Each array element specifies a formatting property extension.
2.4.356 YMult
The YMult record specifies properties of the value multiplier for a value axis and that specifies the
beginning of a collection of records as defined by the Chart Sheet substream ABNF. The collection of
records specifies a display units label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
axmid numLabelMultiplier
...
... A B C reserved2
axmid (2 bytes): A signed integer that specifies the axis multiplier type. MUST be a value from the
following table:
586 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
numLabelMultiplier (8 bytes): An Xnum (section 2.5.342) structure that specifies a custom
multiplier. The value on the axis are multiplied by the value of this field. MUST be greater than
0.0. If axmid is set to a value other than 0xFFFF, this field is ignored.
B - fAutoShowMultiplier (1 bit): A bit that specifies whether the display units label is displayed.
C - fBeingEditted (1 bit): A bit that specifies whether the display units label is currently being
edited.
2.5 Structures
2.5.1 AddinUdf
The AddinUdf structure specifies the data for a UDF reference on an XLL or COM add-in in the
ExternName record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
udfName (variable)
...
cb unused (variable)
...
udfName (variable): A ShortXLUnicodeString that specifies the name of the referenced UDF.
udfName.cch MUST be less than or equal to 255. For COM add-in functions only, it also
specifies the ProgID of the COM object that implements the add-in function (XLL add-in functions
do not have their implementing libraries uniquely specified).
unused (variable): Undefined and MUST be ignored. The size of this field in bytes is specified by cb.
2.5.2 AF12CellIcon
The AF12CellIcon structure specifies the icon for an advanced AutoFilter comparison.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iIconSet
iIcon
587 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iIconSet (4 bytes): An unsigned integer that specifies the icon set number. MUST be a value as
specified in KPISets.
iIcon (4 bytes): An unsigned integer that specifies the icon number within the icon set. MUST be a
value as specified in the following table:
2.5.3 AF12Criteria
The AF12Criteria structure specifies the criteria for an advanced AutoFilter comparison.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
doper
...
...
str (variable): An XLUnicodeStringNoCch that specifies the string value to use for the comparison.
MUST exist if and only if doper.vt equals 0x06. The length MUST be equal to doper.vtValue.cch.
2.5.4 AF12DateInfo
The AF12DateInfo structure specifies the date and time for an advanced AutoFilter comparison.
588 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
year month
day
hour minute
second unused1
reserved1
nodeType
month (2 bytes): An unsigned integer that specifies the month. MUST be greater than or equal to 1
and less than or equal to 12.
day (4 bytes): An unsigned integer that specifies the day of the month. MUST be greater than or
equal to 1<148> and less than or equal to 31.
hour (2 bytes): An unsigned integer that specifies the hour. MUST be greater than or equal to 0 and
less than or equal to 23.
minute (2 bytes): An unsigned integer that specifies the minute. MUST be greater than or equal to 0
and less than or equal to 59.
second (2 bytes): An unsigned integer that specifies the second. MUST be greater than or equal to 0
and less than or equal to 59.
nodeType (4 bytes): An unsigned integer that specifies the date and time to filter on. MUST be one
of the values from the table:
Value Meaning
0x00000000 Filter on year field.
0x00000001 Filter on year and month fields.
0x00000002 Filter on year, month, and day fields.
0x00000003 Filter on year, month, day, and hour fields.
0x00000004 Filter on year, month, day, hour, and minute fields.
0x00000005 Filter on year, month, day, hour, minute, and second fields.
2.5.5 AFDOper
589 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
vt grbitSign vtValue
...
...
vt (1 byte): An unsigned integer that specifies the type of comparison. MUST be a value as specified
in the table listed under vtValue. If this structure is part of an AutoFilter12 record, the value of vt
MUST NOT be 0x02.
grbitSign (1 byte): An unsigned integer that specifies the comparison operation between a cell
value and vtValue. MUST be one of the following values:
Value Meaning
0x01 Cell value is displayed if it is less than the value specified in vtValue.
0x02 Cell value is displayed if it is equal to the value specified in vtValue.
0x03 Cell value is displayed if it is less than or equal to the value specified in vtValue.
0x04 Cell value is displayed if it is greater than the value specified in vtValue.
0x05 Cell value is displayed if it is not equal to the value specified in vtValue.
0x06 Cell value is displayed if it is greater than or equal to the value specified in vtValue.
vtValue (8 bytes): A variable type field whose type and meaning is dictated by the value of vt, as
specified in the following table:
2.5.6 AFDOperBoolErr
The AFDOperBoolErr structure specifies a Boolean or error value for an AutoFilter comparison.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
bes unused1
unused2
590 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
bes (2 bytes): A Bes that specifies the Boolean or error value.
2.5.7 AFDOperRk
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rk
unused1
2.5.8 AFDOperStr
The AFDOperStr structure specifies a string value for an AutoFilter comparison. The string location is
specified by the record or structure that contains this structure.
A question mark character (‘?’) in the string specifies a matching condition on any single character. An
asterisk character (‘*’) in the string specifies a matching condition on a sequence of zero or more
characters.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused1 (optional)
unused3 (optional)
unused1 (4 bytes): Undefined and MUST be ignored. MUST exist if and only if this structure is part
of an AutoFilter, a Feature11 or a Feature12 record.
cch (1 byte): An unsigned integer that specifies the number of characters in the string. MUST be
greater than or equal to 1.
fCompare (1 byte): A Boolean (section 2.5.14) that specifies whether the string comparison
contains question mark or asterisk characters. MUST be a value from the following table:
Value Meaning
0 String comparison contains question mark or asterisk characters.
1 String comparison does not contain question mark or asterisk characters.
591 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused2 (1 byte): Undefined and MUST be ignored.
unused3 (4 bytes): Undefined and MUST be ignored. MUST exist if and only if this structure is part
of an AutoFilter12.
2.5.9 AutoFmt8
592 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.10 Bes
The Bes structure specifies either a Boolean (section 2.5.14) value or an error value. bBoolErr
specifies the value and fError specifies the value’s type.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
bBoolErr fError
bBoolErr (1 byte): An unsigned integer that specifies either a Boolean value or an error value,
depending on the value of fError.
Value Meaning
0x00 False
0x01 True
Value Meaning
0x00 #NULL!
0x07 #DIV/0!
0x0F #VALUE!
593 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x17 #REF!
0x1D #NAME?
0x24 #NUM!
0x2A #N/A
0x2B #GETTING_DATA
fError (1 byte): A Boolean that specifies whether bBoolErr contains an error code or a Boolean
value. MUST be a value from the following table:
Value Meaning
0x00 bBoolErr SHOULD<150> contain
a Boolean value.
0x01 bBoolErr contains an error value.
2.5.11 Bold
2.5.12 BookExt_Conditional11
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B unused
B - fShowInkAnnotation (1 bit): A bit that specifies whether ink comments are visible in this
workbook.
2.5.13 BookExt_Conditional12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C reserved2
594 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - reserved1 (1 bit): MUST be zero, and MUST be ignored.
B - fPublishedBookItems (1 bit): A bit that specifies whether only specific selected items,
including defined names, tables, chart object and PivotTables, are shown when the workbook is
published to a server.
Value Meaning
0 All sheets or selected sheets are published. Each sheet is published, unless the SheetExt
record for the sheet exists and the fNotPublished field of the SheetExtOptional structure of the
SheetExt record is 1.
1 Only selected items are published. For each item, the fPublished field in the record or structure
within the record that specifies the item determines whether the item is published. For each
type of item, the records and structures that contain the fPublished flag are as follows:
Chart object: FtCmo structure of the Obj record
Table: TableFeatureType structure of the Feature11 record
Defined name: Lbl record
Defined name: NamePublish record
PivotTable: SXAddl_SXCView_SXDVer12Info record
C - fShowPivotChartFilter (1 bit): A bit that specifies whether to show the PivotChart filter
pane.
2.5.14 Boolean
An unsigned integer greater than 1 bit in size that specifies a Boolean value. MUST be a value from
the following table. All other bits in the field MUST be 0.
Value Meaning
0x0 Boolean value FALSE
0x1 Boolean value TRUE
2.5.15 BorderStyle
595 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.16 BuiltInStyle
The BuiltInStyle structure specifies the type of a built-in cell style. For row outline and column
outline types this structure also specifies the outline level of the style.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
istyBuiltIn iLevel
istyBuiltIn (1 byte): An unsigned integer that specifies the type of the built-in cell style. SHOULD
be a value from the list of built in cell styles specified in [ECMA-376] Part 4: Markup Language
Reference, section 3.8.7.<151>
iLevel (1 byte): An unsigned integer that specifies the depth level of row/column automatic
outlining. If istyBuiltIn equals 0x01 or 0x02, this value MUST be one of the following:
Value Meaning
0x00 Outline level is 1
0x01 Outline level is 2
0x02 Outline level is 3
0x03 Outline level is 4
0x04 Outline level is 5
0x05 Outline level is 6
0x06 Outline level is 7
2.5.17 CachedDiskHeader
The CachedDiskHeader structure specifies the formatting information of a table column heading.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbdxfHdrDisk
rgHdrDisk (variable)
...
596 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
strStyleName (variable)
...
cbdxfHdrDisk (4 bytes): An unsigned integer that specifies the size, in bytes, of the rgHdrDisk
field.
rgHdrDisk (variable): A DXFN12List structure that specifies the formatting of the column heading.
strStyleName (variable): An XLUnicodeString that specifies the name of the style to use for the
column heading. The name of the style MUST equal the user field of a Style record in the Globals
Substream ABNF, or the name of a built-in style, as specified by the BuiltInStyle record. This field is
present only if the fSaveStyleName field of the containing Feat11FieldDataItem structure is set to
0x1.
If present, the formatting as specified by strStyleName is applied first, before the formatting as
specified by rgHdrDisk is applied.
2.5.18 Cch255
2.5.19 Cell
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
ixfe
2.5.20 CellXF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
597 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
icvTop icvBottom icvDiag dgDiag O fls
icvFore icvBack P Q
A - fWrap (1 bit): A bit that specifies whether the cell text is wrapped.
B - fJustLast (1 bit): A bit that specifies whether the justified or distributed alignment of the cell is
used on the last line of text (setting this to 1 is typical for East Asian text but not typical in other
contexts). If this field equals 1, then alc MUST equal 7.
cIndent (4 bits): An unsigned integer that specifies the text indentation level. MUST be less than
or equal to 15.
C - fShrinkToFit (1 bit): A bit that specifies whether the cell is shrink to fit.
G - fAtrNum (1 bit): A bit that specifies that if the ifmt field of the XF record specified by the
ixfParent field of the containing XF record is updated, the corresponding field of the containing XF
record will not be set to the same value. MUST be a value from the following table:
Value Meaning
0x0 The ifmt field of the containing XF record is
updated when the corresponding field of the XF
record specified by the ixfParent field of the
containing XF record is changed.
0x1 The ifmt field of the containing XF record is not
updated when the corresponding field of the XF
record specified by the ixfParent field of the
containing XF record is changed.
H - fAtrFnt (1 bit): A bit that specifies that if the ifnt field of the XF record specified by the
ixfParent field of the containing XF record is updated, the corresponding field of the containing XF
record will not be set to the same value. MUST be a value from the following table:
Value Meaning
0x0 The ifnt field of the containing XF record is updated
when the corresponding field of the XF record
specified by the ixfParent field of the containing
XF record is changed.
0x1 The ifnt field of the containing XF record is not
updated when the corresponding field of the XF
record specified by the ixfParent field of the
containing XF record is changed.
598 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
I - fAtrAlc (1 bit): A bit that specifies that if the alc field, or the fWrap field, or the alcV field, or the
fJustLast field, or the trot field, or the cIndent field, or the fShrinkToFit field or the iReadOrder
field of the XF record specified by the ixfParent field of the containing XF record is updated, the
corresponding fields of this structure will not be set to the same values. MUST be a value from the
following table:
Value Meaning
0x0 The alc, fWrap, alcV, fJustLast, trot, cIndent,
fShrinkToFit, iReadOrder fields are updated when
the corresponding fields of the XF record specified
by the ixfParent field of the containing XF record
are changed.
0x1 The alc, fWrap, alcV, fJustLast, trot, cIndent,
fShrinkToFit, iReadOrder fields are not updated
when the corresponding fields of the XF record
specified by the ixfParent field of the containing
XF record are changed.
J - fAtrBdr (1 bit): A bit that specifies that if the dgLeft field, or the dgRight field, or the dgTop
field, or the dgBottom field, or the dgDiag field, or the icvLeft field, or the icvRight field, or the
grbitDiag field, or the icvTop field, or the icvBottom field, or the icvDiag field of the XF record
specified by the ixfParent field of the containing XF record is updated, the corresponding fields of
this structure will not be set to the same values. MUST be a value from the following table:
Value Meaning
0x0 The dgLeft, dgRight, dgTop, dgBottom,
dgDiag, icvLeft, icvRight, grbitDiag, icvTop,
icvBottom, icvDiag fields are updated when the
corresponding fields of the XF record specified by
the ixfParent field of the containing XF record are
changed.
0x1 The dgLeft, dgRight, dgTop, dgBottom,
dgDiag, icvLeft, icvRight, grbitDiag, icvTop,
icvBottom, icvDiag fields are not updated when
the corresponding fields of the XF record specified
by the ixfParent field of the containing XF record
are changed.
K - fAtrPat (1 bit): A bit that specifies that if the fls field, the icvFore field, or the icvBack field of
the XF record specified by the ixfParent field of the containing XF record is updated, the
corresponding fields of this structure will not be set to the same values. MUST be a value from the
following table:
Value Meaning
0x0 The fls, icvFore, and icvBack fields are updated
when the corresponding fields of the XF record
specified by the ixfParent field of the containing
XF record are changed.
0x1 The fls, icvFore, and icvBack fields are not
updated when the corresponding fields of the XF
record specified by the ixfParent field of the
containing XF record are changed.
599 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
L - fAtrProt (1 bit): A bit that specifies that if the fLocked field or the fHidden field of the XF record
specified by the ixfParent field of the containing XF record is updated, the corresponding fields of
the containing XF record will not be set to the same values. MUST be a value from the following
table:
Value Meaning
0x0 The fLocked and fHidden fields of the containing
XF record are updated when the corresponding
fields of the XF record specified by the ixfParent
field of the containing XF record are changed.
0x1 The fLocked and fHidden fields of the containing
XF record are not updated when the corresponding
fields of the XF record specified by the ixfParent
field of the containing XF record are changed.
dgLeft (4 bits): A BorderStyle that specifies the logical left border formatting.
dgRight (4 bits): A BorderStyle that specifies the logical right border formatting.
icvLeft (7 bits): An unsigned integer that specifies the color of the logical left border. The value
MUST be one of the values specified in IcvXF or 0. A value of 0 means the logical left border color
has not been specified. If this value is 0, then dgLeft MUST also be 0.
icvRight (7 bits): An unsigned integer that specifies the color of the logical right border. The value
MUST be one of the values specified in IcvXF or 0. A value of 0 means the logical right border
color has not been specified. If this value is 0, then dgRight MUST also be 0.
N - grbitDiag (2 bits): An unsigned integer that specifies which diagonal borders are present (if
any). MUST be a value from the following table:
Value Meaning
0x0 No diagonal border
0x1 Diagonal-down border
0x2 Diagonal-up border
0x3 Both diagonal-down and diagonal-up
icvTop (7 bits): An unsigned integer that specifies the color of the top border. The value MUST be
one of the values specified in IcvXF or 0. A value of 0 means the top border color has not been
specified. If this value is 0, then dgTop MUST also be 0.
icvBottom (7 bits): An unsigned integer that specifies the color of the bottom border. The value
MUST be one of the values specified in IcvXF or 0. A value of 0 means the bottom border color has
not been specified. If this value is 0 then dgBottom MUST also be 0.
icvDiag (7 bits): An unsigned integer that specifies the color of the diagonal border. The value MUST
be one of the values specified in IcvXF or 0. A value of 0 means the diagonal border color has not
been specified. If this value is 0 then dgDiag MUST also be 0.
O - fHasXFExt (1 bit): A bit that specifies whether an XFExt will extend the information in this XF.
600 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fls (6 bits): A FillPattern that specifies the fill pattern. If this value is 1, which specifies a solid fill
pattern, then only icvFore is rendered.
icvFore (7 bits): An IcvXF that specifies the foreground color of the fill pattern.
icvBack (7 bits): An unsigned integer that specifies the background color of the fill pattern. The
value SHOULD<152> be an IcvXF value.
P - fsxButton (1 bit): A bit that specifies whether the XF record is attached to a pivot field drop-
down button.
2.5.21 CFColor
The CFColor structure specifies a color in conditional formatting records or in a SheetExt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xclrType
xclrValue
numTint
...
xclrType (4 bytes): An XColorType that specifies the type of color reference. MUST be different
from XCLRNINCHED. MUST be different from XCLRAUTO unless it is contained in a SheetExt
record.
xclrValue (4 bytes): A structure that specifies the color value. The type of structure depends on the
color reference type specified by xclrType and MUST be a structure from the following table:
numTint (8 bytes): An Xnum (section 2.5.342) that specifies the tint and shade value to be applied
to the color. MUST be greater than or equal to -1.0 and less than or equal to 1.0
2.5.22 CFDatabar
The CFDatabar structure specifies the parameters of a conditional formatting rule that uses data
bar formatting.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
601 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iPercentMin iPercentMax color (16 bytes)
...
...
...
cfvoDB2 (variable)
...
A - fRightToLeft (1 bit): A bit that specifies whether the data bars are drawn starting from the right
of the cell. MUST be a value from the following table:
Value Meaning
0x0 Data bars are drawn starting from the left of the cell
0x1 Data bars are drawn starting from the right of the cell
B - fShowValue (1 bit): A bit that specifies whether the numerical value of the cell appears in the
cell along with the data bar.
iPercentMin (1 byte): An unsigned integer that specifies the length of a data bar, as a percentage of
the cell width, that is applied to cells with values equal to the CFVO value specified by cfvoDB1.
MUST be less than or equal to 100.
iPercentMax (1 byte): An unsigned integer that specifies the length of a data bar, as a percentage
of the cell width, that is applied to cells with values equal to the CFVO value specified by
cfvoDB2. MUST be greater than iPercentMin and less than or equal to 100.
color (16 bytes): A CFColor structure that specifies the color of the data bar.
cfvoDB1 (variable): A CFVO that specifies the maximum cell value that will be represented with a
minimum width data bar. All cell values that are less than or equal to the CFVO value specified by
this field are represented with a data bar of iPercentMin percent of the cell width.
cfvoDB2 (variable): A CFVO that specifies the minimum cell value that will be represented with a
maximum width data bar. All cell values that are greater than or equal to the CFVO value specified
by this field are represented with a data bar of iPercentMax percent of the cell width.
602 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.23 CFExAveragesTemplateParams
This structure specifies the parameters for an above or below average conditional formatting rule in
a containing CF12 record or CFExNonCF12 structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
iParam (2 bytes): An unsigned integer that specifies the number of standard deviations above or
below the average for the rule. MUST be a value from the following table:
Value Meaning
2.5.24 CFExDateTemplateParams
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
dateOp (2 bytes): An unsigned integer that specifies the type of date comparison. The value of this
field MUST be equal to the value that corresponds to the icfTemplate field in the containing CF12
record or CFExNonCF12 structure, according to the following table:
603 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of icfTemplate Value of this field
15 0
16 6
17 1
18 2
19 5
20 8
21 3
22 7
23 4
24 9
2.5.25 CFExDefaultTemplateParams
This structure specifies that there are no parameters for extensions to conditional formatting rules
specified by CFEx.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
2.5.26 CFExFilterParams
The CFExFilterParams structure specifies parameters for a conditional formatting rule of type
filter.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
A - fTop (1 bit): A bit that specifies whether the top or bottom items are displayed with the
conditional formatting. MUST be one of the following values:
Value Meaning
604 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0 Bottom items are displayed with the conditional formatting
0x1 Top items are displayed with the conditional formatting
B - fPercent (1 bit): A bit that specifies whether a percentage of the top or bottom items are
displayed with the conditional formatting, or whether a set number of the top or bottom items are
displayed with the conditional formatting. MUST be one of the following values:
Value Meaning
0x0 A set number of top or bottom items, specified by iParam, are displayed with
the conditional formatting.
0x1 A percentage of top or bottom items, specified by iParam, are displayed with
the conditional formatting
iParam (2 bytes): An unsigned integer that specifies how many values are displayed with the
conditional formatting. If fPercent equals 1 then this field represents a percent and MUST be less
than or equal to 100. Otherwise, this field represents a set number of cells and MUST be less than
or equal to 1000.
2.5.27 CFExNonCF12
The CFExNonCF12 structure specifies properties that extend a conditional formatting rule that is
specified by a CF record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icf cp icfTemplate
ipriority A B C D E fHasDXF
dxf (variable)
...
...
...
...
icf (2 bytes): An unsigned integer that specifies a zero-based index of a CF record in the collection of
CF records directly following the CondFmt record that is referenced by the parent CFEx record with
the nID field. The referenced CF specifies the conditional formatting rule to be extended.
605 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cp (1 byte): An unsigned integer that specifies the type of comparison operation to use when the ct
field of the CF record referenced by the icf field of this structure is equal to 0x01. MUST be zero
when the ct field of the CF record is not equal to 1. SHOULD<154> be equal to the cp field in the
referenced CF record.
In the following table, v represents the cell value, and v1 and v2 represent the results of
evaluating the formulas specified by rgce1 and rgce2 fields of the referenced CF record specified
by icf. The value of this field MUST be a value from the following table:
0x00 No comparison
icfTemplate (1 byte): An unsigned integer that specifies the template from which the rule was
created. MUST be the least significant byte of one of the valid values specified for the
icfTemplate field in the CF12 record.
ipriority (2 bytes): An unsigned integer that specifies the priority of the rule. Rules that apply to
the same cell are evaluated in increasing order of ipriority. MUST be unique across all CF12
records and CFExNonCF12 structures in the worksheet substream.
A - fActive (1 bit): A bit that specifies whether the rule is active. If set to zero, the rule will be
ignored.
B - fStopIfTrue (1 bit): A bit that specifies whether, when a cell fulfills the condition corresponding
to this rule, the lower priority conditional formatting rules that apply to this cell are evaluated.
MUST be one of the following values:
Value Meaning
0x0 Evaluate lower priority conditional formatting rules that apply to this cell
0x1 If the cell fulfills the condition corresponding to this rule, do not evaluate lower priority
conditional formatting rules that apply to this cell
606 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - reserved1 (1 bit): MUST be zero and MUST be ignored.
fHasDXF (1 byte): A Boolean (section 2.5.14) that specifies whether cell formatting data is part of
this record extension. MUST be a value from the following table:
Value Meaning
0x00 No formatting data in this record extension.
0x01 Formatting data is part of this record extension.
dxf (variable): A DXFN12 structure that specifies the format to use for cells that satisfy the
condition. MUST NOT be present when fHasDXF is zero.
cbTemplateParm (1 byte): An unsigned integer that specifies the size of the rgbTemplateParms
field in bytes. MUST be equal to 16.
rgbTemplateParms (16 bytes): A CFExTemplateParams that specifies parameters for the rule
specified by this structure.
2.5.28 CFExTemplateParams
The CFExTemplateParams structure specifies parameters for conditional formatting rules of type
CF12 or CFExNonCF12. The type of this structure depends on the icfTemplate field in the containing
structure as specified in the following table:
0x05 CFExFilterParams
0x08 CFExTextTemplateParams
0x0F CFExDateTemplateParams
0x10 CFExDateTemplateParams
0x11 CFExDateTemplateParams
0x12 CFExDateTemplateParams
0x13 CFExDateTemplateParams
0x14 CFExDateTemplateParams
0x15 CFExDateTemplateParams
0x16 CFExDateTemplateParams
0x17 CFExDateTemplateParams
0x18 CFExDateTemplateParams
0x19 CFExAveragesTemplateParams
0x1A CFExAveragesTemplateParams
0x1D CFExAveragesTemplateParams
607 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value of icfTemplate Type of CFExTemplateParams
0x1E CFExAveragesTemplateParams
other CFExDefaultTemplateParams
2.5.29 CFExTextTemplateParams
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
ctp (2 bytes): An unsigned integer that specifies the type of text rule. MUST be a value from the
following table:
Value Meaning
0x0000 Text contains
0x0001 Text does not contain
0x0002 Text begins with
0x0003 Text ends with
2.5.30 CFFilter
The CFFilter structure specifies the parameters of a conditional formatting rule of type top N
filter.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iParam
cbFilter (2 bytes): An unsigned integer that specifies the size of the structure in bytes, excluding the
cbFilter field itself.
608 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fTop (1 bit): A bit that specifies whether the top or bottom items are displayed with the
conditional formatting. MUST be one of the following values:
Value Meaning
0x0 Bottom items are displayed with the conditional formatting
0x1 Top items are displayed with the conditional formatting
B - fPercent (1 bit): A bit that specifies whether a percentage of top or bottom items are displayed
with the conditional formatting, or a set number of top or bottom items are displayed with the
conditional formatting. MUST be one of the following values:
Value Meaning
0x0 Top or bottom iParam items are displayed with the conditional formatting.
0x1 Top or bottom iParam percent of items are displayed with the conditional
formatting
iParam (2 bytes): An unsigned integer that specifies how many values are displayed with the
conditional formatting. If fPercent is set to 1 then this field represents a percent and MUST be
less than or equal to 100, otherwise this field is a number of cells and MUST be less than or equal
to 1000.
2.5.31 CFFlag
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iIconSet
iIcon
iIcon (4 bytes): A signed integer that specifies an icon in the set. The value of this field changes the
sort order for custom sorts that are based on icon sets.
Value Meaning
-1 No icon
609 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.32 CFGradient
The CFGradient structure specifies the parameters of a conditional formatting rule that uses color
scale formatting. Color scale formatting maps cell values to colors through the following process:
1. An interpolation curve maps cell values to values between 0 and 1. The first and last control
points, as specified in rgInterp, specify the cell values that map to 0 and 1 respectively.
Both curves are determined by two or three control points, with linear interpolation between those
points.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgCurve (variable)
...
cInterpCurve (1 byte): An unsigned integer that specifies the number of control points in the
interpolation curve. It MUST be 0x2 or 0x3.
cGradientCurve (1 byte): An unsigned integer that specifies the number of control points in the
gradient curve. It MUST be equal to cInterpCurve.
A - fClamp (1 bit): A bit that specifies that the cell values are not used when they are out of the
range of the interpolation curve. The minimum or the maximum of the interpolation curve is used
instead of the cell value. The value SHOULD<155> be 1.
B - fBackground (1 bit): A bit that specifies that the color scale formatting applies to the
background of the cells. It MUST be 1.
rgCurve (variable): An array of CFGradientItem. Each element is a control point of the gradient
curve. Its element count MUST be cGradientCurve.
2.5.33 CFGradientInterpItem
The CFGradientInterpItem structure specifies one control point in the interpolation curve. The
interpolation curve maps cell values to colors for a conditional formatting rule using color scale
610 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
formatting. The color is specified as the numerical value associated with the color in the corresponding
CFGradient.rgCurve array of the containing CFGradient structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cfvoInterp (variable)
...
numDomain
...
cfvoInterp (variable): A CFVO structure that specifies the cell value associated with the numerical
value specified in numDomain.
numDomain (8 bytes): An Xnum (section 2.5.342) structure that specifies the numerical value of
this control point. MUST be equal to 0.0 if the structure is the first item in the rbct.rgInterp array
of the containing CF12 record. MUST be equal to 1.0 if this structure is the last item in the
rbct.rgInterp array of the containing CF12 record. MUST be equal to 0.5 if this structure is the
second item in the rbct.rgInterp array of the containing CF12 record and rbct.cInterpCurve
field of the containing CF12 record is equal to 0x03.
2.5.34 CFGradientItem
The CFGradientItem structure specifies one control point in the gradient curve. The gradient curve
specifies a color scale used in conditional formatting and maps numerical values to colors.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
numGrange
...
...
...
numGrange (8 bytes): An Xnum (section 2.5.342) that specifies the numerical value of the control
point. MUST be equal to 0.0 if this structure is the first element in the rbct.rgcurve array of the
containing CF12 record. MUST be equal to 1.0 if this structure is the last element in the
rbct.rgcurve array of the containing CF12 record. MUST be equal to 0.5 if this structure is the
second element in the rbct.rgcurve array of the containing CF12 record and the
rbct.cInterpCurve field of the containing CF12 record is equal to 0x03.
color (16 bytes): A CFColor that specifies the color associated with the numerical value specified in
numGrange.
611 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.35 CFMStateItem
The CFMStateItem structure specifies the threshold value associated with an icon for a CFMultistate
conditional formatting rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cfvo (variable)
...
fEqual unused
...
fEqual (1 byte): A Boolean (section 2.5.14) that MUST be a value from the following table:
Value Meaning
0x00 Cell values that are equal to the threshold value do not pass the threshold
0x01 Cell values that are equal to the threshold value pass the threshold.
2.5.36 CFMultistate
The CFMultistate structure specifies the parameters for a conditional formatting rule that
represents cell values with icons from an icon set.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cStates (1 byte): An unsigned integer that specifies the number of items in the icon set. MUST be
the value from the following table:
612 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
iIconSet (1 byte): An unsigned integer that specifies the icon set that represents the cell values.
MUST be the value from the following table:
Value Meaning
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
A - fIconOnly (1 bit): A bit that specifies whether only the icon will be displayed in the sheet and
that the cell value will be hidden.
C - fReverse (1 bit): A bit that specifies whether the order of the icons in the set is reversed.
rgStates (variable): An array of CFMStateItem. Each element specifies a threshold for the
respective icon in the set, below which cell values are represented by the next icon in the set. The
element count MUST be equal to cStates.
2.5.37 CFrtId
The CFrtId structure specifies a range of Future Record Type identifier values.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rtFirst rtLast
613 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rtFirst (2 bytes): An unsigned integer that specifies the first Future Record Type in the range. The
value MUST be less than or equal to rtLast.
rtLast (2 bytes): An unsigned integer that specifies the last Future Record Type in the range.
2.5.38 CFT
614 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.39 CFVO
The CFVO structure specifies a Conditional Formatting Value Object (CFVO) that specifies how to
calculate a value from the range of cells that a conditional formatting rule applies to.
The value this structure specifies how to calculate is referred to as a CFVO value in other records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
numValue (optional)
...
cfvoType (1 byte): An unsigned integer that specifies how the CFVO value is determined. In the
following table, X represents a parameter value. If fmla.cce is greater than zero, then X is the
result of evaluating fmla, otherwise, X is numValue. cfvoType MUST be one of the following
values:
615 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning of CFVO Value
0x03 The maximum value from the range of cells that the conditional formatting rule
applies to.
0x04 The minimum value in the range of cells that the conditional formatting rule
applies to plus X percent of the difference between the maximum and minimum
values in the range of cells that the conditional formatting rule applies to.
For example, if the min and max values in the range are 1 and 10 respectively,
and X is 10, then the CFVO value is 1.9.
0x05 The minimum value of the cell that is in X percentile of the range of cells that the
conditional formatting rule applies to.
0x07 The result of evaluating fmla.
fmla (variable): A CFVOParsedFormula that specifies the formula used to calculate the CFVO value.
If cfvoType is 0x07, then fmla.cce MUST be greater than zero.
numValue (8 bytes): An Xnum (section 2.5.342) that specifies a static value used to calculate the
CFVO value. MUST be omitted if fmla.cce is greater than zero, or if cfvoType is equal to 0x02 or
0x03. MUST be greater than 0.0 and less than 100.0 if cfvoType is either 0x04 or 0x05
2.5.40 ChartNumNillable
2.5.41 Col
The Col structure specifies the zero-based column index of a column in a sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): An unsigned integer that specifies the zero-based column index of the column in the
sheet that contains this structure. MUST be greater than or equal to the colMic field of the
Dimensions record of the sheet that contains this structure and MUST be less than the colMac
field of the Dimensions record of the sheet that contains this structure. MUST be less than or equal
to 0x00FF.
2.5.42 Col_NegativeOne
616 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): A signed integer that specifies the zero-based index of a column in the sheet that
contains this structure. The value 0xFFFF specifies a null column index. MUST be greater than or
equal to 0xFFFF and less than or equal to 0x00FF.
2.5.43 Col12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (4 bytes): A signed integer that specifies a zero-based index of the sheet. MUST be greater than
or equal to zero, and MUST be less than or equal to 0x3FFF.
2.5.44 Col256U
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure. MUST be less than or equal to 0x0100. The value 0x0100 specifies that
the formatting in the containing record also specifies the default column formatting. If additional
columns become visible at the extreme right of the column range because of column deletion,
those columns have this default formatting applied.
2.5.45 ColByte
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (1 byte): An unsigned integer that specifies the zero-based index of the column in the sheet that
contains this structure. MUST be greater than or equal to the colMic field of the Dimensions
record of the sheet that contains this structure and MUST be less than the colMac field of the
Dimensions record of the sheet that contains this structure.
617 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.46 ColByteU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (1 byte): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure.
2.5.47 ColElfU
The ColElfU structure specifies the zero-based index of a column in a sheet and relative reference
information for this column index and a corresponding row index.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col A B
col (14 bits): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure. MUST be less than or equal to 0x00FF.
A - fQuoted (1 bit): A bit that specifies if the label occurrences in the natural language formula
are surrounded by single quote characters.
B - fRelative (1 bit): A bit that specifies whether a corresponding row index from the containing
structure and column are relative or absolute. MUST be a value from the following table:
Value Meaning
0x0 A corresponding row index from the containing structure and column are absolute
coordinates and are specified by a fixed position in a sheet.
0x1 A corresponding row index from the containing structure and column are relative
coordinates and are specified by their position in relation to the current row or current
column.
2.5.48 ColorICV
This structure differs from the IcvXF structure in size (4 bytes versus 7 bits), and the validity of the
values 0x40 and 0x41.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iCV
iCV (4 bytes): An unsigned integer that specifies a color in the color table. The value MUST be an
IcvXF value. The value MUST NOT be 0x00000040 or 0x00000041.
618 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.49 ColorTheme
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iCV
iCV (4 bytes): An unsigned integer that specifies one of the colors defined in the color scheme of
the document’s Theme record. MUST be one of the following values:
0x00000000 Dark 1
0x00000001 Light 1
0x00000002 Dark 2
0x00000003 Light 2
0x00000004 Accent 1
0x00000005 Accent 2
0x00000006 Accent 3
0x00000007 Accent 4
0x00000008 Accent 5
0x00000009 Accent 6
0x0000000A Hyperlink
If this structure is contained in a CF12 record, the value MUST be different from 0x0000000B.
2.5.50 ColRelNegU
The ColRelNegU structure specifies the zero-based column index of a column in a sheet offset
information for this column index and a corresponding row index.
619 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col A B
col (14 bits): A signed integer that specifies the zero-based column index or offset of a column in the
sheet that contains this structure. MUST be greater than or equal to -255 be less than or equal to
255.
B - rowRelative (1 bit): bit that specifies whether a row index corresponding to col in the structure
containing this structure is an offset.
2.5.51 ColRelU
The ColRelU structure specifies the zero-based index of a column in a sheet and relative reference
information for this column index and a corresponding row index.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col A B
col (14 bits): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure. MUST be less than or equal to 0x00FF.
B - rowRelative (1 bit): A bit that specifies whether a row index corresponding to col in the
structure containing this structure is a relative reference.
2.5.52 ColSlco8U
The ColSlco8U structure specifies the zero-based index of a column in a sheet and information about
whether a cell has been deleted.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col A B
col (14 bits): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure. MUST be less than or equal to 0x00FF.
A - fDeleted (1 bit): A bit that specifies whether the cell that is referenced by the containing
structure, has been deleted. When set to 1, the cell reference of the containing structure MUST
be ignored.
2.5.53 ColU
620 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): An unsigned integer that specifies the zero-based index of a column in the sheet that
contains this structure. MUST be less than or equal to 0x00FF.
2.5.54 Colx
The Colx structure specifies the zero-based column index of a column in a sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): An unsigned integer that specifies the zero-based column index of a column in the
sheet. The value MUST be 0, 0xFF or be greater than or equal to the colMic field of the
Dimensions record of the sheet that contains this structure and less than the colMac field of the
Dimensions record of the sheet that contains this structure.
2.5.55 CondDataValue
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
condDataValue
reserved
2.5.56 CondFmtStructure
The CondFmtStructure structure specifies conditional formatting rules that are associated with a
set of cells in a containing CondFmt12 record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ccf A nID
refBound
621 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
sqref (variable)
...
ccf (2 bytes): An unsigned integer that specifies the count of CF12 records that follow the containing
record. MUST be greater than or equal to 0x0001.
A - fToughRecalc (1 bit): A bit that specifies that the appearance of the cell requires significant
processing. This information can be used to optimize the redraw of conditional formatting when
data values change.
For example, an application could determine that a conditional formatting rule that contains
certain functions or a conditional formatting rule that takes more than a predetermined amount of
time to calculate designates that the conditional formatting requires significant processing, and
could set this bit to 1.
refBound (8 bytes): A Ref8U structure that specifies bounds of the set of cells to which the rules are
applied. The set of cells that it represents MUST include all of the cells represented by field sqref.
sqref (variable): A SqRefU structure that specifies the cells to which the conditional formatting rules
apply. sqref.cref MUST be greater than zero and less than or equal to 1026.
2.5.57 ConnGrbitDbt
The ConnGrbitDbt structure is a 2 byte variable-type structure that specifies external connection
properties for the containing record. Its meaning depends on the value of the dbt field of the
containing record.
Value Meaning
4 A ConnGrbitDbtWeb that specifies the query flags for a Web data connection.
5 A ConnGrbitDbtOledb that specifies the query flags for an OLE DB data connection.
7 A ConnGrbitDbtAdo that specifies the query flags for an ADO data connection.
2.5.58 ConnGrbitDbtAdo
The ConnGrbitDbtAdo structure specifies the query flags for an ADO data connection.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1 A reserved2
A - fAdoRefreshable (1 bit): A bit that specifies if the ADO query can be refreshed.
622 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.59 ConnGrbitDbtOledb
The ConnGrbitDbtOledb structure specifies the external connection properties for an OLE DB data
connection.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dbost A B C D E F G H I J
dbost (3 bits): An unsigned integer that specifies the OLE DB command type. This field applies to the
database command strings that are saved with the parent records. MUST be a value from the
following table:
A - fLocalConn (1 bit): A bit that specifies which connection string to use for this external
connection. MUST be a value from the following table:
Value Meaning
0x0 Uses the main connection string, as specified by a value of 0 in the fLocal field in OleDbConn,
or by a value of 0 or 1 in the rgIOleDbValid of a DConnConnectionOleDb.
0x1 Uses the alternate connection string, as specified by a value of 1 in the fLocal field in
OleDbConn, or by a value of 2 or 3 in the rgIOleDbValid of a DConnConnectionOleDb.
B - fNoRefreshCube (1 bit): A bit that specifies whether any local cache of data from the OLAP
data source is to be flushed when the a refresh is done. The value zero specifies any local cache
of data from the OLAP data source is to be flushed when the a refresh is done. MUST be zero and
MUST be ignored if the dbost field does not equal 0x1.
C - fUseOfficeLcid (1 bit): A bit that specifies whether the user’s locale information is provided to
the OLAP data source for retrieval of translated data and errors. MUST be zero and MUST be
ignored if the dbost field does not equal 0x1.
D - fSrvFmtNum (1 bit): A bit that specifies whether to apply OLAP data source number formatting
to the PivotTable. MUST be zero and MUST be ignored if the dbost field does not equal 0x1.
E - fSrvFmtBack (1 bit): A bit that specifies whether to apply OLAP data source fill colors to the
PivotTable. MUST be zero and MUST be ignored if the dbost field does not equal 0x1.
F - fSrvFmtFore (1 bit): A bit that specifies whether to apply OLAP data source font colors to the
PivotTable. MUST be zero and MUST be ignored if the dbost field does not equal 0x1.
G - fSrvFmtFlags (1 bit): A bit that specifies whether to apply OLAP data source font formatting to
the PivotTable. MUST be zero and MUST be ignored if the dbost field does not equal 0x1.
623 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
H - fSupportsLangCellProp (1 bit): A bit that specifies whether the user’s locale information is
provided to the OLAP data source to support member (2) localization. MUST be zero and MUST
be ignored if the dbost field does not equal 0x1.
I - fSrvSupportsClientCube (1 bit): A bit that specifies that the server supports local embedded
data storage.
2.5.60 ConnGrbitDbtWeb
The ConnGrbitDbtWeb structure specifies the query flags for a Web data connection.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F reserved
A - fParsePreFormatted (1 bit): A bit that specifies how text enclosed in <PRE> tags is handled.
Value Meaning
0x0 Each row of text enclosed in <PRE> tags will be imported as a single cell.
0x1 The text is parsed as tables.
B - fConsecDelim (1 bit): A bit that specifies how consecutive delimiters are treated.
Value Meaning
0x0 Each consecutive delimiter is treated as a separate delimiter.
0x1 Consecutive delimiters is treated as a single delimiter.
C - fSameSettings (1 bit): A bit that specifies how tables inside <PRE> blocks are parsed.
Value Meaning
0x0 Each table is parsed separately.
0x1 All tables are parsed with the same width settings as the first row of the first table.
D - fXL97Format (1 bit): A bit that specifies whether the query was created by a specific version of
the application<156>.
Value Meaning
0x0 The query was created by specific versions of the application<157>.
0x1 The query was created by a specific version of the application<158>.
Value Meaning
0x0 Dates are imported as values of type date.
0x1 Dates are imported as text.
624 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
F - fRefreshedInXl9 (1 bit): A bit that specifies whether the query was refreshed in a specific
version of the application<159>.
2.5.61 ControlInfo
The ControlInfo structure specifies the properties of some form control in a Dialog Sheet. The
control MUST be a group, radio button, label, button or checkbox.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D reserved1 accel1
reserved2
A - fDefault (1 bit): A bit that specifies whether this control dismisses the Dialog Sheet and performs
the default behavior. If the control is not a button, the value MUST be 0.
B - fHelp (1 bit): A bit that specifies whether this control is intended to load context-sensitive help
for the Dialog Sheet. If the control is not a button, the value MUST be 0.
C - fCancel (1 bit): A bit that specifies whether this control dismisses the Dialog Sheet and take no
action. If the control is not a button, the value MUST be 0.
D - fDismiss (1 bit): A bit that specifies whether this control dismisses the Dialog Sheet. If the
control is not a button, the value MUST be 0.
accel1 (2 bytes): A signed integer that specifies the Unicode character of the control’s accelerator
key. The value MUST be greater than or equal to 0x0000. A value of 0x0000 specifies there is no
accelerator associated with this control.
2.5.62 CrtLayout12Mode
The CrtLayout12Mode record specifies a layout mode. Each layout mode specifies a different
meaning of the x, y, dx, and dy fields of CrtLayout12 and CrtLayout12A.
x and y specify the offset of the top left corner, relative to its default position, as a
fraction of the chart area (section 2.2.3.17). MUST be greater than or equal to -1.0
L12MFACTOR 0x0001 and MUST be less than or equal to 1.0. dx and dy specify the width and height, as a
fraction of the chart area, MUST be greater than or equal to 0.0, and MUST be less
than or equal to 1.0.
x and y specify the offset of the upper-left corner; dx and dy specify the offset of the
bottom-right corner. x, y, dx and dy are specified relative to the upper-left corner of
L12MEDGE 0x0002
the chart area (section 2.2.3.17) as a fraction of the chart area. x, y, dx and dy
MUST be greater than or equal to 0.0, and MUST be less than or equal to 1.0.
625 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.63 DataFunctionalityLevel
2.5.64 DataSourceType
2.5.65 DateAsNum
The DateAsNum structure specifies a date and time value stored as an Xnum (section 2.5.342).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dateNum
...
dateNum (8 bytes): An Xnum that specifies a date and time value. The value uses the double-
precision floating point number in the Xnum structure as follows: The integer part of the number
specifies the date as a number of days from a base date<162>, and the fractional part specifies
the time of day as a fraction of a 24-hour day. The base date for the number of days is
determined by the date system used in the workbook, as specified by the Date1904 record in
the Globals Substream, according to the following table:
2.5.66 DateUnit
626 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.67 DCol
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dcol
dcol (2 bytes): An unsigned integer that specifies the count of column indexes in a sheet.
2.5.68 DColByteU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dcol
dcol (1 byte): An unsigned integer that specifies the count of column indexes in a sheet.
2.5.69 DConFile
The DConFile structure specifies the workbook file or workbook file and sheet that contain a data
source range. This structure is used by the DConBin, DConRef and DConName records.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stFile (variable)
...
stFile (variable): An XLUnicodeStringNoCch that specifies the workbook file or workbook file and
sheet that contain the range specified in the DConBin, DConRef or DConName record.
627 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
self-reference = %x0002 sheet-name
See VirtualPath for the definition of the volume, unc-volume, rel-volume, transfer-protocol,
startup, alt-startup, library, file-path and sheet-name rules used in the ABNF grammar. Note that
the volume, unc-volume, rel-volume, transfer-protocol, startup, alt-startup, library, and file-path
rules specify that an optional sheet name can be included.
If this structure is contained in a DConName or DConBin record and the defined name has a
workbook scope, then this string MUST satisfy the external-virt-path rule and MUST NOT specify a
sheet name. Otherwise a sheet name MUST be specified.
2.5.70 DConnConnectionOleDb
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
nDrillthroughRows
...
rgIOleDbInvalid (variable)
...
...
nDrillthroughRows (4 bytes): An unsigned integer that specifies the maximum number of rows that
the application will retrieve during a drillthrough operation on a PivotTable based on this data
connection.
cOleDb (2 bytes): An unsigned integer that specifies the number of connection strings associated
with the OLE DB connection specified in rgConn. MUST be less than or equal to 4. MUST be equal
to 0 if the fStandAlone field of the associated DConn of structure is 0.
rgIOleDbValid (variable): An array of 2-byte unsigned integers that specify the type of connection
strings in rgConn. The size of the array MUST be equal to cOleDb. Each element of the array
MUST be unique within rgIOleDbValid. Each element of the array MUST be from the following
table:
628 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgIOleDbInvalid (variable): Undefined and MUST be ignored. The size of the field, in bytes, MUST
equal the value specified by the following formula:
2 * (4 – cOleDb)
2.5.71 DConnConnectionWeb
The DConnConnectionWeb structure specifies data connection properties of Web query data
connections.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgbURL (variable)
...
rgbWebPost (variable)
...
rgbURL (variable): A DConnStringSequence that specifies the URL for a Web query.
rgbWebPost (variable): A DConnStringSequence that specifies the post method for a Web query.
2.5.72 DConnId
The DConnId structure specifies the identifier of the object that a connection is associated with.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
bType (1 byte): An unsigned integer that specifies the identifier type. MUST be a value as specified
in the table listed under field data.
data (variable): A variable field that specifies the identifier of the object whose type and meaning
are dictated by the value of field bType, as specified in the following table:
629 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.73 DConnParamBinding
The DConnParamBinding structure that specifies a parameter’s binding value based on field pbt of
structure DConnParameter.
Value Meaning
1 A DConnParamBindingValType structure that specifies the parameter value as defined in the query.
2.5.74 DConnParamBindingValByte
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fVal reserved1
reserved2
fVal (8 bits): An unsigned integer that specifies the binding Boolean value.
2.5.75 DConnParamBindingValInt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
val
reserved
2.5.76 DConnParamBindingValString
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
630 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
rgchBindingValueStr (variable)
...
2.5.77 DConnParamBindingValType
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
wBindingValueGrbit (2 bytes): An unsigned integer that specifies the data type of the parameter.
MUST be a value from the table as specified in the rgbBindingValue field.
rgbBindingValue (variable): A variable type field whose type and meaning are specified by the
value of wBindingValueGrbit as specified in the following table:
wBindingValueGrbit
Value Meaning
0x0001 An Xnum (section 2.5.342) that specifies the value for a parameter that has a
numeric data type.
0x0002 A DConnParamBindingValString that specifies the value for a parameter that has
a string data type.
0x0004 A DConnParamBindingValByte that specifies the value for a parameter that has a
Boolean data type.
0x0800 A DConnParamBindingValInt that specifies the value for a parameter that has an
integer data type.
2.5.78 DConnParameter
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgchName (variable)
...
631 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A unused paramBinding (variable)
...
pbt (3 bits): An unsigned integer that specifies the parameter type. MUST be a value from the
following table:
Value Meaning
0x0 Prompt. User is prompted for the value of the parameter.
0x1 Value. The parameter value is specified in the query.
wTypeSql (2 bytes): An ODBCType structure that specifies the ODBC data type as returned by the
ODBC provider of the data. This signed integer specifies the SQL data type.
A - fDefaultName (1 bit): A bit that specifies whether a default name has been assigned by the
application to the parameter. MUST be a value from the following table:
Value Meaning
0x0 The user specified a name for the parameter.
0x1 The application specified a name for the parameter.
2.5.79 DConnStringSequence
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cst (2 bytes): An unsigned integer that specifies the number of strings in the rgString array.
2.5.80 DConnUnicodeStringSegmented
632 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
st (variable)
...
2.5.81 DJoin
The DJoin enumeration specifies the join type for two data operations.
DJOINOR 0x00000002 Or
2.5.82 DRw
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
drw
drw (2 bytes): An unsigned integer that specifies the count or difference of row indexes in a sheet.
2.5.83 DRwByteU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
drw
drw (1 byte): An unsigned integer that specifies the count or difference of row indexes in a sheet.
2.5.84 Duce
The Duce structure specifies additional undo data that is applied to an expression that uses a
natural language formula if the revision is rejected.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
duceStacked
633 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
duceRadical
...
...
duceStacked (4 bytes): A DuceStacked that specifies additional undo data used for the natural
language formula.
duceRadical (9 bytes): A DuceRadical that specifies additional undo data used for the natural
language formula. If eptg does not specify that this natural language formula is an ElfRadical,
then this field is undefined and MUST be ignored.
eptg (1 byte): An unsigned integer that specifies the type of natural language formula. eptg MUST
equal the second byte of the Ptg specified by the ptg field of the Ducr that contains this structure.
The type of the natural language formula is either ElfStacked or ElfRadical, neither or both.
ElfStacked: A natural language formula is considered to be stacked if more than one cell is used
for the label.ElfRadical: A natural language formula is considered to be radical if the formula
(section 2.2.2) refers to more than one cell.
rgloc (variable): An array of RRLoc structures. The number of elements is specified by the cLoc
field of duceStacked. MUST exist if and only if the type of the natural language formula as
specified by eptg is ElfStacked. The fNoDollarOnLabel field of each RRLoc structure in the array
is undefined and MUST be ignored.
2.5.85 DuceRadical
The DuceRadical structure specifies additional undo data associated with a natural language
formula.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
refRadical (optional)
...
634 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused (optional)
...
ptgRadical
refRadical (8 bytes): A Ref8U that specifies the cells referenced by the natural language formula.
MUST exist if and only if ptgRadical is a PtgArea.
unused (8 bytes): An array of 1-byte signed integers. Undefined and MUST be ignored. MUST exist
if and only if ptgRadical is equal to PtgAreaErr.
ptgRadical (1 byte): An unsigned integer that specifies the next Ptg in the formula (section 2.2.2)
associated with this natural language formula. MUST either by a PtgArea or a PtgAreaErr.
2.5.86 DuceStacked
The type and meaning of the DuceStacked structure are specified by the type of the eptg field of the
Duce structure that contains this structure, as specified in the following table:
Value Meaning
This structure specifies an SQElfFlags that specifies additional undo data associated with the natural
1
language formula.
0 This structure specifies an RRLoc that specifies the location affected by the natural language formula.
2.5.87 Ducr
The Ducr structure specifies undo data that is applied to an expression that was affected by an
insertion / deletion of rows / columns revision or a move cells revision if the revision is rejected.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1
duce (variable)
...
duceRadical (optional)
...
ducr_cond_1 (variable)
...
ducr_cond_2 (optional)
635 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
iptg (2 bytes): An unsigned integer that specifies a zero-based index of a Ptg structure in the array
specified by the Rgce structure associated with the affected expression. The referenced Ptg
specifies which Ptg is affected by the revision.
A - fLbl (1 bit): A bit that specifies whether the affected expression is contained in a defined name.
B - fUseSh2 (1 bit): A bit that specifies whether the affected expression is on a different sheet.
MUST be zero for RRDInsDel.
duce (variable): A Duce that specifies additional undo data that is used for a natural language
formula. MUST exist if and only if ptg is equal to 0x18.
duceRadical (8 bytes): A variable type field with the type and meaning determined by the value of
ptg, as specified in the following table. MUST exist if and only if ptg is not equal to 0x18.
2.5.88 DucrConditionalLbl
The DucrConditionalLbl structure specifies information associated with the defined name in the
Ducr structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
636 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
tabid (2 bytes): A TabId that specifies the sheet containing the defined name. A value of 0xFFFF
specifies that the defined name is not associated with the sheet.
builtinIndex (1 byte): An unsigned integer that specifies the identifier of a built-in name. MUST be
a value from the following table:
Value Meaning
0x00 Not a built-in name
0x01 The built-in name is "Consolidate_Area"
0x02 The built-in name is "Auto_Open"
0x03 The built-in name is "Auto_Close"
0x04 The built-in name is "Extract"
0x05 The built-in name is "Database"
0x06 The built-in name is "Criteria"
0x07 The built-in name is "Print_Area"
0x08 The built-in name is "Print_Titles"
0x09 The built-in name is "Recorder"
0x0A The built-in name is "Data_Form"
0x0B The built-in name is "Auto_Activate"
0x0C The built-in name is "Auto_Deactivate"
0x0D The built-in name is "Sheet_Title"
0x0E The built-in name is "_FilterDatabase"
unused (3 bytes): Undefined and MUST be ignored. MUST exist if and only if builtinIndex is not
equal to zero.
stDefName (variable): An XLUnicodeString that specifies the defined name. MUST exist if and only if
builtinIndex is equal to zero.
2.5.89 DucrConditionalNoLbl
The DucrConditionalNoLbl structure specifies location information associated with the Ducr
structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
tabid loc
...
tabid (2 bytes): A TabId that specifies the sheet containing the affected expression.
loc (4 bytes): An RRLoc that specifies the location of the cell containing the affected expression. The
fQuotesOnLabel and fNoDollarOnLabel fields in the RRLoc structure are undefined and MUST
be ignored.
2.5.90 DwQsiFuture
637 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I reserved5 reserved6
A - fPreserveFmt (1 bit): A bit that specifies whether the user applied formatting is preserved.
B - fAutoFit (1 bit): A bit that specifies whether columns be auto fit after a data refresh.
E - fExtDataList (1 bit): A bit that specifies whether an external data list is the data source for
the query table.
G - fCreateQTList (1 bit): A bit that specifies whether a query table list is to be created.
H - fDummyList (1 bit): A bit that specifies whether a dummy query table list is created.
2.5.91 DXFALC
The DXFALC structure specifies the text alignment properties within a containing DXFN structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iIndent
alc (3 bits): A HorizAlign that specifies the horizontal alignment of the text.
A - fWrap (1 bit): A bit that specifies the text display when the text is wider than the cell.
Value Meaning
0 The text is truncated.
1 The text is wrapped into more than one line.
alcv (3 bits): A VertAlign that specifies the vertical alignment of the text.
B - fJustLast (1 bit): A bit that specifies whether cell text is justify distributed. If fJustLast is 1
the text is justify distributed and alc MUST be 0x7.
638 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cIndent (4 bits): An unsigned integer that specifies the absolute level of indentation. The absolute
level of indentation will replace any previous indentation. MUST be ignored when iIndent is not
255. MUST be less than or equal to 15.
C - fShrinkToFit (1 bit): A bit that specifies whether the character sizes in the text MUST be
reduced so that the text fits in the cell.
D - fMergeCell (1 bit): A bit that specifies that the cell MUST be merged.
iIndent (4 bytes): A signed integer that specifies the relative level of indentation. The relative level
of indentation will be added to any previous indentation. The value MUST be greater than or equal
to -15 and less than or equal to 255. The value SHOULD<163> be greater than or equal to -15
and less than or equal to 15, or be equal to 255. The values -250 through 250 specify a relative
indentation level, and the value 255 specifies the absence of a relative indentation level.
2.5.92 DXFBdr
The DXFBdr structure specifies the style of cell borders in a containing DXFN structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dgLeft (4 bits): A BorderStyle that specifies the grid line style for the left border of the cell.
dgRight (4 bits): A BorderStyle that specifies the grid line style for the right border of the cell.
dgTop (4 bits): A BorderStyle that specifies the grid line style for the top border of the cell.
A - dgBottom (4 bits): A BorderStyle that specifies the grid line style for the bottom border of the
cell.
icvLeft (7 bits): An IcvXF that specifies the color of the left border of the cell or unused. This value
is unused and MUST be ignored if dgLeft is 0 or if the glLeftNinch field in the containing DXFN
structure is 1.
icvRight (7 bits): An IcvXF that specifies the color of the right border of the cell or unused. This
value is unused and MUST be ignored if dgRight is 0 or if the glRightNinch field in the containing
DXFN structure is 1.
B - bitDiagDown (1 bit): A bit that specifies if the cell has a downward diagonal drawn.
C - bitDiagUp (1 bit): A bit that specifies if the cell has an upward diagonal drawn.
icvTop (7 bits): An IcvXF that specifies the color of the top border of the cell or unused. This value
is unused and MUST be ignored if dgTop is 0 or if the glTopNinch field in the containing DXFN
structure is 1.
icvBottom (7 bits): An IcvXF that specifies the color of the bottom border of the cell or unused. This
value is unused and MUST be ignored if dgBottom is 0 or if the glBottomNinch field in the
containing DXFN structure is 1.
639 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
icvDiag (7 bits): An IcvXF that specifies the color of the diagonals of the cell or unused. This value
is unused and MUST be ignored if dgDiag is 0 or if the glDiagDownNinch and the
glDiagUpNinch fields in the containing DXFN are both 1.
dgDiag (4 bits): A BorderStyle that specifies the grid line style for the diagonals of the cell..
2.5.93 DXFFntD
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
unused1 (variable)
...
...
...
icvFore
reserved
tsNinch
fSssNinch
fUlsNinch
fBlsNinch
unused2
ich
cch
iFnt
cchFont (1 byte): An unsigned integer that specifies the number of characters of the font name
string.
640 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stFontName (variable): An XLUnicodeStringNoCch that specifies the font name. MUST exist if and
only if cchFont is greater than zero. The number of characters in the string is specified in
cchFont. If stFontName.fHighByte equals 0x0, cchFont MUST be less than or equal to 62. If
stFontName.fHighByte equals 0x1, cchFont MUST be less than or equal to 31.
unused1 (variable): Undefined and MUST be ignored. The size of this field is 63 minus the size of
the stFontName field. If the stFontName field doesn’t exist, the size of this field is 63.
icvFore (4 bytes): An integer that specifies the color of the font. The value MUST be -1, 32767 or
any of the valid values of the IcvFont structure. A value of -1 specifies that this value is ignored. A
value of 32767 specifies that the color of the font is the default foreground text color. Any other
value specifies the color of the font as specified in the IcvFont structure.
tsNinch (4 bytes): A Ts structure that specifies how the value of stxp.ts is to be interpreted. If
tsNinch.ftsItalic is set to 1 then the value of stxp.ts.ftsItalic MUST be ignored. If
tsNinch.ftsStrikeout is set to 1 then the value of the stxp.ts.ftsStrikeout MUST be ignored.
fSssNinch (4 bytes): A Boolean (section 2.5.14) that specifies whether the value of stxp.sss MUST
be ignored.
fUlsNinch (4 bytes): A Boolean that specifies whether the value of stxp.uls MUST be ignored.
fBlsNinch (4 bytes): A Boolean that specifies whether the value of stxp.bls MUST be ignored.
ich (4 bytes): A signed integer that specifies the zero based index of the first character to which this
font applies. MUST be greater than or equal to 0xFFFFFFFF. MUST be set to 0xFFFFFFFF when the
font is to be updated.
cch (4 bytes): A signed integer that specifies the number of characters to which this font applies.
MUST be greater than or equal to ich field. MUST be set to 0xFFFFFFFF if the ich field is set to
0xFFFFFFFF.
iFnt (2 bytes): An unsigned integer that specifies the font. If the value is 0 then the default font is
used. If the value is greater than 0 then the font to be applied is determined by the font name
specified in stFontName.
2.5.94 DXFId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
index
index (4 bytes): An unsigned integer that specifies a zero-based index of a DXF record in the
collection of DXF records in the Globals Substream.
2.5.95 DXFN
641 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d
...
dxffntd (variable)
...
dxfalc (optional)
...
dxfbdr (optional)
...
dxfpat (optional)
dxfprot (optional)
A - alchNinch (1 bit): A bit that specifies whether the value of dxfalc.alc MUST be ignored.
B - alcvNinch (1 bit): A bit that specifies whether the value of dxfalc.alcv MUST be ignored.
C - wrapNinch (1 bit): A bit that specifies whether the value of dxfalc.fWrap MUST be ignored.
D - trotNinch (1 bit): A bit that specifies whether the value of dxfalc.trot MUST be ignored.
E - kintoNinch (1 bit): A bit that specifies whether the value of dxfalc.fJustLast MUST be ignored .
F - cIndentNinch (1 bit): A bit that specifies whether the values of dxfalc.cIndent and
dxfalc.iIndent MUST be ignored.
G - fShrinkNinch (1 bit): A bit that specifies whether the value of dxfalc.fShrinkToFit MUST be
ignored.
H - fMergeCellNinch (1 bit): A bit that specifies whether the value of dxfalc.fMergeCell MUST be
ignored.
I - lockedNinch (1 bit): A bit that specifies whether the value of dxfprot.fLocked MUST be ignored.
J - hiddenNinch (1 bit): A bit that specifies whether the value of dxfprot.fHidden MUST be
ignored.
K - glLeftNinch (1 bit): A bit that specifies whether the values of dxfbdr.dgLeft and
dxfbdr.icvLeft MUST be ignored .
L - glRightNinch (1 bit): A bit that specifies whether the values of dxfbdr.dgRight and
dxfbdr.icvRight MUST be ignored.
642 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
M - glTopNinch (1 bit): A bit that specifies whether the values of dxfbdr.dgTop and dxfbdr.icvTop
MUST be ignored.
N - glBottomNinch (1 bit): A bit that specifies whether the values of dxfbdr.dgBottom and
dxfbdr.icvBottom MUST be ignored.
O - glDiagDownNinch (1 bit): A bit that specifies whether the value of dxfbdr.bitDiagDown MUST
be ignored. When both glDiagDownNinch and glDiagUpNinch are set to 1, the values of
dxfbdr.dgDiag and dxfbdr.icvDiag MUST be ignored.
P - glDiagUpNinch (1 bit): A bit that specifies whether the value of dxfbdr.bitDiagUp MUST be
ignored. When both glDiagDownNinch and glDiagUpNinch are set to 1, the values of
dxfbdr.dgDiag and dxfbdr.icvDiag MUST be ignored.
Q - flsNinch (1 bit): A bit that specifies whether the value of dxfpat.fls MUST be ignored.
R - icvFNinch (1 bit): A bit that specifies whether the value of dxfpat.icvForeground MUST be
ignored.
S - icvBNinch (1 bit): A bit that specifies whether the value of dxfpat.icvBackground MUST be
ignored.
T - ifmtNinch (1 bit): A bit that specifies whether the value of dxfnum.ifmt MUST be ignored.
U - fIfntNinch (1 bit): A bit that specifies whether the value of dxffntd.ifnt MUST be ignored.
X - ibitAtrNum (1 bit): A bit that specifies whether number formatting information is part of this
structure.
Y - ibitAtrFnt (1 bit): A bit that specifies whether font information is part of this structure.
Z - ibitAtrAlc (1 bit): A bit that specifies whether alignment information is part of this structure.
a - ibitAtrBdr (1 bit): A bit that specifies whether border formatting information is part of this
structure.
b - ibitAtrPat (1 bit): A bit that specifies whether pattern information is part of this structure.
c - ibitAtrProt (1 bit): A bit that specifies whether rotation information is part of this structure.
e - fIfmtUser (1 bit): A bit that specifies that the number format used is a user-defined format
string. When set to 1, dxfnum contains a format string.
g - fNewBorder (1 bit): A bit that specifies how the border formats apply to a range of cells.
Value Description
0 Border formats apply to all cells in the
range.
1 Border formats only apply to the outline of
the range.
643 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
For example, if the bit is set to 1 and there is a left border format, that left border format will only
apply to the cells on the left edge of the range of cells.
h - fZeroInited (1 bit): A bit that specifies whether the value of dxfalc.iReadingOrder MUST be
taken into account.
dxfnum (variable): A DXFNum that specifies the number formatting. MUST exist if and only if
ibitAtrNum is nonzero.
dxffntd (variable): A DXFFntD that specifies the font. MUST exist if and only if ibitAtrFnt is
nonzero.
dxfalc (8 bytes): A DXFALC that specifies the text alignment properties. MUST exist if and only if
ibitAtrAlc is nonzero.
dxfbdr (8 bytes): A DXFBdr that specifies the border properties. MUST exist if and only if ibitAtrBdr
is nonzero.
dxfpat (4 bytes): A DXFPat that specifies the pattern and colors. MUST exist if and only if ibitAtrPat
is nonzero.
dxfprot (2 bytes): A DXFProt that specifies the protection attributes. MUST exist if and only if
ibitAtrProt is nonzero.
2.5.96 DXFN12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbDxf
...
xfext (variable)
...
cbDxf (4 bytes): An unsigned integer that specifies the size of the structure in bytes. If greater than
zero, it MUST be the total byte count of dfxn and xfext. Otherwise it MUST be zero.
reserved (2 bytes): MUST be zero and MUST be ignored. MUST be omitted when cbDxf is greater
than zero.
dxfn (variable): A DXFN that specifies part of the differential formatting. MUST be omitted if cbDxf
is 0x00000000.
xfext (variable): An XFExtNoFRT that specifies extensions for the differential formatting. MUST be
omitted if cbDxf is equal to the byte count of dxfn.
644 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.97 DXFN12List
The DXFN12List structure specifies differential formatting used by table block-level formatting. This
structure also specifies extensions to the DXFN formatting properties.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dxfn (variable)
...
xfext (variable)
...
dxfn (variable): A DXFN structure that specifies differential formatting used by table block-level
formatting.
xfext (variable): An XFExtNoFRT structure that specifies the set of extensions to the differential
formatting properties specified in dxfn. MUST exist if and only if the size of this structure is
greater than the size of the dxfn field.
2.5.98 DXFN12NoCB
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dxfn (variable)
...
xfext (variable)
...
xfext (variable): An optional XFExtNoFRT that specifies extensions for the differential formatting.
2.5.99 DXFNum
The DXFNum structure specifies the number format in a containing DXFN structure. Its type
depends on the fIfmtUser field of DXFN
Value Meaning
0 DXFNumIFmt
1 DXFNumUsr
645 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.100 DXFNumIFmt
The DXFNumIFmt structure specifies the number format in a containing DXFN structure when a
format identifier is used.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused ifmt
ifmt (8 bits): An unsigned integer that specifies the identifier of the number format to use as
specified in IFmt.
2.5.101 DXFNumUsr
The DXFNumUsr structure specifies the number format in a containing DXFN structure when a
format string is used.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cb fmt (variable)
...
cb (2 bytes): An unsigned integer that specifies the size of this structure, in bytes.
fmt (variable): An XLUnicodeString that specifies the number format to use as specified in the
stFormat field of Format.
2.5.102 DXFPat
The DXFPat structure specifies the fill pattern and color within a containing DXFN structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icvForeground (7 bits): An unsigned integer that specifies the color of the foreground of the cell.
The value MUST be an IcvXF value. This value is unused and MUST be ignored if the icvFNinched
field in the containing DXFN structure is 1.
icvBackground (7 bits): An unsigned integer that specifies the color of the background of the cell.
The value MUST be an IcvXF value. This value is unused and MUST be ignored if the icvBNinched
field in the containing DXFN structure is 1.
646 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.103 DXFProt
The DXFProt structure specifies the protection attributes inside a containing DXFN structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B reserved
A - fLocked (1 bit): A bit that specifies if the cell content is locked when the workbook is
protected.
B - fHidden (1 bit): A bit that specifies if the cell content is hidden when the workbook is protected.
2.5.104 EnhancedProtection
The EnhancedProtection structure specifies protection settings for Shared Features of the Enhanced
Protection type as specified by SharedFeatureType.ISFPROTECTION. These settings apply to a
protected sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H I J K L M N O reserved
A - iprotObjects (1 bit): A bit that specifies whether linked objects or embedded objects can be
edited.
K - iprotSelLockedCells (1 bit): A bit that specifies whether locked cells can be selected.
N - iprotPivotTables (1 bit): A bit that specifies whether PivotTable reports can be created or
modified.
O - iprotSelUnlockedCells (1 bit): A bit that specifies whether unlocked cells can be selected.
647 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved (17 bits): MUST be zero, and MUST be ignored.
2.5.105 ExternDdeLinkNoOper
The ExternDdeLinkNoOper structure specifies the data for a DDE data item in the ExternName
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved
linkName (variable)
...
linkName (variable): A ShortXLUnicodeString that specifies the DDE data item name. The value
MUST be "StdDocumentName".
2.5.106 ExternDocName
The ExternDocName structure specifies the data for an external defined name in the ExternName
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ixals reserved
extName (variable)
...
nameDefinition (variable)
...
ixals (2 bytes): If the external defined name specified by extName is a local name, this unsigned
integer specifies a one-based index of an XLUnicodestring in the rgst field of the preceding
SupBook record. The XLUnicodestring specifies the name of the sheet where the external defined
name specified by extName is scoped. Otherwise this MUST be 0. The value MUST be less than or
equal to the value of the ctab field in the preceding SupBook record.
extName (variable): A ShortXLUnicodeString that specifies the name of the external defined name.
extName.cch MUST be less than or equal to 255.
648 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.107 ExternOleDdeLink
The ExternOleDdeLink structure specifies the data for an OLE data item or a DDE data item in the
ExternName record. If the fOleLink field in the owned ExternName record is 1, the referenced item
MUST be an OLE data item.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
lStgName
linkName (variable)
...
moper (variable)
...
lStgName (4 bytes): An unsigned integer that specifies a link storage that specifies the linked OLE
object. This name of the link storage MUST be the concatenation of "LNK" and the eight byte
hexadecimal representation of this value. The value MUST be 0 for a DDE data item.
linkName (variable): A ShortXLUnicodeString that specifies the name of OLE data item or DDE data
item. linkName.cch MUST be less than or equal to 255.
moper (variable): An optional MOper that specifies current cell values for the linked data. This field
MUST exist if and only if
(byte size of owning ExternName record – 6 – byte size of linkName > 0).
2.5.108 ExtProp
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
extType cb
extPropData (variable)
...
extType (2 bytes): An unsigned integer that specifies the type of the extension. MUST be a value
from the table as specified in the extPropData field.
cb (2 bytes): An unsigned integer that specifies the size of this ExtProp structure.
extPropData (variable): This field specifies the extension data. The size and data type of this field
varies based on the property type as specified in extType as follows:
649 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
extType value extPropData field Data and Meaning
0x0006 An XFExtGradient that specifies a cell interior gradient fill.
0x0007 A FullColorExt that specifies the top cell border color.
0x0008 A FullColorExt that specifies the bottom cell border color.
0x0009 A FullColorExt that specifies the left cell border color.
0x000A A FullColorExt that specifies the right cell border color.
0x000B A FullColorExt that specifies the diagonal cell border color.
0x000D A FullColorExt that specifies the cell text color.
0x000E A 2-byte unsigned integer that specifies a FontScheme.
0x000F A 2-byte unsigned integer that specifies the text indentation level. MUST be less
than or equal to 250.
2.5.109 ExtRst
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved cb
phs
rphssub (variable)
...
rgphruns (variable)
...
cb (2 bytes): An unsigned integer that specifies the size, in bytes, of the phonetic string data.
phs (4 bytes): A Phs that specifies the formatting information for the phonetic string.
rgphruns (variable): An array of PhRuns. This specifies the phonetic text runs. Each PhRuns
specifies a phonetic text run within rphssub.st that is displayed above a text run in the rgb field
of the XLUnicodeRichExtendedString that contains this structure. The first character of the
phonetic text run is the character specified by the ichFirst field of PhRuns. The first character in
the rgb field of the XLUnicodeRichExtendedString that contains this structure that the phonetic
text run appears earlier is specified by the ichMom field of PhRuns. Each ichMom field of a
PhRuns in the array MUST be less than the ichMom field of the subsequent PhRuns in the array.
Each ichFirst field of a PhRuns in the array MUST be less than the ichFirst of the subsequent
PhRuns in the array. The sum of the cchMom fields of all PhRuns in the array MUST be less than
or equal to the number of characters in rgb field of the XLUnicodeRichExtendedString that
contains this structure. The number of elements in this array is rphssub.crun.
650 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.110 FactoidData
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
A - fDelete (1 bit): A bit that specifies whether the smart tag is deleted.
B - fXMLBased (1 bit): A bit that specifies whether the smart tag is XML-based. For more
information about XML-based smart tags, see [MSDN-OSTD].
2.5.111 Feat11CellStruct
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
idxRow
idxField
idxRow (4 bytes): An unsigned integer that specifies the row identifier of the row in the table. The
row identifiers are stored in a table column with the strName of Feat11FieldDataItem equal to "ID".
The row identifier specified in this field MUST match a row identifier stored in the LISTDATA element
of the List Data stream. It MUST also match a row identifier stored in the LISTSCHEMA element of
the List Data stream, under the Field node, where the "name" attribute of the Field node is equal to
"ID".
idxField (4 bytes): An unsigned integer that specifies a column identifier. MUST be equal to the
idField field of an item in the fielddata array of the containing TableFeatureType structure.
2.5.112 Feat11FdaAutoFilter
651 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbAutoFilter
...
cbAutoFilter (4 bytes): An unsigned integer that specifies the size, in bytes, of the recAutoFilter
field. MUST be less than or equal to 2080 bytes.
recAutoFilter (variable): An AutoFilter structure that specifies the filter that is applied to the table
column.
2.5.113 Feat11FieldDataItem
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
idField
lfdt
lfxidt
ilta
cbFmtAgg
istnAgg
A B C D E F G H I J K unused2
cbFmtInsertRow
istnInsertRow
strFieldName (variable)
...
strCaption (variable)
...
652 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
dxfFmtAgg (variable)
...
dxfFmtInsertRow (variable)
...
AutoFilter (variable)
...
rgXmap (variable)
...
fmla (variable)
...
totalFmla (variable)
...
strTotal (variable)
...
wssInfo (variable)
...
qsif (optional)
dskHdrCache (variable)
...
idField (4 bytes): An unsigned integer that specifies the identifier of the column. MUST be nonzero
and MUST be unique within the FieldData array in the containing TableFeatureType structure.
lfdt (4 bytes): An unsigned integer that specifies the column’s Web based data provider data type. If
the lt field of the containing TableFeatureType structure is not set to 0x00000001, this field MUST
be 0x00000000; otherwise it MUST be a value from the following table. For more information
about the data types, see [MS-WSSTS] section 2.3.
0x00000001 Text
0x00000002 Number
653 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Web Based Data Provider Data Type
0x00000003 Boolean
0x00000005 Note
0x00000006 Currency
0x00000007 Lookup
0x00000008 Choice
0x00000009 URL
0x0000000A Counter
lfxidt (4 bytes): An unsigned integer that specifies the column’s XML data type. If the lt field of the
containing TableFeatureType structure is not set to 0x00000002, this field MUST be 0x00000000;
otherwise it MUST be a value from the following table. For more information about the data types,
see [MSDN-SOM].
0x00001000 SOMITEM_SCHEMA
0x00001001 SOMITEM_ATTRIBUTE
0x00001002 SOMITEM_ATTRIBUTEGROUP
0x00001003 SOMITEM_NOTATION
0x00001100 SOMITEM_IDENTITYCONSTRAINT
0x00001101 SOMITEM_KEY
0x00001102 SOMITEM_KEYREF
0x00001103 SOMITEM_UNIQUE
0x00002000 SOMITEM_ANYTYPE
0x00002100 SOMITEM_DATATYPE
0x00002101 SOMITEM_DATATYPE_ANYTYPE
0x00002102 SOMITEM_DATATYPE_ANYURI
0x00002103 SOMITEM_DATATYPE_BASE64BINARY
0x00002104 SOMITEM_DATATYPE_BOOLEAN
0x00002105 SOMITEM_DATATYPE_BYTE
0x00002106 SOMITEM_DATATYPE_DATE
0x00002107 SOMITEM_DATATYPE_DATETIME
654 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value MS-XML Data Type
0x00002108 SOMITEM_DATATYPE_DAY
0x00002109 SOMITEM_DATATYPE_DECIMAL
0x0000210A SOMITEM_DATATYPE_DOUBLE
0x0000210B SOMITEM_DATATYPE_DURATION
0x0000210C SOMITEM_DATATYPE_ENTITIES
0x0000210D SOMITEM_DATATYPE_ENTITY
0x0000210E SOMITEM_DATATYPE_FLOAT
0x0000210F SOMITEM_DATATYPE_HEXBINARY
0x00002110 SOMITEM_DATATYPE_ID
0x00002111 SOMITEM_DATATYPE_IDREF
0x00002112 SOMITEM_DATATYPE_IDREFS
0x00002113 SOMITEM_DATATYPE_INT
0x00002114 SOMITEM_DATATYPE_INTEGER
0x00002115 SOMITEM_DATATYPE_LANGUAGE
0x00002116 SOMITEM_DATATYPE_LONG
0x00002117 SOMITEM_DATATYPE_MONTH
0x00002118 SOMITEM_DATATYPE_MONTHDAY
0x00002119 SOMITEM_DATATYPE_NAME
0x0000211A SOMITEM_DATATYPE_NCNAME
0x0000211B SOMITEM_DATATYPE_NEGATIVEINTEGER
0x0000211C SOMITEM_DATATYPE_NMTOKEN
0x0000211D SOMITEM_DATATYPE_NMTOKENS
0x0000211E SOMITEM_DATATYPE_NONNEGATIVEINTEGER
0x0000211F SOMITEM_DATATYPE_NONPOSITIVEINTEGER
0x00002120 SOMITEM_DATATYPE_NORMALIZEDSTRING
0x00002121 SOMITEM_DATATYPE_NOTATION
0x00002122 SOMITEM_DATATYPE_POSITIVEINTEGER
0x00002123 SOMITEM_DATATYPE_QNAME
0x00002124 SOMITEM_DATATYPE_SHORT
0x00002125 SOMITEM_DATATYPE_STRING
0x00002126 SOMITEM_DATATYPE_TIME
0x00002127 SOMITEM_DATATYPE_TOKEN
655 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value MS-XML Data Type
0x00002128 SOMITEM_DATATYPE_UNSIGNEDBYTE
0x00002129 SOMITEM_DATATYPE_UNSIGNEDINT
0x0000212A SOMITEM_DATATYPE_UNSIGNEDLONG
0x0000212B SOMITEM_DATATYPE_UNSIGNEDSHORT
0x0000212C SOMITEM_DATATYPE_YEAR
0x0000212D SOMITEM_DATATYPE_YEARMONTH
0x000021FF SOMITEM_DATATYPE_ANYSIMPLETYPE
0x00002200 SOMITEM_SIMPLETYPE
0x00002400 SOMITEM_COMPLEXTYPE
0x00004000 SOMITEM_PARTICLE
0x00004001 SOMITEM_ANY
0x00004002 SOMITEM_ANYATTRIBUTE
0x00004003 SOMITEM_ELEMENT
0x00004100 SOMITEM_GROUP
0x00004101 SOMITEM_ALL
0x00004102 SOMITEM_CHOICE
0x00004103 SOMITEM_SEQUENCE
0x00004104 SOMITEM_EMPTYPARTICLE
0x00000800 SOMITEM_NULL
0x00002800 SOMITEM_NULL_TYPE
0x00004801 SOMITEM_NULL_ANY
0x00004802 SOMITEM_NULL_ANYATTRIBUTE
0x00004803 SOMITEM_NULL_ELEMENT
ilta (4 bytes): An unsigned integer that specifies the aggregation function to use for the total row
of the column. MUST be a value from the following table:
0x00000001 Average
0x00000002 Count
0x00000004 Max
656 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Aggregation Formula
0x00000005 Min
0x00000006 Sum
0x00000008 Variance
cbFmtAgg (4 bytes): An unsigned integer that specifies the size, in bytes, of the dxfFmtAgg field.
istnAgg (4 bytes): An unsigned integer that specifies the zero-based index of the Style record in the
Globals Substream ABNF that is used for the total row of the column. If this value equals
0xFFFFFFFF, the total row of the column uses built-in table styles.
A - fAutoFilter (1 bit): A bit that specifies whether the column has an AutoFilter.
B - fAutoFilterHidden (1 bit): A bit that specifies whether the column has an AutoFilters that is not
displayed. When this field is set to 1, fAutoFilter MUST be set to 1.
C - fLoadXmapi (1 bit): A bit that specifies whether the rgXmap field is present. MUST be 0 if the lt
field of the containing TableFeatureType structure is not equal to 0x00000002.
D - fLoadFmla (1 bit): A bit that specifies whether the fmla field is present for a table whose data
source is a Web based data provider list. MUST be 0 if the lt field of the containing
TableFeatureType structure is not equal to 0x00000001.
G - fLoadTotalFmla (1 bit): A bit that specifies whether the totalFmla field is present.
SHOULD<165> be 1 if ilta is 0x00000009, MUST be 0 otherwise.
H - fLoadTotalArray (1 bit): A bit that specifies whether the formula specified by totalFmla is an
array formula. MUST be 0 when fLoadTotalFmla is 0.
J - fLoadTotalStr (1 bit): A bit that specifies whether the strTotal field is present. MUST be 0 when
ilta is not 0x00000000.
K - fAutoCreateCalcCol (1 bit): A bit that specifies whether the column has a calculated column
formula. MUST be 0 if the lt field of the containing TableFeatureType structure is set to
0x00000001.
cbFmtInsertRow (4 bytes): An unsigned integer that specifies the size, in bytes, of the
dxfFmtInsertRow field.
istnInsertRow (4 bytes): An unsigned integer that specifies the zero-based index of the Style
record in the Globals Substream ABNF that is used for the insert row of the column. If this value
equals 0xFFFFFFFF, the insert row of the column uses built-in table styles.
657 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
strFieldName (variable): An XLUnicodeString that specifies the name of the column, as provided by
the data source. MUST contain at least one character and less than or equal to 255 characters.
MUST be unique within the FieldData array in the containing TableFeatureType structure if the lt
field of the containing TableFeatureType structure is set to 0x00000001 or 0x00000003.
strCaption (variable): An XLUnicodeString that specifies the caption of the column. MUST contain at
least one character and less than or equal to 255 characters. MUST be unique within the
FieldData array in the containing TableFeatureType structure. MUST be equal to the value within
the header cell at the location of the column title if the crwHeader field of the containing
TableFeatureType structure is greater than 0. This field is present if and only if the fSingleCell
field of the containing TableFeatureType structure is set to 0. MUST NOT contain the characters
from the following table:
Invalid Unicode surrogate pairs High surrogate with a value of 0xD800 to 0xDBFF followed
by a low surrogate with a value of 0xDC00 to 0xDFFF.
dxfFmtAgg (variable): A DXFN12List that specifies the formatting of the total row of the column, if
different from the style specified by istnAgg or built-in table styles. This field is present if and
only if the cbFmtAgg field is greater than 0x00000000.
dxfFmtInsertRow (variable): A DXFN12List that specifies the formatting of the insert row of the
column, if different from the style specified by istnInsertRow or built-in table styles. This field is
present if and only if the cbFmtInsertRow field is more than 0x00000000.
AutoFilter (variable): A Feat11FdaAutoFilter that specifies the characteristics of the AutoFilter for
the column. This field is present if and only if the fAutoFilter field of the containing
TableFeatureType structure is set to 1.
rgXmap (variable): A Feat11XMap structure that specifies the mapping to the column data within an
XML data source. This field is present if and only if the fLoadXmapi bit is set to 1.
fmla (variable): A Feat11Fmla structure that specifies the column formula whose data source is a
Web based data provider list. The specified formula applies to every row of the column, except the
total row and the header row. This field is present if and only if the fLoadFmla bit is set to 1.
totalFmla (variable): A Feat11TotalFmla structure that specifies the formula to use for the total row
of the column. This field is present if and only if the fLoadTotalFmla bit is set to 1.
strTotal (variable): An XLUnicodeString structure that specifies the text to use for the total row of
the column. MUST contain less than or equal to 32767 characters. This field is present if and only
if the fLoadTotalStr bit is set to 1.
wssInfo (variable): A Feat11WSSListInfo that specifies the relationship between the column and a
Web based data provider list. This field is present if and only if the lt field of the containing
TableFeatureType structure is set to 0x00000001.
qsif (4 bytes): An unsigned integer that specifies the relationship between the column and its
Microsoft Query data source. MUST be equal to the idField field of a Qsif record within the
Worksheet Substream. This field is present if and only if the lt field of the containing
TableFeatureType structure is set to 0x00000003 (External data source). MUST be greater than
zero and MUST be unique within the FieldData array in the containing TableFeatureType
structure.
658 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
dskHdrCache (variable): A CachedDiskHeader that specifies the column header formatting
information. This field is present if and only if the crwHeader field of the containing
TableFeatureType structure is set to 0x0000 and the fSingleCell field of the containing
TableFeatureType structure is set to 0.
2.5.114 Feat11Fmla
The Feat11Fmla structure specifies a formula (section 2.2.2) that is used as a column formula.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cbFmla (2 bytes): An unsigned integer that specifies the size, in bytes, of the rgbFmla field.
rgbFmla (variable): A ListParsedFormula that specifies the parsed expression of the column formula.
2.5.115 Feat11RgInvalidCells
The Feat11RgInvalidCells structure specifies the cells in a table linked to a Web-based data
provider data source which could not be synchronized.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cCellInvalid (2 bytes): An unsigned integer that specifies the number of items in the rgCellInvalid
field.
rgCellInvalid (variable): An array of Feat11CellStruct that specifies the cells that could not be
synchronized with a Web-based data provider data source.
2.5.116 Feat11RgSharepointIdChange
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
659 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cId (2 bytes): An unsigned integer that specifies the number of elements in rgId.
rgId (variable): An array of 4-byte unsigned integers that specifies identifiers of rows that were
modified. The length of the array is specified by the cId field, and each entry of the array specifies the
identifier of one row. The row identifier specified in this field MUST match a row identifier stored in the
LISTDATA element of the List Data stream, as well as the row identifier stored in the column with a
title "ID" in the table.
2.5.117 Feat11RgSharepointIdDel
The Feat11RgSharepointIdDel structure specifies the identifier of deleted rows in a table linked to
a Web-based data provider. This information is used when synchronizing between the local copy of
the table, and the Web-based data provider.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cId (2 bytes): An unsigned integer that specifies the number of elements in rgId.
rgId (variable): An array of 4-byte unsigned integers that specifies identifiers of rows that were
deleted. The length of the array is specified by the cId field, and each entry of the array specifies the
identifier of one row. The row identifier specified in this field MUST match a row identifier stored in
the LISTDATA element of the List Data stream.
2.5.118 Feat11TotalFmla
The Feat11TotalFmla structure specifies a formula (section 2.2.2) that can be used as a total row
formula<166>.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgbFmlaTotal (variable)
...
2.5.119 Feat11WSSListInfo
The Feat11WSSListInfo structure specifies the relationship between a table column and a Web-
based data provider list.
660 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
LCID
cDec
A B C D E F G unused1
H I J K L M N O bDefaultType unused2
rgbDV (variable)
...
strFormula (variable)
...
reserved
LCID (4 bytes): An unsigned integer that specifies the language code identifier (LCID) of the
source data.
cDec (4 bytes): An unsigned integer that specifies the number of decimal places for a numeric
column.
A - fPercent (1 bit): A bit that specifies whether the numeric values in the column are displayed as
percentages.
B - fDecSet (1 bit): A bit that specifies whether the numeric values in the column are displayed with
a fixed decimal point. The position of the decimal point is specified by the cDec field.
C - fDateOnly (1 bit): A bit that specifies whether only the date part of date/time values is
displayed.
D - fReadingOrder (2 bits): An unsigned integer that specifies the reading order. MUST be a value
from the following table:
Value Meaning
E - fRichText (1 bit): A bit that specifies whether the column contains rich text.
F - fUnkRTFormatting (1 bit): A bit that specifies whether the column contains unrecognized rich
text formatting.
G - fAlertUnkRTFormatting (1 bit): A bit that specifies whether the column contains unrecognized
rich text formatting that requires notifying the user.
661 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused1 (24 bits): Undefined and MUST be ignored.
H - fReadOnly (1 bit): A bit that specifies whether the column is read only.
I - fRequired (1 bit): A bit that specifies whether every item in this column has to contain data.
J - fMinSet (1 bit): A bit that specifies whether a minimum numeric value for the column exists. The
minimum value is stored in the List Data stream within the LISTSCHEMA element, under the Field
node's Min attribute.
K - fMaxSet (1 bit): A bit that specifies whether a maximum numeric value for the column exists.
The maximum value is stored in the List Data stream within the LISTSCHEMA element, under the Field
node's Max attribute.
L - fDefaultSet (1 bit): A bit that specifies whether there is a default value for the column.
M - fDefaultDateToday (1 bit): A bit that specifies whether the default value for the column is the
current date.
N - fLoadFormula (1 bit): A bit that specifies whether a validation formula exists for this column.
The formula is specified by the strFormula field.
O - fAllowFillIn (1 bit): A bit that specifies whether a choice field allows custom user entries.
bDefaultType (8 bits): An unsigned integer that specifies the type of the rgbDV default value. This
field MUST be ignored if fDefaultSet is not 0x1; otherwise, it MUST be a value from the following
table:
Value Meaning
rgbDV (variable): A field of variable data type that specifies the default value for the column. The
data type is specified in the lfdt field of the containing Feat11FieldDataItem structure. MUST be one of
the data types specified in the following table:
lfdt of the containing Data Type rgbDV data type and meaning
Feat11FieldDataItem
662 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
lfdt of the containing Data Type rgbDV data type and meaning
Feat11FieldDataItem
strFormula (variable): An XLUnicodeString that specifies the validation formula as defined by the
Web based data provider. This field exists if and only if fLoadFormula is set to 0x1.
2.5.120 Feat11XMap
The Feat11XMap structure specifies the mapping between a table column’s data and an XML data
source.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
iXmapMac (2 bytes): An unsigned integer that specifies the number of items in the rgXmap array.
MUST be less than or equal to 0x0001.
rgXmap (variable): An array of Feat11XMapEntry that specifies the mapping between the current
table column and an XML data source. The number of items in rgXmap MUST be equal to iXmapMac.
2.5.121 Feat11XMapEntry
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D reserved3
details (variable)
...
C - fCanBeSingle (1 bit): A bit that specifies whether details.rgbXPath resolves to a single XML
node or a collection of XML nodes. This field MUST be a value from the following table:
663 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0 Specifies that details.rgbXPath resolves to a collection of XML nodes.
1 Specifies that details.rgbXPath resolves to a single XML node.
details (variable): A Feat11XMapEntry2 that specifies the mapping between the data and the XML
data source.
2.5.122 Feat11XMapEntry2
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dwMapId
rgbXPath (variable)
...
dwMapId (4 bytes): An unsigned integer that specifies the XML schema associated with this table
column. The value MUST equal the value of the ID attribute of a Map element contained within the
XML stream (section 2.1.7.22).
rgbXPath (variable): An XLUnicodeString that contains the XPath expression that specifies the
mapped element in the XML schema specified by dwMapId. The length of this string MUST be less
than 32000.
2.5.123 FeatFormulaErr2
The FeatFormulaErr2 structure specifies formula evaluation information for a Shared Feature of type
ISFFEC2 as specified in SharedFeatureType.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
grffecIgnore
grffecIgnore (4 bytes): A FFErrorCheck that specifies the type of errors that will be ignored.
2.5.124 FeatProtection
664 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A reserved
wPassword
stTitle (variable)
...
sdContainer (variable)
...
A - fSD (1 bit): A bit that specifies whether this structure contains self-relative security descriptor
data. For more information about self-relative security descriptors see [MSDN-ASRSD].
wPassword (4 bytes): An unsigned integer that specifies the verifier for the password required to
edit the referenced ranges of a protected sheet. A value of zero indicates that the password is
empty. The algorithm to generate the password verifier is documented in the password verifier
algorithm.
stTitle (variable): An XLUnicodeString that specifies the title for this protection feature.
sdContainer (variable): An SDContainer that specifies security information that identifies who can
edit the referenced ranges of a protected sheet without needing a password.
2.5.125 FeatSmartTag
The FeatSmartTag structure specifies data for a Shared Feature of type ISFFACTOID as described in
SharedFeatureType.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hashValue
...
hashValue (4 bytes): An unsigned integer that specifies a hash value for the string representation
of the content of a cell. This hash value is used to detect cell changes with the purpose of
validating, updating or removing the smart tags associated with the cell. If the string
representation of the cell content is the empty string, hashValue MUST be 0; otherwise,
hashValue MUST be computed using the following algorithm:
665 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SET the most significant 4 bits of hashValue to zero
Bitwise shift overflow to the right by 24
SET hashValue to XOR of hashValue and overflow
END IF
END FOR
IF hashValue is zero
SET hashValue to 1
END IF
cSmartTags (1 byte): An unsigned integer that specifies the number of items in the rgFactoid
array.
rgFactoid (variable): An array of FactoidData. Each element specifies data for a smart tag.
2.5.126 FFErrorCheck
The FFErrorCheck structure specifies the types of error conditions that can be checked in a formula
evaluation for a Shared Feature.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F G H reserved
A - ffecCalcError (1 bit): A bit that specifies whether to check for calculation errors.
B - ffecEmptyCellRef (1 bit): A bit that specifies whether to check for references to empty cells.
C - ffecNumStoredAsText (1 bit): A bit that specifies whether to check the format of numeric
values.
D - ffecInconsistRange (1 bit): A bit that specifies whether to check formulas in the range of the
shared feature with references to less than the entirety of a range containing continuous data.
E - ffecInconsistFmla (1 bit): A bit that specifies whether to check formulas in the range of the
shared feature that are inconsistent with formulas in neighboring cells.
F - ffecTextDateInsuff (1 bit): A bit that specifies whether to check the format of date/time values.
G - ffecUnprotFmla (1 bit): A bit that specifies whether to check for unprotected formulas.
2.5.127 FillPattern
666 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.128 FillStylePropertiesForShapePropsStreamChecksum
The related GelFrame record referenced in the following field specifications is the GelFrame record that
exists along with the ShapePropsStream record in one of the following sets of records.
A sequence of records that conforms to the AXS rule if the wObjContext field in the
ShapePropsStream record is equal to 0x0003.
A sequence of records that conforms to the SS rule. If multiple ShapePropsStream records exist in
the set, then the ShapePropsStream record related to the GelFrame record MUST contain a
wObjContext field value equal to 0x0001. If a single ShapePropsStream record exists in the set,
it is related to the GelFrame record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fillTypeOpid
fillType
fillColorOpid
667 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillColor
fillOpacityOpid
fillOpacity
fillBackColorOpid
fillBackColor
fillBackOpacityOpid
fillBackOpacity
fillCrModOpid
fillCrMod
fillBlipOpid
fillBlip
...
...
fillBlipNameOpid
fillBlipName
fillBlipName_complex (variable)
...
fillBlipFlagsOpid
fillBlipFlags
fillWidthOpid
fillWidth
fillHeightOpid
fillHeight
fillAngleOpid
668 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillAngle
fillFocusOpid
fillFocus
fillToLeftOpid
fillToLeft
fillToTopOpid
fillToTop
fillToRightOpid
fillToRight
fillToBottomOpid
fillToBottom
fillRectLeftOpid
fillRectLeft
fillRectTopOpid
fillRectTop
fillRectRightOpid
fillRectRight
fillRectBottompOpid
fillRectBottom
fillDztypeOpid
fillDztype
fillShadePresetOpid
fillShadePreset
fillShadeColorsOpid
fillShadeColors
669 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillShadeColors_complex (variable)
...
fillOriginXOpid
fillOriginX
fillOriginYOpid
fillOriginY
fillShapeOriginXOpid
fillShapeOriginX
fillShapeOriginYOpid
fillShapeOriginY
fillShadeTypeOpid
fillShadeType
fillColorExtOpid
fillColorExt
reserved415Opid
reserved1
fillColorExtModOpid
fillColorExtMod
reserved417Opid
reserved2
fillBackColorExtOpid
fillBackColorExt
reserved419Opid
reserved3
fillBackColorExtModOpid
670 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillBackColorExtMod
reserved421Opid
reserved4
reserved422Opid
reserved5
reserved423Opid
reserved6
fillstyle_fFilledOpid
fillstyle_fFilled
fillstyle_ffillShapeOpid
fillstyle_ffillShape
fillstyle_ffillUseRectOpid
fillstyle_ffillUseRect
fillTypeOpid (4 bytes): An unsigned integer that specifies the identifier of the fillType property.
MUST be 0x0180, which is the same value as the opid.opid field of the fillType property as
specified in [MS-ODRAW] section 2.3.7.1.
fillType (4 bytes): An unsigned integer that specifies the fillType property. MUST equal the value
specified by the fillType field of the related GelFrame record or the default value if the field is not
present in the GelFrame record.
fillColorOpid (4 bytes): An unsigned integer that specifies the identifier of the fillColor property.
MUST be 0x0181, which is the same value as the opid.opid field of the fillColor property as
specified in [MS-ODRAW] section 2.3.7.2.
fillColor (4 bytes): An unsigned integer that specifies the fillColor property. MUST equal the value
specified by the fillColor field of the related GelFrame record or the default value if the field is not
present in the GelFrame record.
fillOpacityOpid (4 bytes): An unsigned integer that specifies the identifier of the fillOpacity
property. MUST be 0x0182, which is the same value as the opid.opid field of the fillOpacity
property as specified in [MS-ODRAW] section 2.3.7.3.
fillOpacity (4 bytes): An unsigned integer that specifies the fillOpacity property. MUST equal the
value specified by the fillOpacity field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillBackColorOpid (4 bytes): An unsigned integer that specifies the identifier of the fillBackColor
property. MUST be 0x0183, which is the same value as the opid.opid field of the fillBackColor
property as specified in [MS-ODRAW] section 2.3.7.4.
671 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillBackColor (4 bytes): An unsigned integer that specifies the fillBackColor property. MUST equal
the value specified by the fillBackColor field of the related GelFrame record or the default value if
the field is not present in the GelFrame record.
fillBackOpacity (4 bytes): An unsigned integer that specifies the fillBackOpacity property. MUST
equal the value specified by the fillBackOpacity field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
fillCrModOpid (4 bytes): An unsigned integer that specifies the identifier of the fillCrMod property.
MUST be 0x0185, which is the same value as the opid.opid field of the fillCrMod property as
specified in [MS-ODRAW] section 2.3.7.6.
fillCrMod (4 bytes): An unsigned integer that specifies the fillCrMod property. MUST equal the value
specified by the fillCrMod field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillBlipOpid (4 bytes): An unsigned integer that specifies the identifier of the fillBlip property. MUST
be 0x0186, which is the same value as the opid.opid field of the fillBlip property as specified in
[MS-ODRAW] section 2.3.7.7.
fillBlip (4 bytes): An unsigned integer that specifies the fillBlip property. MUST equal the value
specified by the fillBlip field of the related GelFrame record or the default value if the field is not
present in the GelFrame record.
fillBlip_complex_md4uid (16 bytes): An MD4 digest, as specified in [RFC1320], that MUST equal
the value specified by the fillBlip_complex.rgbUid1 field of the related GelFrame record. This
field MUST be present when fillBlip is greater than zero. MUST NOT be present when fillBlip is
zero.
fillBlipNameOpid (4 bytes): An unsigned integer that specifies the identifier of the fillBlipName
property. MUST be 0x0187, which is the same value as the opid.opid field of the fillBlipName
property as specified in [MS-ODRAW] section 2.3.7.9.
fillBlipName (4 bytes): An unsigned integer that specifies the fillBlipName property. MUST equal the
value specified by the fillBlipName field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillBlipName_complex (variable): A Unicode null-terminated string that MUST equal the value
specified by the fillBlipName_complex field of the related GelFrame record. This field MUST be
present when fillBlipName is greater than zero. MUST NOT be present when fillBlipName is
zero.
fillBlipFlagsOpid (4 bytes): An unsigned integer that specifies the identifier of the fillBlipFlags
property. MUST be 0x0188, which is the same value as the opid.opid field of the fillBlipFlags
property as specified in [MS-ODRAW] section 2.3.7.11.
fillBlipFlags (4 bytes): An unsigned integer that specifies the fillBlipFlags property. MUST equal the
value specified by the fillBlipFlags field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillWidthOpid (4 bytes): An unsigned integer that specifies the identifier of the fillWidth property.
MUST be 0x0189, which is the same value as the opid.opid field of the fillWidth property as
specified in [MS-ODRAW] section 2.3.7.12.
672 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillWidth (4 bytes): An unsigned integer that specifies the fillWidth property. MUST equal the value
specified by the fillWidth field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillHeightOpid (4 bytes): An unsigned integer that specifies the identifier of the fillHeight property.
MUST be 0x018A, which is the same value as the opid.opid field of the fillHeight property as
specified in [MS-ODRAW] section 2.3.7.13.
fillHeight (4 bytes): An unsigned integer that specifies the fillHeight property. MUST equal the value
specified by the fillHeight field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillAngleOpid (4 bytes): An unsigned integer that specifies the identifier of the fillAngle property.
MUST be 0x018B, which is the same value as the opid.opid field of the fillAngle property as
specified in [MS-ODRAW] section 2.3.7.14.
fillAngle (4 bytes): An unsigned integer that specifies the fillAngle property. MUST equal the value
specified by the fillAngle field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillFocusOpid (4 bytes): An unsigned integer that specifies the identifier of the fillFocus property.
MUST be 0x018C, which is the same value as the opid.opid field of the fillFocus property as
specified in [MS-ODRAW] section 2.3.7.15.
fillFocus (4 bytes): An unsigned integer that specifies the fillFocus property. MUST equal the value
specified by the fillFocus field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillToLeftOpid (4 bytes): An unsigned integer that specifies the identifier of the fillToLeft property.
MUST be 0x018D, which is the same value as the opid.opid field of the fillToLeft property as
specified in [MS-ODRAW] section 2.3.7.16.
fillToLeft (4 bytes): An unsigned integer that specifies the fillToLeft property. MUST equal the value
specified by the fillToLeft field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillToTopOpid (4 bytes): An unsigned integer that specifies the identifier of the fillToTop property.
MUST be 0x018E, which is the same value as the opid.opid field of the fillToTop property as
specified in [MS-ODRAW] section 2.3.7.17.
fillToTop (4 bytes): An unsigned integer that specifies the fillToTop property. MUST equal the value
specified by the fillToTop field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillToRightOpid (4 bytes): An unsigned integer that specifies the identifier of the fillToRight
property. MUST be 0x018F, which is the same value as the opid.opid field of the fillToRight
property as specified in [MS-ODRAW] section 2.3.7.18.
fillToRight (4 bytes): An unsigned integer that specifies the fillToRight property. MUST equal the
value specified by the fillToRight field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillToBottomOpid (4 bytes): An unsigned integer that specifies the identifier of the fillToBottom
property. MUST be 0x0190, which is the same value as the opid.opid field of the fillToBottom
property as specified in [MS-ODRAW] section 2.3.7.19.
fillToBottom (4 bytes): An unsigned integer that specifies the fillToBottom property. MUST equal the
value specified by the fillToBottom field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
673 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillRectLeftOpid (4 bytes): An unsigned integer that specifies the identifier of the fillRectLeft
property. MUST be 0x0191, which is the same value as the opid.opid field of the fillRectLeft
property as specified in [MS-ODRAW] section 2.3.7.20.
fillRectLeft (4 bytes): An unsigned integer that specifies the fillRectLeft property. MUST equal the
value specified by the fillRectLeft field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillRectTopOpid (4 bytes): An unsigned integer that specifies the identifier of the fillRectTop
property. MUST be 0x0192, which is the same value as the opid.opid field of the fillRectTop
property as specified in [MS-ODRAW] section 2.3.7.21.
fillRectTop (4 bytes): An unsigned integer that specifies the fillRectTop property. MUST equal the
value specified by the fillRectTop field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillRectRightOpid (4 bytes): An unsigned integer that specifies the identifier of the fillRectRight
property. MUST be 0x0193, which is the same value as the opid.opid field of the fillRectRight
property as specified in [MS-ODRAW] section 2.3.7.22.
fillRectRight (4 bytes): An unsigned integer that specifies the fillRectRight property. MUST equal the
value specified by the fillRectRight field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillRectBottom (4 bytes): An unsigned integer that specifies the fillRectBottom property. MUST
equal the value specified by the fillRectbottom field of the related GelFrame record or the default
value if the field is not present in the GelFrame record.
fillDztypeOpid (4 bytes): An unsigned integer that specifies the identifier of the fillDztype property.
MUST be 0x0195, which is the same value as the opid.opid field of the fillDztype property as
specified in [MS-ODRAW] section 2.3.7.24.
fillDztype (4 bytes): An unsigned integer that specifies the fillDztype property. MUST equal the
value specified by the fillDztype field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillShadePreset (4 bytes): An unsigned integer that specifies the fillShadePreset property. MUST
equal the value specified by the fillShadePreset field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
fillShadeColors (4 bytes): An unsigned integer that specifies the number of bytes of data in the
following fillShadeColors_complex field.
674 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillOriginXOpid (4 bytes): An unsigned integer that specifies the identifier of the fillOriginX property.
MUST be 0x0198, which is the same value as the opid.opid field of the fillOriginX property as
specified in [MS-ODRAW] section 2.3.7.28.
fillOriginX (4 bytes): An unsigned integer that specifies the fillOriginX property. MUST equal the
value specified by the fillOriginX field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillOriginYOpid (4 bytes): An unsigned integer that specifies the identifier of the fillOriginY property.
MUST be 0x0199, which is the same value as the opid.opid field of the fillOriginY property as
specified in [MS-ODRAW] section 2.3.7.29.
fillOriginY (4 bytes): An unsigned integer that specifies the fillOriginY property. MUST equal the
value specified by the fillOriginY field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
fillShapeOriginX (4 bytes): An unsigned integer that specifies the fillShapeOriginX property. MUST
equal the value specified by the fillShapeOriginX field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
fillShapeOriginY (4 bytes): An unsigned integer that specifies the fillShapeOriginY property. MUST
equal the value specified by the fillShapeOriginY field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
fillShadeTypeOpid (4 bytes): An unsigned integer that specifies the identifier of the fillShadeType
property. MUST be 0x019C, which is the same value as the opid.opid field of the fillShadeType
property as specified in [MS-ODRAW] section 2.3.7.32.
fillShadeType (4 bytes): An unsigned integer that specifies the fillShadeType property. MUST equal
the value specified by the fillShadeType field of the related GelFrame record or the default value
if the field is not present in the GelFrame record.
fillColorExtOpid (4 bytes): An unsigned integer that specifies the identifier of the fillColorExt
property. MUST be 0x019E, which is the same value as the opid.opid field of the fillColorExt
property as specified in [MS-ODRAW] section 2.3.7.33.
fillColorExt (4 bytes): An unsigned integer that specifies the fillColorExt property. MUST equal the
value specified by the fillColorExt field of the related GelFrame record or the default value if the
field is not present in the GelFrame record.
reserved415Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved415
property. MUST be 0x019F, which is the same value as the opid.opid field of the reserved415
property as specified in [MS-ODRAW] section 2.3.7.34.
675 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillColorExtMod (4 bytes): An unsigned integer that specifies the fillColorExtMod property. MUST
equal the value specified by the fillColorExtMod field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
reserved417Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved417
property. MUST be 0x01A1, which is the same value as the opid.opid field of the reserved417
property as specified in [MS-ODRAW] section 2.3.7.36.
fillBackColorExt (4 bytes): An unsigned integer that specifies the fillBackColorExt property. MUST
equal the value specified by the fillBackcolorExt field of the related GelFrame record or the
default value if the field is not present in the GelFrame record.
reserved419Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved419
property. MUST be 0x01A3, which is the same value as the opid.opid field of the reserved419
property as specified in [MS-ODRAW] section 2.3.7.38.
reserved421Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved421
property. MUST be 0x01A5, which is the same value as the opid.opid field of the reserved421
property as specified in [MS-ODRAW] section 2.3.7.40.
reserved422Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved422
property. MUST be 0x01A6, which is the same value as the opid.opid field of the reserved422
property as specified in [MS-ODRAW] section 2.3.7.41.
reserved423Opid (4 bytes): An unsigned integer that specifies the identifier of the reserved423
property. MUST be 0x01A7, which is the same value as the opid.opid field of the reserved423
property as specified in [MS-ODRAW] section 2.3.7.42.
fillstyle_fFilledOpid (4 bytes): An unsigned integer that specifies the identifier of the fFilled
property. MUST be 0x01BB.
fillstyle_fFilled (4 bytes): An unsigned integer that specifies the fFilled property. MUST equal the
value specified by the fFilled field of the related GelFrame record or the default value if the field is
not present in the GelFrame record.
fillstyle_ffillShapeOpid (4 bytes): An unsigned integer that specifies the identifier of the ffillShape
property. MUST be 0x01BD.
676 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fillstyle_ffillShape (4 bytes): An unsigned integer that specifies the ffillShape property. MUST equal
the value specified by the ffillShape field of the related GelFrame record or the default value if
the field is not present in the GelFrame record.
fillstyle_ffillUseRect (4 bytes): An unsigned integer that specifies the ffillUseRect property. MUST
equal the value specified by the ffillUseRect field of the related GelFrame record or the default
value if the field is not present in the GelFrame record.
2.5.129 FontIndex
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ifnt
ifnt (2 bytes): An unsigned integer. If this value is less than 4, then it specifies a zero-based index
of a Font record in the collection of Font records in the Globals Substream. If this value is greater
than 4, then it specifies a one-based index of a Font record in the collection of Font records in the
Globals Substream. MUST NOT equal 4, and MUST be less than or equal to 1022. SHOULD<168>
be less than or equal to 510.
The Font records in the Globals Substream are organized into two sections. The first section
contains four Font records which MUST be present and MUST be ordered as follows<169>:
The second section, which is optional, contains Font records for any additional font formatting
properties present in the file. For example, the 5th Font record in the file is referred to by ifnt
value 5.
2.5.130 FontInfo
The FontInfo structure specifies a font entry used by the FrtFontList record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A reserved ifnt
A - fScaled (1 bit): A bit that specifies whether the fonts are scaled. MUST be a value from the
following table<170>:
Value Meaning
0x0 Font has fixed size
0x1 Font scales with chart area (section
2.2.3.17) in a chart, or plot area
677 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved (15 bits): MUST be zero, and MUST be ignored.
ifnt (2 bytes): A FontIndex that specifies the font used by the FrtFontList record.
2.5.131 FontScheme
The FontScheme enumeration specifies the font scheme to which this font belongs. When a font is
part of a theme as specified in [ECMA-376] part 1, section 14.2.7, the font is categorized as a major
scheme or a minor scheme.
2.5.132 FormatRun
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ich ifnt
ich (2 bytes): An unsigned integer that specifies the zero-based index of the first character of the
text that contains the text run. When this record is used in an array, this value MUST be in strictly
increasing order.
ifnt (2 bytes): A FontIndex structure that specifies the font. If ich is equal to the length of the text,
this record is undefined and MUST be ignored.
2.5.133 FormulaValue
The FormulaValue structure specifies the current value of a formula. It can be a numeric value, a
Boolean value, an error value, a string value, or a blank string value. If fExprO is not 0xFFFF, the 8
bytes of this structure specify an Xnum (section 2.5.342). If fExprO is 0xFFFF, this structure specifies
a Boolean value, an error value, a string value, or a blank string value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
byte1 (1 byte): If fExprO is 0xFFFF, byte1 is an unsigned integer that specifies the formula value
type and MUST be a value from the following table:
678 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00 String value. The string value is stored in a String
record that immediately follows this record.
0x01 Boolean value.
0x02 Error value.
0x03 Blank string value.
If fExprO is not 0xFFFF, byte1 specifies the first byte of the Xnum.
byte2 (1 byte): If fExprO is 0xFFFF, byte2 is undefined and MUST be ignored. If fExprO is not
0xFFFF, byte2 specifies the second byte of the Xnum (section 2.5.342).
Value Meaning
fExprO is 0xFFFF and byte1 is 0x00 byte3 is undefined and MUST be ignored.
fExprO is 0xFFFF and byte1 is 0x01 byte3 specifies a Boolean value.
fExprO is 0xFFFF and byte1 is 0x02 byte3 specifies a BErr.
fExprO is 0xFFFF and byte1 is 0x03 byte3 is undefined and MUST be ignored.
fExprO is not 0xFFFF byte3 specifies the third byte of the Xnum.
byte4 (1 byte): If fExprO is 0xFFFF, byte4 is undefined and MUST be ignored. If fExprO is not
0xFFFF, byte4 specifies the fourth byte of the Xnum.
byte5 (1 byte): If fExprO is 0xFFFF, byte5 is undefined and MUST be ignored. If fExprO is not
0xFFFF, byte5 specifies the fifth byte of the Xnum.
byte6 (1 byte): If fExprO is 0xFFFF, byte6 is undefined and MUST be ignored. If fExprO is not
0xFFFF, byte6 specifies the sixth byte of the Xnum.
fExprO (2 bytes): If fExprO is 0xFFFF, this structure specifies a Boolean value, an error value, a
string value, or a blank string value. If fExprO is not 0xFFFF, fExprO specifies the last two bytes
of the Xnum.
2.5.134 FrtFlags
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B reserved
A - fFrtRef (1 bit): A bit that specifies whether the containing record specifies a range of cells.
MUST be a value from the following table:
Value Meaning
0 The containing record does not specify a range of cells. The containing record’s
ref8.rwFirst, ref8.rwLast, ref8.colFirst, and ref8.colLast fields SHOULD<171> all
be zero.
679 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - fFrtAlert (1 bit): A bit that specifies whether to alert the user of possible problems when saving
the file without having recognized this record.
2.5.135 FrtHeader
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt grbitFrt
reserved
...
rt (2 bytes): An unsigned integer that specifies the record type identifier. MUST be identical to the
record type identifier of the containing record.
grbitFrt (2 bytes): An FrtFlags that specifies attributes for this record. The value of
grbitFrt.fFrtRef MUST be zero. The value of grbitFrt.fFrtAlert MUST be zero.
2.5.136 FrtHeaderOld
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt grbitFrt
rt (2 bytes): An unsigned integer that specifies the record type identifier. MUST be identical to the
record type identifier of the containing record.
grbitFrt (2 bytes): An FrtFlags that specifies attributes for this record. The value of
grbitFrt.fFrtRef MUST be zero. The value of grbitFrt.fFrtAlert MUST be zero.
2.5.137 FrtRefHeader
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt grbitFrt
ref8
680 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
rt (2 bytes): An unsigned integer that specifies the record type identifier. MUST be identical to the
record type identifier of the containing record.
grbitFrt (2 bytes): A FrtFlags that specifies attributes for this record. The value of
grbitFrt.fFrtAlert MUST be zero.
ref8 (8 bytes): A Ref8 that references the range of cells associated with the containing record. If
grbitFrt.fFrtRef is zero then ref8.rwFirst MUST be zero, ref8.rwLast MUST be zero,
ref8.colFirst MUST be zero, and ref8.colLast MUST be zero.
2.5.138 FrtRefHeaderNoGrbit
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt ref8
...
...
rt (2 bytes): An unsigned integer that specifies the record type identifier. MUST be identical to the
record type identifier of the containing record.
ref8 (8 bytes): A Ref8U that references the range of cells associated with the containing record.
2.5.139 FrtRefHeaderU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rt grbitFrt
ref8
...
rt (2 bytes): An unsigned integer that specifies the record type identifier. MUST be identical to the
record type identifier of the containing record.
grbitFrt (2 bytes): A FrtFlags that specifies attributes for this record. The value of
grbitFrt.fFrtAlert MUST be zero.
ref8 (8 bytes): A Ref8U that references the range of cells associated with the containing record. If
rt is Feature11 (0x0872) or Feature12 (0x0878), this field MUST be ignored.
681 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.140 FtCbls
The FtCbls structure appears as part of an Obj record that represents a checkbox or radio button.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
unused1
unused2
unused3
2.5.141 FtCblsData
The FtCblsData structure specifies the properties of the checkbox or radio button Obj that contains
this FtCblsData.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
fChecked accel
reserved A unused
fChecked (2 bytes): An unsigned integer that specifies the state of the checkbox or radio button
control. MUST be a value from the following table:
Value Meaning
682 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
accel (2 bytes): An unsigned integer that specifies the Unicode character of the control’s
accelerator key. A value of 0x0000 specifies there is no accelerator associated with this control. This
field MUST be ignored unless this structure is used in the Dialog Sheet Substream.
A - fNo3d (1 bit): A bit that specifies whether the control is expected to be displayed without three-
dimensional effects.
2.5.142 FtCf
The FtCf structure specifies the clipboard format of the picture-type Obj record containing this FtCf.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
cf
cf (2 bytes): An unsigned integer that specifies the Windows clipboard format of the data associated
with the picture. This field’s value MUST be in the following table:
Value Format
0xFFFF Specifies the picture is in an unspecified format that is neither and enhanced metafile
nor a bitmap.
2.5.143 FtCmo
The FtCmo structure specifies the common properties of the Obj record that contains this FtCmo.
683 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
ot id
A B C D E F G H I J K L M N O P unused8
... unused9
... unused10
...
ot (2 bytes): An unsigned integer that specifies the type of object represented by the Obj record that
contains this FtCmo. MUST be a value from the following table:
0x0000 Group
0x0001 Line
0x0002 Rectangle
0x0003 Oval
0x0004 Arc
0x0005 Chart
0x0006 Text
0x0007 Button
0x0008 Picture
0x0009 Polygon
0x000B Checkbox
0x000E Label
0x0011 Scrollbar
0x0012 List
684 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Type of Object
0x0019 Note
id (2 bytes): An unsigned integer that specifies the identifier of this object. This object identifier is
used by other types to refer to this object. The value of id MUST be unique among all Obj records
within the Chart Sheet Substream ABNF, Macro Sheet Substream ABNF and Worksheet Substream
ABNF.
C - fDefaultSize (1 bit): A bit that specifies whether the application is expected to choose the
object’s size.
D - fPublished (1 bit): A bit that specifies whether this is a chart object that is expected to be
published the next time the sheet containing it is published<172>. This bit is ignored if the
fPublishedBookItems field of the BookExt_Conditional12 structure is zero.
E - fPrint (1 bit): A bit that specifies whether the image of this object is intended to be included
when printed.
H - fDisabled (1 bit): A bit that specifies whether this object has been disabled.
I - fUIObj (1 bit): A bit that specifies whether this is an auxiliary object that can only be
automatically inserted by the application (as opposed to an object that can be inserted by a user).
J - fRecalcObj (1 bit): A bit that specifies whether this object is expected to be updated on load to
reflect the values in the range associated with the object. This field MUST be ignored unless the
pictFmla.key field of the containing Obj exists and pictFmla.key.fmlaListFillRange.cbFmla of the
containing Obj is not equal to 0.
M - fRecalcObjAlways (1 bit): A bit that specifies whether this object is expected to be updated
whenever the value of a cell in the range associated with the object changes. This field MUST be
ignored unless the pictFmla.key field of the containing Obj exists and
pictFmla.key.fmlaListFillRange.cbFmla of the containing Obj is not equal to 0.
685 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused9 (4 bytes): Undefined and MUST be ignored.
2.5.144 FtEdoData
This structure specifies the properties of the edit box Obj record that contains this FtEdoData.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
ivtEdit fMultiLine
fVScroll id
ivtEdit (2 bytes): An unsigned integer that specifies what input data validation is expected to be
performed by this edit box. MUST be a value from the following table:
0x0001 An integer.
0x0002 A number.
fMultiLine (2 bytes): A Boolean (section 2.5.14) that specifies whether this edit box supports
multiple lines of text. MUST be a value from the following table:
Value Meaning
fVScroll (2 bytes): A Boolean that specifies whether this edit box contains a vertical scrollbar. MUST
be a value from the following table:
Value Meaning
686 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
id (2 bytes): An ObjId that specifies the associated list control. The associated list control is the
control specified by the Obj record whose cmo.id field is equal to id.id. A value of id.id equal to 0
specifies that there is no list control associated with this edit box.
2.5.145 FtGboData
The FtGboData structure specifies the properties of the group box Obj record that contains this
FtGboData.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
accel reserved
A unused2
accel (2 bytes): An unsigned integer that specifies the Unicode character of the object’s
accelerator key. A value of 0x0000 specifies there is no accelerator key associated with this object.
This field MUST be ignored unless this object is in a dialog sheet.
A - fNo3d (1 bit): A bit that specifies whether this control is expected to be displayed without three-
dimensional effects.
2.5.146 FtGmo
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
unused
687 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cb (2 bytes): Reserved. MUST be 0x0002
2.5.147 FtLbsData
The FtLbsData structure specifies the properties of a list or drop-down list embedded object in a
sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cbFContinued
fmla (variable)
...
cLines iSel
A B C D E F G lct idEdit
dropData (variable)
...
rgLines (variable)
...
bsels (variable)
...
cbFContinued (2 bytes): An unsigned integer that indirectly specifies whether some of the data in
this structure appear in a subsequent Continue record. If cbFContinued is 0x0000, all of the
fields in this structure except ft and cbFContinued MUST NOT exist. If this entire structure is
contained within the same record, then cbFContinued MUST be greater than or equal to the size,
in bytes, of this structure, not including the four bytes for the ft and cbFContinued fields. If part
of this structure is in one or more subsequent Continue records, then the cbFContinued field
MUST hold the value calculated according to the following formula:
fmla (variable): An ObjFmla that specifies the range of cell values that are the items in this list.
cLines (2 bytes): An unsigned integer that specifies the number of items in the list. MUST be less
than or equal to 0x7FFF.
iSel (2 bytes): An unsigned integer that specifies the one-based index of the first selected item in
this list. A value of 0x0000 specifies there is no currently selected item. MUST be less than or
equal to cLines.
688 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fUseCB (1 bit): A bit that specifies whether the lct field MUST be ignored. MUST be a value from
the following table:
Value Meaning
B - fValidPlex (1 bit): A bit that specifies whether the rgLines field exists.
C - fValidIds (1 bit): A bit that specifies whether the idEdit field MUST be ignored. MUST be a value
from the following table:
Value Meaning
D - fNo3d (1 bit): A bit that specifies whether this control is displayed without 3-dimensional effects.
MUST be a value from the following table:
Value Meaning
E - wListSelType (2 bits): An unsigned integer that specifies the type of selection behavior this list
control is expected to support. MUST be a value from the following table:
Value Meaning
1 The list control is allowed to have multiple items selected by clicking on each item.
2 The list control is allowed to have multiple items selected by holding the CTRL key and
clicking on each item.
lct (8 bits): An unsigned integer that specifies the behavior class of this list. MUST be ignored if the
fUseCB field is 0. Otherwise, MUST be a value from the following table:
689 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Expected behavior of the control
0x03 AutoFilter dropdown. The lct field MUST NOT have this value unless this object is in a worksheet or
macro sheet.
0x06 Data validation list dropdown. The lct field MUST NOT have this value unless this object is in a
worksheet or macro sheet.
idEdit (2 bytes): An ObjId that specifies the edit box associated with this list. A value of idEdit.id
equal to 0x0000 or a value of fValidIds equal to 0 specifies that there is no edit box associated with
this list.
dropData (variable): An optional LbsDropData that specifies properties for this dropdown control.
This field MUST exist if and only if the containing Obj’s cmo.ot is equal to 0x0014.
rgLines (variable): An optional array of XLUnicodeString. Each string in this array specifies an item
in the list. This array MUST exist if and only if the fValidPlex field is equal to 1. The number of
elements in this array, if it exists, MUST be cLines. The cch field of each string in this array MUST
be less than or equal to 0x00FF. If this array does not fit in the owning Obj record, Continue
records are used. Each string in this array MUST be entirely contained within the same record.
bsels (variable): An optional array of one-byte Booleans (section 2.5.14) that specifies which items
in the list are part of a multiple selection. This array MUST exist if and only if the wListSelType
field is not equal to 0. The number of elements in this array, if it exists, MUST be cLines. The nth
byte in this array specifies whether the nth list item is part of the multiple selection. The value of
each element MUST be taken from the following table:
Value Meaning
If this array does not fit in the current record, or would come within eight bytes of the end of the
maximum allowable size of that record, Continue records are used.
2.5.148 FtMacro
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft fmla (variable)
...
690 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fmla (variable): An ObjFmla that specifies the name of a macro. The fmla field MUST refer to a
name defined through an Lbl whose fProc field is 1.
2.5.149 FtNts
The FtNts structure specifies the properties of the note-type Obj record containing this FtNts.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
...
...
fSharedNote unused
...
guid (16 bytes): A GUID as specified by [MS-DTYP] that specifies the Globally Unique identifier of
this comment.
fSharedNote (2 bytes): A Boolean (section 2.5.14) that specifies whether the comment is shared.
MUST be a value from the following table:
0x0001 Shared
2.5.150 FtPictFmla
The FtPictFmla structure specifies the location of the data associated with the picture Obj that
contains this FtPictFmla.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
691 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fmla (variable)
...
lPosInCtlStm (optional)
cbBufInCtlStm (optional)
key (variable)
...
cb (2 bytes): An unsigned integer that specifies the length, in bytes of this FtPicFmla, not including
ft and cb fields.
fmla (variable): An ObjFmla that specifies the location of the data for the object associated with the
Obj record that contains this FtPictFmla. If the pictFlags.fDde field of the Obj record that contains
this FtPictFmla is 1, fmla MUST refer to a name which is defined in an ExternName record whose fOle
field is 1. If the pictFlags.fCamera field of the Obj record that contains this FtPictFmla is 1, fmla
MUST refer to a range. Otherwise, the fmla.cce field of this fmla MUST be 0x5 and the fmla.rgce
field of this fmla MUST contain a PtgTbl followed by four bytes that are undefined and MUST be
ignored.
lPosInCtlStm (4 bytes): An optional unsigned integer whose meaning depends on the value of the
cmo.fPrstm field of the Obj record that contains this FtPictFmla. This field MUST exist if and only if
this structure’s fmla.fmla.rgce field starts with a PtgTbl. The following table explains the two possible
meanings of lPosInCtlStm:
0 The object’s data MUST reside in an embedding storage whose name is the
concatenation of "MBD" and the eight byte hexadecimal representation of
lPosInCtlStm’s value.
1 lPosInCtlStm specifies the zero-based offset of this object’s data within the
control stream (Ctls).
cbBufInCtlStm (4 bytes): An optional unsigned integer that specifies the size of this object’s data
within the control stream. This field MUST exist if and only if the pictFlags.fPrstm field of the Obj
record that contains this FtPictFmla equals 1.
key (variable): An optional PictFmlaKey. MUST exist if and only if the pictFlags.fCtl field of the Obj
record that contains this FtPictFmla equals 1.
2.5.151 FtPioGrbit
The FtPioGrbit structure specifies Boolean properties of the picture Obj containing this FtPioGrbit.
692 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
A B C D E F G H I J unused2
A - fAutoPict (1 bit): A bit that specifies whether the picture’s aspect ratio is preserved when
rendered in different views (Normal view, Page Break Preview view, Page Layout view and
printing).
B - fDde (1 bit): A bit that specifies whether the pictFmla field of the Obj record that contains this
FtPioGrbit specifies a DDE reference.
C - fPrintCalc (1 bit): A bit that specifies whether this object is expected to be updated on print to
reflect the values in the cell associated with the object.
D - fIcon (1 bit): A bit that specifies whether the picture is displayed as an icon.
E - fCtl (1 bit): A bit that specifies whether this object is an ActiveX control. It MUST NOT be the
case that both fCtl and fDde are equal to 1.
F - fPrstm (1 bit): A bit that specifies whether the object data are stored in an embedding storage or
in the controls stream (ctls). See FtPictFmla’s lPosInCtlStm and cbBufInCtlStm fields for more
detail.
0 An embedding storage.
I - fDefaultSize (1 bit): A bit that specifies whether this picture’s size has been explicitly set. The
value of fDefaultSize MUST be taken from the following table:
Value Meaning
J - fAutoLoad (1 bit): A bit that specifies whether the OLE server for the object is called to load
the object’s data automatically when the parent workbook is opened.
693 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.152 FtRbo
The FtRbo structure appears as part of an Obj record that represents a radio button.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
unused1
unused2
2.5.153 FtRboData
The FtRboData structure specifies the properties of the radio button Obj containing this FtRboData.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
idRadNext fFirstBtn
idRadNext (2 bytes): An ObjId that specifies the next radio button in a group of radio buttons. A
value of idRadNext.id equal to 0 or equal to the containing Obj’s cmo.id specifies there is no next
radio button.
fFirstBtn (2 bytes): A Boolean (section 2.5.14) that specifies whether this is the first radio button in
its group. MUST be a value from the following table:
Value Meaning
694 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.154 FtSbs
The FtSbs structure specifies the properties of the scrollable control represented by the Obj record
that contains this FtSbs.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft cb
unused1
iVal iMin
iMax dInc
dPage fHoriz
dxScroll A B C D unused2
iVal (2 bytes): A signed integer that specifies the current value of the control. This value MUST be
greater than or equal to iMin. This value MUST be less than or equal to iMax.
iMin (2 bytes): A signed integer that specifies the minimum allowable value of the control.
iMax (2 bytes): A signed integer that specifies the maximum allowable value of the control. This
value MUST be greater than or equal to iMin.
dInc (2 bytes): A signed integer that specifies the amount by which the control’s value is changed
when the user clicks on one of the control’s minor increment regions. MUST be greater than or equal
to 0x0000.
dPage (2 bytes): A signed integer that specifies the amount by which the control’s value is changed
when the user clicks on the scrollbar’s page up or page down region. MUST be greater than or equal to
0x0000.
fHoriz (2 bytes): A Boolean (section 2.5.14) that specifies whether this control scrolls horizontally
or vertically. MUST be a value from the following table:
dxScroll (2 bytes): A signed integer that specifies the width in pixels of the scrollbar. MUST be
greater than or equal to 0x0000.
695 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fDraw (1 bit): A bit that specifies whether this control is expected to be displayed.
B - fDrawSliderOnly (1 bit): A bit that specifies whether only the slider portion of this control is
expected to be displayed.
C - fTrackElevator (1 bit): A bit that specifies whether the control is expected to interactively track
a mouse drag of the control’s scroll thumb (aka elevator).
D - fNo3d (1 bit): A bit that specifies whether the control is expected to be displayed without three-
dimensional effects.
2.5.155 FullColorExt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xclrType nTintShade
xclrValue
unused
...
xclrType (2 bytes): An XColorType that specifies how the color information is stored.
nTintShade (2 bytes): A signed integer that specifies the tint of the color. Positive values lighten the
color, and negative values darken the color.
xclrValue (4 bytes): An unsigned integer that specifies the color data. If xclrType equals 0x00 or
0x04, this value MUST be 0. If xclrType equals 0x01, this field contains an IcvXF that specifies a
color in the color table. If xclrType equals 0x02, this field contains a LongRGBA that specifies an
red-green-blue-alpha (RGBA) value. If xclrType equals 0x03, this field contains a ColorTheme
that specifies a theme color.
2.5.156 GradStop
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xclrType xclrValue
... numPosition
...
... numTint
696 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
xclrType (2 bytes): An XColorType that specifies how the color information is stored.
xclrValue (4 bytes): An unsigned integer that specifies the color data. If xclrType equals 0x00 or
0x04, this value MUST be 0. If xclrType equals 0x01, this field contains an IcvXF that specifies
color in the color table. If xclrType equals 0x02, this field contains a LongRGBA that specifies an
RGBA value. If xclrType equals 0x03, this field contains a ColorTheme that specifies a theme
color
numPosition (8 bytes): An Xnum (section 2.5.342) that specifies the gradient stop position as the
percentage of the gradient range. The gradient stop position is the position within the gradient
range where this gradient stop’s color begins. MUST be greater than or equal to 0.0 and less than
or equal to 1.0.
numTint (8 bytes): An Xnum that specifies the tint of the color. MUST be greater than or equal to -
1.0 and less than or equal to 1.0. Positive values lighten the color, and negative values darken the
color.
2.5.157 HiddenMemberSet
The HiddenMemberSet structure specifies OLAP members hidden from a PivotTable view that are
in the same level in an OLAP hierarchy.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cMemberName
rgMemberName (variable)
...
2.5.158 HideObjEnum
The HideObjEnum enumeration specifies how ActiveX objects, OLE objects, and drawing objects
appear in a window that contains the workbook.
ActiveX objects, OLE objects, and drawing objects are displayed in the
SHOWALL 0x0000
window that contains the workbook.
697 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
ActiveX objects, OLE objects, and drawing objects are not displayed in the
HIDEALL 0x0002
window that contains the workbook.
2.5.159 HorizAlign
2.5.160 HorzBrk
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row colStart
colEnd
row (2 bytes): A RwU that specifies the zero-based index of the first row below the page break.
colStart (2 bytes): An unsigned integer that specifies the zero-based index of the first column on
the page. MUST be less than or equal to 16383.
colEnd (2 bytes): An unsigned integer that specifies the zero-based index of the last column on the
page. The value MUST be greater than colStart and less than or equal to 16383.
2.5.161 Icv
698 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icv
icv (2 bytes): An unsigned integer that specifies a color from the color table. The value MUST be one
of the following values: a value greater than or equal to 0x000 and less than or equal to 0x0041,
a value greater than or equal to 0x004D and less than or equal to 0x004F, 0x0051, or 0x7FFF.
The values that are greater than or equal to 0x0000 and less than or equal to 0x0007 specify
built-in color constants. This part of the color table is:
icv value Color description Red value Green value Blue value
0x0000 Black 0 0 0
The next 56 values in the table, the icv values greater than or equal to 0x0008 and less than or
equal to 0x003F, specify the palette colors in the table. If a Palette record exists in this file, these
icv values specify colors from the rgColor array in the Palette record. If no Palette record exists,
these values specify colors in the default palette. The next 56 values in this part of the color table
specify the following:
699 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Default Default Default
700 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Default Default Default
The remaining values in the color table specify colors associated with application display settings as
follows:
Value Meaning
0x0040 Default foreground color. This is the window text color in the
sheet display.
0x0041 Default background color. This is the window background color
in the sheet display and is the default background color for a
cell.
0x004D Default chart foreground color. This is the window text color in
the chart display.
0x004E Default chart background color. This is the window background
color in the chart display.
0x004F Chart neutral color which is black, an RGB value of (0,0,0).
0x0051 ToolTip text color. This is the automatic font color for
701 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
comments.
0x7FFF Font automatic color. This is the window text color.
2.5.162 IcvChart
The IcvChart structure specifies a color in the Chart color table. The Chart color table is a subset of
the full color table. See Icv for more information about the colors in the Chart color table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icv
icv (2 bytes): An Icv that specifies a color from the chart color table. This value MUST be greater
than or equal to 0x0000 and less than or equal to 0x0041, or greater than or equal to 0x004D and
less than or equal to 0x00004F. This value SHOULD NOT<173> be less than 0x0008.
2.5.163 IcvFont
The IcvFont structure specifies a color that is used by fonts. The font colors are a subset of the full
color table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icv
icv (2 bytes): An Icv that specifies a font color. MUST be greater than or equal to 0x0008 and less
than or equal to 0x003F or 0x0051 or 0x7FFF.
2.5.164 IcvXF
The IcvXF structure specifies a color in the color table used by cell and style formatting properties.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icv
icv (7 bits): An unsigned integer that specifies a formatting property color. The value MUST be 0x48,
or an Icv with a value greater than or equal to 0x01 and less than or equal to 0x3F, the default
foreground color (0x40), or the default background color (0x41). This value SHOULD NOT<174>
be 0x48, or less than or equal to 0x07.
2.5.165 IFmt
702 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ifmt
ifmt (2 bytes): An unsigned integer that specifies the identifier of a number format. The identifier
specified by this field MUST be a valid built-in number format identifier or the identifier of a
custom number format as specified using a Format record. Custom number format identifiers
MUST be greater than or equal to 0x00A4 and less than or equal to 0x0188, and SHOULD<175>
be less than or equal to 0x017E. The built-in number formats are listed in [ECMA-376] Part 4:
Markup Language Reference, section 3.8.30.
2.5.166 InteriorColorPropertiesForShapePropsStreamChecksum
The related AreaFormat record referenced in the following field specifications is the AreaFormat record
that exists along with the ShapePropsStream record in one of the following sets of records.
A sequence of records that conforms to the AXS rule if the field wObjContext in the
ShapePropsStream record is equal to 0x0003.
If the field wObjContext in the ShapePropsStream record is equal to 0x0001, then the
foregroundColor and backgroundColor properties are obtained from the MarkerFormat record
in the sequence of records that conforms to the SS rule instead.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
foregroundColor
backgroundColor
fls
foregroundColor (4 bytes): A LongRGB that specifies the foreground color of the fill pattern.
MUST equal the value specified by the rgbFore field of the related AreaFormat or MarkerFormat
records.
backgroundColor (4 bytes): A LongRGB that specifies the background color of the fill pattern.
MUST equal the value specified by the rgbBack field of the related AreaFormat or MarkerFormat
records.
fls (1 byte): An unsigned integer that specifies the type of the fill pattern. MUST equal the value
specified by the fls field of the related AreaFormat record.
703 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.167 ISSTInf
The ISSTInf structure is the array element used in the rgISSTinf field of the ExtSST record. ib and
cbOffset provide a way to access the first string in the set of strings specified by this structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ib
cbOffset reserved
ib (4 bytes): A FilePointer as specified in [MS-OSHARED] section 2.2.1.5 that specifies the zero-
based offset into the workbook stream where the first string in the set of strings starts.
cbOffset (2 bytes): An unsigned integer that specifies the zero-based offset into the SST or Continue
record, in which the first string in the set of strings starts. MUST be less than ib. The size of the
SST or Continue record is determined by reading the record header at the location specified by the
following formula:
ib – cbOffset
2.5.168 IXFCell
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ixfe
ixfe (2 bytes): An unsigned integer that specifies a zero-based index of a cell XF record in the
collection of XF records in the Globals Substream. Cell XF records are the subset of XF records
with an fStyle field equal to 0. This value MUST be greater than or equal to 15, or equal to 0. The
value 0 indicates that this value MUST be ignored. See XFIndex for more information about the
organization of XF records in the file.
2.5.169 KPIProp
704 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.170 KPISets
2.5.171 LbsDropData
The LbsDropData structure specifies properties of the dropdown Obj that contains this LbsDropData.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C unused2 cLine
705 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
unused3 (optional)
A - wStyle (2 bits): An unsigned integer that specifies the style of this dropdown. MUST be a value
from the following table:
Value Meaning
C - fFiltered (1 bit): A bit that specifies whether the data displayed by the dropdown has been
filtered in some way.
cLine (2 bytes): An unsigned integer that specifies the number of lines to be displayed in the
dropdown. If there are more lines than that in the list, a scrollbar can appear. MUST be less than or
equal to 0x7FFF.
dxMin (2 bytes): An unsigned integer that specifies the smallest width in pixels allowed for the
dropdown window. MUST be less than or equal to 0x7FFF.
str (variable): An XLUnicodeString that specifies the current string value in the dropdown.
unused3 (1 byte): Optional, undefined and MUST be ignored. This field MUST exist if and only if the
size of str in bytes is an odd number.
2.5.172 LEMMode
The LEMMode enumeration specifies the different edit modes for a table.
706 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.173 LinePropertiesForShapePropsStreamChecksum
The related LineFormat record referenced in the following field specifications is the LineFormat record
that exists along with the ShapePropsStream record in one of the following sets of records.
A set of records in a chart group but not in the sequence of records that conforms to the LD rule
or the sequence of records that conforms to the DROPBAR rule.
If more than one LineFormat and ShapePropsStream records exist in the set, then a pair of
LineFormat and ShapePropsStream records are related when the chart element identified by the
ID field of the CrtLine record preceding the LineFormat record is the same chart element as the
one identified by the wObjContext field of the ShapePropsStream record.
If more than one LineFormat and ShapePropsStream records exist in the sequence of records,
then a pair of LineFormat and ShapePropsStream records are related when the chart element
identified by the ID field of the AxisLine record preceding the LineFormat record is be the same
chart element as the one identified by the wObjContext field of the ShapePropsStream record.
A sequence of records that conforms to the SS rule when the wObjContext field of the
ShapePropsStream record is 0x0000.
707 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
color
icv (1 byte): An IcvChart that specifies the palette color value for the line. The color MUST match
the color specified by color field. MUST equal the value specified by the icv field of the related
LineFormat record.
pattern (1 byte): An unsigned integer that specifies the pattern of the line. MUST equal the value
specified by the lns field of the related LineFormat record.
thickness (1 byte): A signed integer that specifies the thickness of the line. MUST equal the value
specified by the we field of the related LineFormat record plus one.
A - fIsLineStyleAutomatic (1 bit): A bit that specifies whether the line has default formatting.
MUST contain the value specified by the fAuto field of the related LineFormat record.
color (4 bytes): A LongRGB that specifies the color of the line. The color MUST match the color
specified by icv. MUST equal the value specified by the rgb field of the related LineFormat record.
2.5.174 List12BlockLevel
The List12BlockLevel structure specifies default block-level formatting information for a table, to
be applied when the table expands. Style gets applied before DXFN12List for each table region.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbdxfHeader
istnHeader
cbdxfData
istnData
cbdxfAgg
istnAgg
cbdxfBorder
cbdxfHeaderBorder
cbdxfAggBorder
dxfHeader (variable)
708 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
dxfData (variable)
...
dxfAgg (variable)
...
dxfBorder (variable)
...
dxfHeaderBorder (variable)
...
dxfAggBorder (variable)
...
stHeader (variable)
...
stData (variable)
...
stAgg (variable)
...
cbdxfHeader (4 bytes): A signed integer that specifies the byte count for dxfHeader field. MUST be
greater than or equal to zero.
istnHeader (4 bytes): A signed integer that specifies a zero-based index to a Style record in the
collection of Style records in the Globals Substream. The referenced Style specifies the cell style
XF used for the table’s header row cells. If the value is -1, no style is specified for the table’s
header row cells.
cbdxfData (4 bytes): A signed integer that specifies the byte count for dxfData field. MUST be
greater than or equal to zero.
istnData (4 bytes): A signed integer that specifies a zero-based index to a Style record in the
collection of Style records in the Globals Substream. The referenced Style specifies the cell style
used for the table’s data cells. If the value is -1, no style is specified for the table’s data cells.
cbdxfAgg (4 bytes): A signed integer that specifies the byte count for dxfAgg field. MUST be
greater than or equal to zero.
709 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
istnAgg (4 bytes): A signed integer that specifies a zero-based index to a Style record in the
collection of Style records in the Globals Substream. The referenced Style specifies the cell style
used for the table’s total row. If the value is -1, no style is specified for the table’s total row.
cbdxfBorder (4 bytes): A signed integer that specifies the byte count for dxfBorder field. MUST be
greater than or equal to zero.
cbdxfHeaderBorder (4 bytes): A signed integer that specifies the byte count for
dxfHeaderBorder field. MUST be greater than or equal to zero.
cbdxfAggBorder (4 bytes): A signed integer that specifies the byte count for dxfAggBorder field.
MUST be greater than or equal to zero.
dxfHeader (variable): An optional DXFN12List that specifies the formatting for the table’s header
row cells. MUST exist if and only if cbdxfHeader is nonzero.
dxfData (variable): An optional DXFN12List that specifies the formatting for the table’s data cells.
MUST exist if and only if cbdxfData is nonzero.
dxfAgg (variable): An optional DXFN12List that specifies the formatting for the table’s total row.
MUST exist if and only if cbdxfAgg is nonzero.
dxfBorder (variable): An optional DXFN12 that specifies the formatting for the border of the
table’s data cells. MUST exist if and only if cbdxfBorder is nonzero.
dxfHeaderBorder (variable): An optional DXFN12List that specifies the formatting for the border of
the table’s header row cells. MUST exist if and only if cbdxfHeaderBorder is nonzero.
dxfAggBorder (variable): An optional DXFN12List that specifies the formatting for the border of the
table’s total row. MUST exist if and only if cbdxfAggBorder is nonzero.
stHeader (variable): An optional XLUnicodeString that specifies the name of the style for the table’s
header row cells. MUST exist if and only if istnHeader is not equal to -1. MUST be equal to the
name of the Style record specified by istnHeader. If the style is a user-defined style, stHeader
MUST be equal to the user field of the Style record.
stData (variable): An optional XLUnicodeString that specifies the name of the style for the table’s
data cells. MUST exist if and only if istnData is not equal to -1. MUST be equal to the name of the
Style record specified by istnData. If the style is a user-defined style, stData MUST be equal to
the user field of the Style record.
stAgg (variable): An optional XLUnicodeString that specifies the name of the style for the table’s
total row. MUST exist if and only if istnAgg is not equal to -1. MUST be equal to the name of the
Style record specified by istnAgg. If the style is a user-defined style, stAgg MUST be equal to the
user field of the Style record.
2.5.175 List12DisplayName
The List12DisplayName structure specifies the name and comment strings for the table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stListName (variable)
...
stListComment (variable)
710 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
stListName (variable): An XLNameUnicodeString that specifies the table name. MUST be an empty
string if the rgbName field of the TableFeatureType structure embedded in the Feature11 or
Feature12 record that specifies the table is not empty. If the table name is not the same as the
rgbName field of the TableFeatureType structure for this table, the table name is specified in
stListName which is a case-insensitive unique name among all table names and defined names
in the workbook.
2.5.176 List12TableStyleClientInfo
The List12TableStyleClientInfo record specifies information about the style applied to a table.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
A - fFirstColumn (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000003 will be applied.
B - fLastColumn (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000004 will be applied.
C - fRowStripes (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000005 or 0x00000006 will be applied.
D - fColumnStripes (1 bit): A bit that specifies whether any table style elements (as specified by
TableStyleElement) with a tseType field equal to 0x00000007 or 0x00000008 will be applied.
F - fDefaultStyle (1 bit): A bit that specifies whether the style whose name is specified by
stListStyleName is the default table style.
stListStyleName (variable): An XLUnicodeString that specifies the name of the table style for the
table. Length MUST be greater than zero and less than or equal to 255 characters. If the table
style is a custom style, it is defined in a TableStyle record that has rgchName equal to this value.
2.5.177 LongRGB
The LongRGB structure specifies a color as a combination of red, green, and blue.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
red (1 byte): An unsigned integer that specifies the relative intensity of red.
711 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
green (1 byte): An unsigned integer that specifies the relative intensity of green.
blue (1 byte): An unsigned integer that specifies the relative intensity of blue.
2.5.178 LongRGBA
The LongRGBA structure specifies a color as a combination of red, green, blue and alpha values.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
red (1 byte): An unsigned integer that specifies the relative intensity of red.
green (1 byte): An unsigned integer that specifies the relative intensity of green.
blue (1 byte): An unsigned integer that specifies the relative intensity of blue.
2.5.179 LPWideString
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
...
rgchData (variable): An array of Unicode characters that specifies the characters of the string. The
size of this array in bytes MUST equal the following formula:
cchCharacters * 2
2.5.180 MDir
The MDir structure specifies the MDTInfoIndex and the index of a specific MDX metadata record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
imdt
mdd
712 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
mdd (4 bytes): An unsigned integer that specifies the zero-based index of an MDX metadata record
in the collection of MDX metadata records in the Globals Substream. The referenced record
specifies a MDX metadata record corresponding to the record type specified by imdt. The MDX
metadata records include MDXTuple, MDXSet, MDXProp and MDXKPI records.
2.5.181 MDTInfoIndex
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
index
index (4 bytes): A signed integer that specifies the one-based index of an MDTInfo record in the
collection of MDTInfo records in the Globals Substream. The value MUST be greater than 0 and
less than or equal to the total number of the MDTInfo records in the file.
2.5.182 MDXStrIndex
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
index
index (4 bytes): A signed integer that specifies the zero-based index of an MDXStr record in the
collection of MDXStr records in the Globals Substream. The value MUST be greater than or equal
to 0 and less than the total number of the MDXStr records that have been read so far.
2.5.183 MOper
The MOper structure specifies multiple operands of an OLE link or a DDE link for the
ExternOleDdeLink structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
colLast (1 byte): A ColByteU that specifies the zero-based index of last column associated with the
link.
rowLast (2 bytes): A RwU that specifies the zero-based index of last row associated with the link.
extOper (variable): This array specifies current values for the linked data. Each SerAr specifies a cell
value. The number of elements in the array is
If this array does not fit in the owning ExternName record, Continue records are used. Each SerAr
MUST stay in the same record.
713 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.184 NilChartNum
The NilChartNum structure specifies a non-numeric value (also known as "NaN" or "Not a Number")
that is used in place of a numeric value.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused
type reserved
type (2 bytes): An unsigned integer that specifies the interpretation of this value. This field is
undefined and MUST be ignored, unless otherwise defined by the containing record.
2.5.185 NoteRR
The NoteRR structure specifies a revision record for a comment associated with a cell.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
... A B reserved1
row col
...
...
... ichEnd
... cchNote
...
unused2
714 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rrd (14 bytes): An RRD that specifies the revision record information used to track changes in a
shared workbook. The rrd.revt MUST be equal to 0x000D. The rrd.tabid MUST NOT be 0xFFFF.
A - bitfDelNote (1 bit): A bit that specifies whether the revision record deletes the comment.
B - bitfAddNote (1 bit): A bit that specifies whether the revision record adds text to the comment.
Value Meaning
1 A new comment is being added or additional text is being appended to an existing comment.
row (2 bytes): A RwU that specifies the row of the cell associated with the comment.
col (2 bytes): A ColU that specifies the column of the cell associated with the comment.
E - fRwHidden (1 bit): A bit that specifies whether the row specified by row is hidden.
F - fColHidden (1 bit): A bit that specifies whether the column specified by col is hidden.
guid (16 bytes): A GUID as specified by [MS-DTYP] that identifies the comment, specified by a
NoteSh structure, which is modified by this revision record. The GUID for a comment is specified
in the Obj record specified by the idObj field in the NoteSh structure. In the Obj record, the GUID
is stored in the nts.guid field. If bitfDelNote is 1, this field MUST be zero.
ichEnd (4 bytes): An unsigned integer that specified the length of the comment before the revision is
made.
cchNote (4 bytes): An unsigned integer that specifies the length of the string that was added to the
comment in the revision record. The sum of ichEnd and cchNote MUST be less than or equal to
32767.
stAuthor (variable): An XLUnicodeString that specifies the original author of the comment. The
length MUST be greater than or equal to 1 and less than or equal to 54.
2.5.186 NoteSh
715 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row col
A B C D E F G reserved4 idObj
stAuthor (variable)
...
unused2
row (2 bytes): A RW that specifies the row of the cell to which this comment is associated.
col (2 bytes): A Col that specifies the column of the cell to which this comment is associated.
B - fShow (1 bit): A bit that specifies whether the comment is shown at all times.
F - fRwHidden (1 bit): A bit that specifies whether the row specified by row is hidden.
G - fColHidden (1 bit): A bit that specifies whether the column specified by col is hidden.
idObj (2 bytes): An ObjId that specifies the Obj record that specifies the comment text.
stAuthor (variable): An XLUnicodeString that specifies the name of the comment author. String
length MUST be greater than or equal to 1 and less than or equal to 54.
2.5.187 ObjFmla
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
embedInfo (variable)
...
716 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
padding (variable)
...
cbFmla (2 bytes): An unsigned integer that specifies the number of bytes in this ObjFmla, not
counting the two bytes of the cbFmla field itself. This number MUST be even.
fmla (variable): An optional ObjectParsedFormula that specifies the formula. This field MUST exist if
and only if cbFmla is greater than 0x0000.
embedInfo (variable): An optional PictFmlaEmbedInfo. This field MUST exist if and only if the
structure containing this ObjFmla is an FtPictFmla, the fmla field exists, and the fmla.rgce field starts
with a PtgTbl.
It is possible for this array to be empty. The value of the elements in this array are undefined and
MUST be ignored.
2.5.188 ObjId
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
id
id (2 bytes): An unsigned integer that specifies the value of the cmo.id field of an Obj in the same
drawing. A value of 0 specifies that this ObjId does not reference an Obj.
2.5.189 ObjLinkFmla
The ObjLinkFmla structure specifies the formula (section 2.2.2) that specifies a range which
contains a value that is linked to the control represented by the Obj record containing this
ObjLinkFmla.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ft fmla (variable)
...
ft (2 bytes): Reserved. MUST be 0x0014 if the cmo.ot of the containing Obj is equal to 0x0B or
0x0C. MUST be 0x000E if the cmo.ot field of the containing Obj is equal to 0x10, 0x11, 0x12, or
0x14. Note that this ObjLinkFmla MUST NOT exist if cmo.ot is any other value.
fmla (variable): An ObjFmla that specifies the formula which specifies a range which contains a
value that is linked to the state of the control.
717 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.190 ODBCType
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wTypeSql
wTypeSql (2 bytes): A signed integer that specifies an ODBC data type. The following are example
data types supported by ODBC. For more information about ODBC, see [MSDN-
OpenDBConnectivity].
0x0000 SQL_TYPE_NULL Undetermined type, data source does not support typed data.
Data type determined based on data content: date and time,
decimal or text.
2.5.191 OfficeArtClientAnchorChart
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rh
...
A B C D E unused lx1
718 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... ly1
... lx2
... ly2
...
B - fSize (1 bit): A bit that specifies whether the drawing object resizes with the chart area (section
2.2.3.17). MUST be a value from the following table:
Value Meaning
0x0 The drawing object resizes with the chart area (section 2.2.3.17).
0x1 The drawing object does not resize with the chart area (section
2.2.3.17).
lx1 (4 bytes): A signed integer that specifies the horizontal offset of the logical upper-left corner of
the bounding rectangle of the drawing object, relative to the upper-left corner of the chart area
(section 2.2.3.17) in SPRC.
ly1 (4 bytes): A signed integer that specifies the vertical offset of the logical upper-left corner of the
bounding rectangle of the drawing object, relative to the upper-left corner of the chart area (section
2.2.3.17) in SPRC.
lx2 (4 bytes): A signed integer that specifies the horizontal offset of the logical bottom-right corner
of the bounding rectangle of the drawing object, relative to the upper-left corner of the chart area
(section 2.2.3.17) in SPRC.
ly2 (4 bytes): A signed integer that specifies the vertical offset of the logical bottom-right corner of
the bounding rectangle of the drawing object, relative to the upper-left corner of the chart area
(section 2.2.3.17) in SPRC.
2.5.192 OfficeArtClientAnchorHF
719 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rh
...
width
height
rh (8 bytes): An OfficeArtRecordHeader as specified in [MS-ODRAW] that specifies the header for this
structure. The sub-fields of OfficeArtRecordHeader are further specified in the following table:
Field Meaning
rh.recVer MUST be 0x0.
rh.recInstance MUST be 0x0.
rh.recType MUST be 0xF010.
rh.recLen MUST be 8.
width (4 bytes): A signed integer that specifies the width of the picture in pixels. This value MUST be
greater than 0.
height (4 bytes): A signed integer that specifies the height of the picture in pixels. This value MUST
be greater than 0.
2.5.193 OfficeArtClientAnchorSheet
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rh
...
A B C D E unused colL
dxL rwT
dyT colR
dxR rwB
dyB
rh (8 bytes): An OfficeArtRecordHeader as defined in [MS-ODRAW] that specifies the header for this
structure. The sub-fields of OfficeArtRecordHeader are further specified in the following table:
720 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Field Meaning
rh.recVer MUST be 0x0.
rh.recInstance MUST be 0x0.
rh.recType MUST be 0xF010.
rh.recLen An unsigned integer that specifies the number of
bytes following the header. The value MUST be
equal to 18.
A - fMove (1 bit): A bit that specifies whether the shape will be kept intact when the cells are
moved.
B - fSize (1 bit): A bit that specifies whether the shape will be kept intact when the cells are resized.
If fMove is 1, the value MUST be 1.
colL (2 bytes): A Col256U that specifies the column of the cell under the top left corner of the
bounding rectangle of the shape.
dxL (2 bytes): A signed integer that specifies the x coordinate of the top left corner of the bounding
rectangle relative to the corner of the underlying cell. The value is expressed as 1024th’s of that
cell’s width.
rwT (2 bytes): A RwU that specifies the row of the cell under the top left corner of the bounding
rectangle of the shape.
dyT (2 bytes): A signed integer that specifies the y coordinate of the top left corner of the bounding
rectangle relative to the corner of the underlying cell. The value is expressed as 256th’s of that
cell’s height.
colR (2 bytes): A Col256U that specifies the column of the cell under the bottom right corner of the
bounding rectangle of the shape.
dxR (2 bytes): A signed integer that specifies the x coordinate of the bottom right corner of the
bounding rectangle relative to the corner of the underlying cell. The value is expressed as
1024th’s of that cell’s width.
rwB (2 bytes): A RwU that specifies the row of the cell under the bottom right corner of the
bounding rectangle of the shape.
dyB (2 bytes): A signed integer that specifies the y coordinate of the bottom right corner of the
bounding rectangle relative to the corner of the underlying cell. The value is expressed as 256th’s
of that cell’s height.
2.5.194 OfficeArtClientData
The OfficeArtClientData structure specifies the client data of an drawing object. MUST be the last
structure of the rgChildRec field of the current MsoDrawing record. And the next record MUST be
Obj, which contains the detailed data information about this drawing object.
721 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rh
...
Field Meaning
rh.recVer MUST be 0x0.
rh.recInstance MUST be 0x0.
rh.recType MUST be 0xF011.
rh.recLen An unsigned integer that specifies the number of
bytes following the header. The value MUST be
equal to 0.
2.5.195 OfficeArtClientTextbox
The OfficeArtClientTextbox structure specifies the client textbox of an drawing object. MUST be
the last structure of the rgChildRec field of the MsoDrawing record. And the next record MUST be
TxO, which contains the detailed textbox information about this drawing object.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rh
...
Field Meaning
rh.recVer MUST be 0x0.
rh.recInstance MUST be 0x0.
rh.recType MUST be 0xF00D.
rh.recLen An unsigned integer that specifies the number of
bytes following the header. The value MUST be
equal to 0.
2.5.196 PaneType
722 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.197 PARAMQRY_Fixed
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
grbit fVal
wTypeSql (2 bytes): An ODBCType structure that specifies the SQL data type.
pbt (2 bits): An unsigned integer that specifies the parameter type. MUST be a value from the
following table:
Value Meaning
0 Prompt. User is prompted for the value of the parameter.
B - fNonDefaultName (1 bit): A bit that specifies whether to use the default prompt if pbt is equal
to 0. MUST be a value from the following table:
Value Meaning
0 User entered prompt is used
grbit (2 bytes): An unsigned integer that specifies the type of data that follows this structure as
specified in the following table or the presence of a Boolean value in fVal if pbt equals 1. MUST be
a value from the following table if pbt equals 1:
Value Meaning
0x001 Xnum (section 2.5.342)
0x002 SXString
723 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x004 Boolean (section 2.5.14) value in fVal.
fVal (2 bytes): A Boolean that specifies value such that if pbt equals 1 and grbit equals 4. MUST be
equal to 0 or 1 if pbt equals 1 and grbit equals 4. MUST be ignored if pbt is not equal to 1 or
grbit is not equal to 4.
2.5.198.1 ArrayParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgcb (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula (section 2.2.2). MUST
NOT contain PtgExp, PtgTbl, PtgRefN, PtgAreaN, or PtgSxName.
rgcb (variable): An RgbExtra that specifies ancillary data for the formula.
2.5.198.2 BErr
The BErr structure is a 1 byte unsigned integer that specifies an error. MUST be a value from the
following table:
Value Meaning
0x00 #NULL!
0x07 #DIV/0!
0x0F #VALUE!
0x17 #REF!
0x1D #NAME?
0x24 #NUM!
0x2A #N/A
724 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.3 CellParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgcb (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgRefN, PtgAreaN, or PtgSxName.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
rgcb (variable): An RgbExtra that specifies ancillary data for the formula.
2.5.198.4 Cetab
The Cetab structure specifies a function that can be called from a formula (section 2.2.2). The
definition of each function specifies the function name and the valid sequence of arguments.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cetab
cetab (2 bytes): An unsigned integer that specifies the function to be called. MUST be a value from
the following table:
Value Meaning
0x0000 BEEP
beep-params = [val]
0x0001 OPEN
open-params = *17(val)
0x0002 OPEN.LINKS
open-links-params = *15(val)
0x0003 CLOSE.ALL
725 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0004 SAVE
0x0005 SAVE.AS
save-as-params = *7(val)
0x0006 FILE.DELETE
file-delete-params = [val]
0x0007 PAGE.SETUP
page-setup-params = *30(val)
0x0008 PRINT
print-params = *17(val)
0x0009 PRINTER.SETUP
printer-setup-params = [val]
0x000A QUIT
0x000B NEW.WINDOW
0x000C ARRANGE.ALL
arrange-All-params = *4(val)
0x000D WINDOW.SIZE
window-size-params = *3(val)
0x000E WINDOW.MOVE
window-move-params = *3(val)
0x000F FULL
full-params = [val]
0x0010 CLOSE
close-params = *2(val)
0x0011 RUN
0x0016 SET.PRINT.AREA
0x0017 SET.PRINT.TITLES
726 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0018 SET.PAGE.BREAK
0x0019 REMOVE.PAGE.BREAK
remove-page-break-params = *2(val)
0x001A FONT
font-params = *2(val)
0x001B DISPLAY
display-params = *9(val)
0x001C PROTECT.DOCUMENT
protect-document-params = *7(val)
0x001D PRECISION
precision-params = [val]
0x001E A1.R1C1
a1-r1c1-params = [val]
0x001F CALCULATE.NOW
0x0020 CALCULATION
calculation-params = *11(val)
0x0022 DATA.FIND
data-find-params = [val]
0x0023 EXTRACT
extract-params = [val]
0x0024 DATA.DELETE
0x0025 SET.DATABASE
0x0026 SET.CRITERIA
0x0027 SORT
sort-params = [val, [(ref / val), [(ref / val), [(ref / val), [(ref / val), [(ref / val), [(ref /
val), *10(val)]]]]]]]
0x0028 DATA.SERIES
727 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
data-series-params = *6(val)
0x0029 TABLE
0x002A FORMAT.NUMBER
format-number-params = [val]
0x002B ALIGNMENT
alignment-params = *10(val)
0x002C STYLE
style-params = *2(val)
0x002D BORDER
border-params = *27(val)
0x002E CELL.PROTECTION
cell-protection-params = *2(val)
0x002F COLUMN.WIDTH
0x0030 UNDO
0x0031 CUT
0x0032 COPY
0x0033 PASTE
0x0034 CLEAR
clear-params = [val]
0x0035 PASTE.SPECIAL
paste-special-params = *7(val)
0x0036 EDIT.DELETE
edit-delete-params = [val]
0x0037 INSERT
insert-params = *2(val)
0x0038 FILL.RIGHT
728 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0039 FILL.DOWN
0x003D DEFINE.NAME
define-name-params = [val, [(ref / val), [(ref / val), [(ref / val), [(ref / val), [(ref / val),
[val]]]]]]]
0x003E CREATE.NAMES
create-names-params = *4(val)
0x003F FORMULA.GOTO
0x0040 FORMULA.FIND
formula-find-params = *12(val)
0x0041 SELECT.LAST.CELL
0x0042 SHOW.ACTIVE.CELL
0x0043 GALLERY.AREA
gAllery-area-params = *2(val)
0x0044 GALLERY.BAR
gAllery-bar-params = *2(val)
0x0045 GALLERY.COLUMN
gAllery-column-params = *2(val)
0x0046 GALLERY.LINE
gAllery-line-params = *2(val)
0x0047 GALLERY.PIE
gAllery-pie-params = *2(val)
0x0048 GALLERY.SCATTER
gAllery-scatter-params = *2(val)
0x0049 COMBINATION
combination-params = [val]
0x004A PREFERRED
0x004B ADD.OVERLAY
729 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x004C GRIDLINES
gridlines-params = *7(val)
0x004D SET.PREFERRED
set-preferred-params = [val]
0x004E AXES
axes-params = *6(val)
0x004F LEGEND
legend-params = [val]
0x0050 ATTACH.TEXT
attach-text-params = *3(val)
0x0051 ADD.ARROW
0x0052 SELECT.CHART
0x0053 SELECT.PLOT.AREA
0x0054 PATTERNS
patterns-params = *13(val)
0x0055 MAIN.CHART
main-chart-params = *10(val)
0x0056 OVERLAY
overlay-params = *12(val)
0x0057 SCALE
scale-params = *10(val)
0x0058 FORMAT.LEGEND
format-legend-params = [val]
0x0059 FORMAT.TEXT
format-text-params = *11(val)
0x005A EDIT.REPEAT
0x005B PARSE
730 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x005C JUSTIFY
0x005D HIDE
0x005E UNHIDE
unhide-params = [val]
0x005F WORKSPACE
workspace-params = *16(val)
0x0060 FORMULA
0x0061 FORMULA.FILL
0x0062 FORMULA.ARRAY
0x0063 DATA.FIND.NEXT
0x0064 DATA.FIND.PREV
0x0065 FORMULA.FIND.NEXT
0x0066 FORMULA.FIND.PREV
0x0067 ACTIVATE
activate-params = *2(val)
0x0068 ACTIVATE.NEXT
activate-next-params = [val]
0x0069 ACTIVATE.PREV
activate-prev-params = [val]
0x006A UNLOCKED.NEXT
0x006B UNLOCKED.PREV
731 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x006C COPY.PICTURE
copy-picture-params = *3(val)
0x006D SELECT
0x006E DELETE.NAME
delete-name-params = [val]
0x006F DELETE.FORMAT
delete-format-params = [val]
0x0070 VLINE
vline-params = [val]
0x0071 HLINE
hline-params = [val]
0x0072 VPAGE
vpage-params = [val]
0x0073 HPAGE
hpage-params = [val]
0x0074 VSCROLL
vscroll-params = *2(val)
0x0075 HSCROLL
hscroll-params = *2(val)
0x0076 ALERT
alert-params = *3(val)
0x0077 NEW
new-params = *3(val)
0x0078 CANCEL.COPY
cancel-copy-params = [val]
0x0079 SHOW.CLIPBOARD
0x007A MESSAGE
message-params = *2(val)
0x007C PASTE.LINK
732 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x007D APP.ACTIVATE
app-activate-params = *2(val)
0x007E DELETE.ARROW
0x007F ROW.HEIGHT
0x0080 FORMAT.MOVE
0x0081 FORMAT.SIZE
0x0082 FORMULA.REPLACE
formula-replace-params = *11(val)
0x0083 SEND.KEYS
send-keys-params = *2(val)
0x0084 SELECT.SPECIAL
select-special-params = *3(val)
0x0085 APPLY.NAMES
apply-names-params = *7(val)
0x0086 REPLACE.FONT
replace-font-params = *10(val)
0x0087 FREEZE.PANES
freeze-panes-params = *3(val)
0x0088 SHOW.INFO
show-info-params = [val]
0x0089 SPLIT
split-params = *2(val)
0x008A ON.WINDOW
on-window-params = *2(val)
0x008B ON.DATA
on-data-params = *2(val)
0x008C DISABLE.INPUT
733 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
disable-input-params = [val]
0x008E OUTLINE
outline-params = *4(val)
0x008F LIST.NAMES
0x0090 FILE.CLOSE
file-close-params = *2(val)
0x0091 SAVE.WORKBOOK
save-workbook-params = *6(val)
0x0092 DATA.FORM
0x0093 COPY.CHART
copy-chart-params = [val]
0x0094 ON.TIME
on-time-params = *4(val)
0x0095 WAIT
wait-params = [val]
0x0096 FORMAT.FONT
format-font-params = *15(val)
0x0097 FILL.UP
0x0098 FILL.LEFT
0x0099 DELETE.OVERLAY
0x009B SHORT.MENUS
short-menus-params = [val]
0x009F SET.UPDATE.STATUS
set-update-status-params = *3(val)
0x00A1 COLOR.PALETTE
color-palette-params = [val]
0x00A2 DELETE.STYLE
734 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
delete-style-params = [val]
0x00A3 WINDOW.RESTORE
window-restore-params = [val]
0x00A4 WINDOW.MAXIMIZE
window-maximize-params = [val]
0x00A6 CHANGE.LINK
change-link-params = *3(val)
0x00A7 CALCULATE.DOCUMENT
0x00A8 ON.KEY
on-key-params = *2(val)
0x00A9 APP.RESTORE
0x00AA APP.MOVE
app-move-params = *2(val)
0x00AB APP.SIZE
app-size-params = *2(val)
0x00AC APP.MINIMIZE
0x00AD APP.MAXIMIZE
0x00AE BRING.TO.FRONT
0x00AF SEND.TO.BACK
0x00B9 MAIN.CHART.TYPE
main-chart-type-params = [val]
0x00BA OVERLAY.CHART.TYPE
overlay-chart-type-params = [val]
0x00BB SELECT.END
select-end-params = [val]
0x00BC OPEN.MAIL
735 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
open-mail-params = *2(val)
0x00BD SEND.MAIL
0x00BE STANDARD.FONT
standard-font-params = *9(val)
0x00BF CONSOLIDATE
consolidate-params = *5(val)
0x00C0 SORT.SPECIAL
sort-special-params = [val, [val, [(ref / val), [(ref / val), [(ref / val), [(ref / val), [(ref /
val), [(ref / val), *6(val)]]]]]]]]
0x00C1 GALLERY.3D.AREA
gAllery-3d-area-params = [val]
0x00C2 GALLERY.3D.COLUMN
gAllery-3d-column-params = [val]
0x00C3 GALLERY.3D.LINE
gAllery-3d-line-params = [val]
0x00C4 GALLERY.3D.PIE
gAllery-3d-pie-params = [val]
0x00C5 VIEW.3D
view-3d-params = *6(val)
0x00C6 GOAL.SEEK
0x00C7 WORKGROUP
workgroup-params = [val]
0x00C8 FILL.GROUP
fill-group-params = [val]
0x00C9 UPDATE.LINK
update-link-params = *2(val)
0x00CA PROMOTE
promote-params = [val]
0x00CB DEMOTE
demote-params = [val]
0x00CC SHOW.DETAIL
736 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
show-detail-params = *4(val)
0x00CE UNGROUP
0x00CF OBJECT.PROPERTIES
object-properties-params = *2(val)
0x00D0 SAVE.NEW.OBJECT
save-new-object-params = [val]
0x00D1 SHARE
0x00D2 SHARE.NAME
share-name-params = [val]
0x00D3 DUPLICATE
0x00D4 APPLY.STYLE
apply-style-params = [val]
0x00D5 ASSIGN.TO.OBJECT
0x00D6 OBJECT.PROTECTION
object-protection-params = *2(val)
0x00D7 HIDE.OBJECT
hide-object-params = *2(val)
0x00D8 SET.EXTRACT
0x00D9 CREATE.PUBLISHER
create-publisher-params = *4(val)
0x00DA SUBSCRIBE.TO
subscribe-to-params = *2(val)
0x00DB ATTRIBUTES
attributes-params = *2(val)
0x00DC SHOW.TOOLBAR
show-toolbar-params = *10(val)
0x00DE PRINT.PREVIEW
737 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
print-preview-params = [val]
0x00DF EDIT.COLOR
edit-color-params = *4(val)
0x00E0 SHOW.LEVELS
show-levels-params = *2(val)
0x00E1 FORMAT.MAIN
format-main-params = *14(val)
0x00E2 FORMAT.OVERLAY
format-overlay-params = *14(val)
0x00E3 ON.RECALC
on-recalc-params = *2(val)
0x00E4 EDIT.SERIES
0x00E5 DEFINE.STYLE
define-style-params = *14(val)
0x00F0 LINE.PRINT
line-print-params = *11(val)
0x00F3 ENTER.DATA
0x00F9 GALLERY.RADAR
gAllery-radar-params = *2(val)
0x00FA MERGE.STYLES
merge-styles-params = [val]
0x00FB EDITION.OPTIONS
0x00FC PASTE.PICTURE
0x00FD PASTE.PICTURE.LINK
0x00FE SPELLING
spelling-params = *6(val)
0x0100 ZOOM
738 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
zoom-params = [val]
0x0103 INSERT.OBJECT
insert-object-params = [val, [val, [val, [val, [val, [val, [val, [(ref / val), [val, [val, [(ref
/ val), *2(val)]]]]]]]]]]]
0x0104 WINDOW.MINIMIZE
window-minimize-params = [val]
0x0109 SOUND.NOTE
0x010A SOUND.PLAY
0x010B FORMAT.SHAPE
0x010C EXTEND.POLYGON
extend-polygon-params = [val]
0x010D FORMAT.AUTO
format-auto-params = *7(val)
0x0110 GALLERY.3D.BAR
gAllery-3d-bar-params = [val]
0x0111 GALLERY.3D.SURFACE
gAllery-3d-surface-params = [val]
0x0112 FILL.AUTO
0x0114 CUSTOMIZE.TOOLBAR
customize-toolbar-params = [val]
0x0115 ADD.TOOL
add-tool-params = *3(val)
0x0116 EDIT.OBJECT
edit-object-params = [val]
0x0117 ON.DOUBLECLICK
on-doubleclick-params = *2(val)
0x0118 ON.ENTRY
on-entry-params = *2(val)
0x0119 WORKBOOK.ADD
739 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
workbook-add-params = *3(val)
0x011A WORKBOOK.MOVE
workbook-move-params = *3(val)
0x011B WORKBOOK.COPY
workbook-copy-params = *3(val)
0x011C WORKBOOK.OPTIONS
workbook-options-params = *3(val)
0x011D SAVE.WORKSPACE
save-workspace-params = [val]
0x0120 CHART.WIZARD
0x0121 DELETE.TOOL
delete-tool-params = *2(val)
0x0122 MOVE.TOOL
move-tool-params = *6(val)
0x0123 WORKBOOK.SELECT
workbook-select-params = *3(val)
0x0124 WORKBOOK.ACTIVATE
workbook-activate-params = *2(val)
0x0125 ASSIGN.TO.TOOL
0x0127 COPY.TOOL
copy-tool-params = *2(val)
0x0128 RESET.TOOL
reset-tool-params = *2(val)
0x0129 CONSTRAIN.NUMERIC
constrain-numeric-params = [val]
0x012A PASTE.TOOL
paste-tool-params = *2(val)
0x012E WORKBOOK.NEW
workbook-new-params = *3(val)
0x0131 SCENARIO.CELLS
740 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0132 SCENARIO.DELETE
scenario-delete-params = [val]
0x0133 SCENARIO.ADD
0x0134 SCENARIO.EDIT
0x0135 SCENARIO.SHOW
scenario-show-params = [val]
0x0136 SCENARIO.SHOW.NEXT
0x0137 SCENARIO.SUMMARY
0x0138 PIVOT.TABLE.WIZARD
0x0139 PIVOT.FIELD.PROPERTIES
pivot-field-properties-params = *7(val)
0x013A PIVOT.FIELD
pivot-field-params = *4(val)
0x013B PIVOT.ITEM
pivot-item-params = *4(val)
0x013C PIVOT.ADD.FIELDS
pivot-add-fields-params = *5(val)
0x013E OPTIONS.CALCULATION
options-calculation-params = *10(val)
0x013F OPTIONS.EDIT
options-edit-params = *11(val)
0x0140 OPTIONS.VIEW
options-view-params = *18(val)
0x0141 ADDIN.MANAGER
addin-manager-params = *3(val)
0x0142 MENU.EDITOR
741 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0143 ATTACH.TOOLBARS
0x0144 VBAActivate
vbaactivate-params = *2(val)
0x0145 OPTIONS.CHART
options-chart-params = *3(val)
0x0148 VBA.INSERT.FILE
vba-insert-file-params = [val]
0x014A VBA.PROCEDURE.DEFINITION
0x0150 ROUTING.SLIP
0x0152 ROUTE.DOCUMENT
0x0153 MAIL.LOGON
0x0156 INSERT.PICTURE
insert-picture-params = *2(val)
0x0157 EDIT.TOOL
edit-tool-params = *2(val)
0x0158 GALLERY.DOUGHNUT
gAllery-doughnut-params = *2(val)
0x015E CHART.TREND
chart-trend-params = *8(val)
0x0160 PIVOT.ITEM.PROPERTIES
pivot-item-properties-params = *7(val)
0x0162 WORKBOOK.INSERT
workbook-insert-params = [val]
0x0163 OPTIONS.TRANSITION
options-transition-params = *5(val)
0x0164 OPTIONS.GENERAL
742 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
options-general-params = *14(val)
0x0172 FILTER.ADVANCED
0x0175 MAIL.ADD.MAILER
0x0176 MAIL.DELETE.MAILER
0x0177 MAIL.REPLY
0x0178 MAIL.REPLY.ALL
0x0179 MAIL.FORWARD
0x017A MAIL.NEXT.LETTER
0x017B DATA.LABEL
data-label-params = *10(val)
0x017C INSERT.TITLE
insert-title-params = *5(val)
0x017D FONT.PROPERTIES
font-properties-params = *14(val)
0x017E MACRO.OPTIONS
macro-options-params = *10(val)
0x017F WORKBOOK.HIDE
workbook-hide-params = *2(val)
0x0180 WORKBOOK.UNHIDE
workbook-unhide-params = [val]
0x0181 WORKBOOK.DELETE
workbook-delete-params = [val]
0x0182 WORKBOOK.NAME
workbook-name-params = *2(val)
0x0184 GALLERY.CUSTOM
743 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
gAllery-custom-params = [val]
0x0186 ADD.CHART.AUTOFORMAT
add-chart-autoformat-params = *2(val)
0x0187 DELETE.CHART.AUTOFORMAT
delete-chart-autoformat-params = [val]
0x0188 CHART.ADD.DATA
0x0189 AUTO.OUTLINE
0x018A TAB.ORDER
0x018B SHOW.DIALOG
show-dialog-params = [val]
0x018C SELECT.ALL
0x018D UNGROUP.SHEETS
0x018E SUBTOTAL.CREATE
subtotal-create-params = *6(val)
0x018F SUBTOTAL.REMOVE
0x0190 RENAME.OBJECT
rename-object-params = [val]
0x019C WORKBOOK.SCROLL
workbook-scroll-params = *2(val)
0x019D WORKBOOK.NEXT
0x019E WORKBOOK.PREV
0x019F WORKBOOK.TAB.SPLIT
workbook-tab-split-params = [val]
0x01A0 FULL.SCREEN
744 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
full-screen-params = [val]
0x01A1 WORKBOOK.PROTECT
workbook-protect-params = *3(val)
0x01A4 SCROLLBAR.PROPERTIES
scrollbar-properties-params = *7(val)
0x01A5 PIVOT.SHOW.PAGES
pivot-show-pages-params = *2(val)
0x01A6 TEXT.TO.COLUMNS
0x01A7 FORMAT.CHARTTYPE
format-charttype-params = *4(val)
0x01A8 LINK.FORMAT
0x01A9 TRACER.DISPLAY
tracer-display-params = *2(val)
0x01AE TRACER.NAVIGATE
tracer-navigate-params = *3(val)
0x01AF TRACER.CLEAR
0x01B0 TRACER.ERROR
0x01B1 PIVOT.FIELD.GROUP
pivot-field-group-params = *4(val)
0x01B2 PIVOT.FIELD.UNGROUP
0x01B3 CHECKBOX.PROPERTIES
checkbox-properties-params = *5(val)
0x01B4 LABEL.PROPERTIES
label-properties-params = *3(val)
0x01B5 LISTBOX.PROPERTIES
listbox-properties-params = *5(val)
0x01B6 EDITBOX.PROPERTIES
745 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
editbox-properties-params = *4(val)
0x01B7 PIVOT.REFRESH
pivot-refresh-params = [val]
0x01B8 LINK.COMBO
link-combo-params = [val]
0x01B9 OPEN.TEXT
open-text-params = *17(val)
0x01BA HIDE.DIALOG
hide-dialog-params = [val]
0x01BB SET.DIALOG.FOCUS
set-dialog-focus-params = [val]
0x01BC ENABLE.OBJECT
enable-object-params = *2(val)
0x01BD PUSHBUTTON.PROPERTIES
pushbutton-properties-params = *6(val)
0x01BE SET.DIALOG.DEFAULT
set-dialog-default-params = [val]
0x01BF FILTER
filter-params = *6(val)
0x01C0 FILTER.SHOW.ALL
0x01C1 CLEAR.OUTLINE
0x01C2 FUNCTION.WIZARD
function-wizard-params = [val]
0x01C3 ADD.LIST.ITEM
add-list-item-params = *2(val)
0x01C4 SET.LIST.ITEM
set-list-item-params = *2(val)
0x01C5 REMOVE.LIST.ITEM
remove-list-item-params = *2(val)
0x01C6 SELECT.LIST.ITEM
746 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
select-list-item-params = *2(val)
0x01C7 SET.CONTROL.VALUE
set-control-value-params = [val]
0x01C8 SAVE.COPY.AS
save-copy-as-params = [val]
0x01CA OPTIONS.LISTS.ADD
0x01CB OPTIONS.LISTS.DELETE
options-lists-delete-params = [val]
0x01CC SERIES.AXES
series-axes-params = [val]
0x01CD SERIES.X
0x01CE SERIES.Y
0x01CF ERRORBAR.X
0x01D0 ERRORBAR.Y
0x01D1 FORMAT.CHART
0x01D2 SERIES.ORDER
series-order-params = *3(val)
0x01D3 MAIL.LOGOFF
0x01D4 CLEAR.ROUTING.SLIP
clear-routing-slip-params = [val]
0x01D5 APP.ACTIVATE.MICROSOFT
app-activate-microsoft-params = [val]
0x01D6 MAIL.EDIT.MAILER
mail-edit-mailer-params = [val, [(ref / val), [(ref / val), [(ref / val), [val, [ref / val]]]]]]
0x01D7 ON.SHEET
747 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
on-sheet-params = *3(val)
0x01D8 STANDARD.WIDTH
standard-width-params = [val]
0x01D9 SCENARIO.MERGE
scenario-merge-params = [val]
0x01DA SUMMARY.INFO
summary-info-params = *5(val)
0x01DB FIND.FILE
0x01DC ACTIVE.CELL.FONT
active-cell-font-params = *14(val)
0x01DD ENABLE.TIPWIZARD
enable-tipwizard-params = [val]
0x01DE VBA.MAKE.ADDIN
vba-make-addin-params = [val]
0x01E0 INSERTDATATABLE
insertdatatable-params = [val]
0x01E1 WORKGROUP.OPTIONS
0x01E2 MAIL.SEND.MAILER
mail-send-mailer-params = *2(val)
0x01E5 AUTOCORRECT
autocorrect-params = *2(val)
0x01E9 POST.DOCUMENT
post-document-params = [val]
0x01EB PICKLIST
0x01ED VIEW.SHOW
view-show-params = [val]
0x01EE VIEW.DEFINE
view-define-params = *3(val)
0x01EF VIEW.DELETE
748 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
view-delete-params = [val]
0x01FD SHEET.BACKGROUND
sheet-background-params = *2(val)
0x01FE INSERT.MAP.OBJECT
0x01FF OPTIONS.MENONO
options-menono-params = *5(val)
0x0205 MSOCHECKS
0x0206 NORMAL
0x0207 LAYOUT
0x0208 RM.PRINT.AREA
0x0209 CLEAR.PRINT.AREA
0x020A ADD.PRINT.AREA
0x020B MOVE.BRK
move-brk-params = *4(val)
0x0221 HIDECURR.NOTE
0x0222 HIDEALL.NOTES
hideall-notes-params = [val]
0x0223 DELETE.NOTE
0x0224 TRAVERSE.NOTES
0x0225 ACTIVATE.NOTES
0x026C PROTECT.REVISIONS
749 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x026D UNPROTECT.REVISIONS
0x0287 OPTIONS.ME
0x028D WEB.PUBLISH
web-publish-params = *9(val)
0x029B NEWWEBQUERY
newwebquery-params = [val]
0x02A1 PIVOT.TABLE.CHART
0x02F1 OPTIONS.SAVE
options-save-params = *4(val)
0x02F3 OPTIONS.SPELL
options-spell-params = *12(val)
0x0328 HIDEALL.INKANNOTS
hideall-inkannots-params = [val]
printer-setup-params /
set-print-area-params / set-print-titles-params /
column-width-params / cut-params /
750 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
paste-special-params / edit-delete-params / insert-params / define-name-params
/
formula-array-params / activate-params /
new-params / cancel-copy-params /
outline-params / file-close-params /
save-workbook-params / copy-chart-params /
751 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
promote-params / demote-params / show-detail-params / object-properties-params
/ save-new-object-params / share-name-params /
hide-object-params / create-publisher-params /
edition-options-params /
window-minimize-params /
paste-tool-params / placement-params /
752 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
workbook-hide-params / workbook-unhide-params / workbook-delete-params /
text-to-columns-params / format-charttype-params /
filter-params /
series-order-params / clear-routing-slip-params /
vba-make-addin-params / insertdatatable-params /
view-delete-params / sheet-background-params /
activate-notes-params /
hideall-inkannots-params
753 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.5 CFParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes.
rgce (variable): An Rgce that specifies the sequence of Ptg structures for the formula. MUST NOT
contain PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical,
PtgElfRadicalS, PtgElfColS, PtgElfColSV, PtgElfRadicalLel, PtgSxName, PtgIsect, PtgUnion,
PtgArray, PtgRef3d, PtgArea3d, PtgRefErr3d, PtgAreaErr3d, PtgNameX, PtgMemArea, or
PtgMemNoMem. A PtgArea or a PtgAreaN MUST NOT be the only Ptg structure in the sequence.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
2.5.198.6 CFParsedFormulaNoCCE
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgce (variable)
...
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, PtgSxName, PtgIsect, PtgUnion, PtgArray, PtgRef3d,
PtgArea3d, PtgRefErr3d, PtgAreaErr3d, PtgNameX, PtgMemArea, or PtgMemNoMem. A PtgArea or
a PtgAreaN MUST NOT be the only Ptg in the sequence.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
2.5.198.7 CFVOParsedFormula
The CFVOParsedFormula structure specifies a formula (section 2.2.2) without relative references
that is used in a conditional formatting rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
754 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, PtgSxName, PtgIsect, PtgUnion, PtgArray, PtgRef3d,
PtgArea3d, PtgRefErr3d, PtgAreaErr3d, PtgNameX, PtgMemArea, or PtgMemNoMem. A PtgArea or
a PtgAreaN MUST NOT be the only Ptg in the sequence.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
2.5.198.8 ChartParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST contain only the
following Ptgs: PtgParen, PtgUnion, PtgRef3d, PtgRefErr3d, PtgArea3d, PtgAreaErr3d, PtgNameX,
or PtgMemFunc.
2.5.198.9 DVParsedFormula
The DVParsedFormula structure specifies a formula (section 2.2.2) used in a data validation rule.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cce unused
rgce (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes.
755 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused (2 bytes): Undefined and MUST be ignored.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, PtgSxName, PtgIsect, PtgUnion, PtgArray, PtgRef3d,
PtgRefErr3d, PtgNameX, PtgMemArea, or PtgMemNoMem.
If the Dv record that contains this DVParsedFormula in its Dv.formula1 field has a Dv.valType
not equal to 3, then the following MUST be true:
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
If the Dv record that contains this DVParsedFormula in its Dv.formula1 field has a Dv.valType
equal to 3, then the following MUST be true:
If rgce contains a PtgArea3d or a PtgAreaErr3d then the PtgArea3d or PtgAreaErr3d MUST be the
only Ptg in rgce.
The root node of the parse tree of this field MUST NOT be a VALUE_TYPE, as described in Rgce.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
2.5.198.10 ExtNameParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cb (2 bytes): An unsigned integer that specifies the number of bytes in extPtg + the number of
bytes in val. If the defined name that this external defined name specifies does not exist in its
containing workbook, this value MUST be 0, and extPtg and val MUST NOT exist.
extPtg (1 byte): An unsigned integer that specifies the formula type of val. This field MUST exist if
and only if cb is greater than 0. MUST be one of the values as specified in the table in the val field
section.
val (variable): An optional field that specifies the formula of an external defined name. If the formula
cannot be represented correctly with one formula types allowed in this field, then this field MUST
specify an ExtPtgErr formula. This field MUST exist if and only if cb is greater than 0. The size and
the type of the formula vary based on the value of extPtg as follows:
756 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
extPtg value Val field Data and Meaning
0x3B Specifies an ExtPtgArea3D formula.
0x3C Specifies an ExtPtgRefErr3D formula.
0x3D Specifies an ExtPtgAreaErr3D formula.
0x1C Specifies an ExtPtgErr formula.
2.5.198.11 ExtPtgArea3D
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iTabs
area
...
iTabs (4 bytes): An ExtSheetPair that specifies the sheet or sheets containing the range.
area (8 bytes): A RgceAreaRel that specifies the location of the range of cells within a sheet.
2.5.198.12 ExtPtgAreaErr3D
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iTabs
unused1
unused2
iTabs (4 bytes): An ExtSheetPair that specifies the sheet or sheets containing the target of this
reference.
2.5.198.13 ExtPtgErr
The ExtPtgErr structure is a variation of PtgErr that is used by formulas in an external defined name.
It specifies an invalid cell reference.
757 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
err
err (1 byte): A BErr that specifies the value of this error. The value MUST be 0x17.
2.5.198.14 ExtPtgRef3D
The ExtPtgRef3D structure is a variation of PtgRef3d that is used by formulas in an external defined
name. It specifies the location of a single cell on one or more sheets.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iTabs
loc
iTabs (4 bytes): An ExtSheetPair that specifies the sheet or sheets containing the cell.
loc (4 bytes): A RgceLocRel that specifies the location of a cell within a sheet.
2.5.198.15 ExtPtgRefErr3D
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iTabs
unused
iTabs (4 bytes): An ExtSheetPair that specifies the sheet or sheets containing the target of this
reference.
2.5.198.16 ExtSheetPair
The ExtSheetPair structure specifies a pair of sheets in the formulas of an external defined name.
The sheets are in the External Workbook as specified by the preceding SupBook record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
itabFirst itabLast
itabFirst (2 bytes): A signed integer that specifies the first sheet of a single or multi-sheet
reference. It MUST be a value from the following table:
758 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
-1 Specifies that the first sheet of this reference could not be found.
>=0 This value specifies the zero-based index of an XLUnicodeString in the rgst field of the
preceding SupBook record. The XLUnicodeString specifies the name of the first referenced
sheet within the supporting workbook. This value MUST be less than the value of the ctab field
in the preceding SupBook record.
itabLast (2 bytes): A signed integer that specifies the last sheet of a single or multi-sheet
reference. The value MUST be greater than or equal to itabFirst if it is not -1 and MUST be a
value from the following table:
Value Meaning
-1 Specifies that the last sheet of this reference could not be found.
>=0 This value specifies the zero-based index of an XLUnicodeString in the rgst field of the
preceding SupBook record. The XLUnicodeString specifies the name of the last referenced
sheet within the supporting workbook. This value MUST be less than the value of the ctab field
in the preceding SupBook record.
2.5.198.17 Ftab
The Ftab structure specifies a function which can be called from a formula (section 2.2.2). The
definition of each function specifies the function name and the valid sequence of arguments.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iftab
iftab (2 bytes): An unsigned integer that specifies the function to be called. MUST be a value from
the following table:
Value Meaning
0x0000 COUNT
0x0001 IF
0x0002 ISNA
isna-params = val
0x0003 ISERROR
iserror-params = val
0x0004 SUM
759 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0005 AVERAGE
0x0006 MIN
0x0007 MAX
0x0008 ROW
row-params = [ref]
0x0009 COLUMN
column-params = [ref]
0x000A NA
0x000B NPV
0x000C STDEV
0x000D DOLLAR
0x000E FIXED
0x000F SIN
sin-params = val
0x0010 COS
cos-params = val
0x0011 TAN
tan-params = val
0x0012 ATAN
atan-params = val
0x0013 PI
0x0014 SQRT
sqrt-params = val
760 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0015 EXP
exp-params = val
0x0016 LN
ln-params = val
0x0017 LOG10
log10-params = val
0x0018 ABS
abs-params = val
0x0019 INT
int-params = val
0x001A SIGN
sign-params = val
0x001B ROUND
0x001C LOOKUP
0x001D INDEX
0x001E REPT
0x001F MID
0x0020 LEN
len-params = val
0x0021 VALUE
value-params = val
0x0022 TRUE
0x0023 FALSE
0x0024 AND
761 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0025 OR
0x0026 NOT
not-params = val
0x0027 MOD
0x0028 DCOUNT
0x0029 DSUM
0x002A DAVERAGE
0x002B DMIN
0x002C DMAX
0x002D DSTDEV
0x002E VAR
0x002F DVAR
0x0030 TEXT
0x0031 LINEST
0x0032 TREND
0x0033 LOGEST
0x0034 GROWTH
762 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0035 GOTO
goto-params = ref
0x0036 HALT
halt-params = [val]
0x0037 RETURN
0x0038 PV
0x0039 FV
0x003A NPER
0x003B PMT
0x003C RATE
0x003D MIRR
0x003E IRR
0x003F RAND
0x0040 MATCH
0x0041 DATE
0x0042 TIME
0x0043 DAY
day-params = val
0x0044 MONTH
month-params = val
763 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0045 YEAR
year-params = val
0x0046 WEEKDAY
0x0047 HOUR
hour-params = val
0x0048 MINUTE
minute-params = val
0x0049 SECOND
second-params = val
0x004A NOW
0x004B AREAS
areas-params = ref
0x004C ROWS
0x004D COLUMNS
0x004E OFFSET
0x004F ABSREF
0x0050 RELREF
0x0051 ARGUMENT
0x0052 SEARCH
0x0053 TRANSPOSE
transpose-params = val
0x0054 ERROR
764 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0055 STEP
0x0056 TYPE
type-params = val
0x0057 ECHO
echo-params = [val]
0x0058 SET.NAME
0x0059 CALLER
0x005A DEREF
deref-params = ref
0x005B WINDOWS
0x005C SERIES
series-params = (ref / val), (ref / val), (ref / val), val, [ref / val]
0x005D DOCUMENTS
0x005E ACTIVE.CELL
0x005F SELECTION
0x0060 RESULT
result-params = [val]
0x0061 ATAN2
0x0062 ASIN
asin-params = val
0x0063 ACOS
acos-params = val
0x0064 CHOOSE
765 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0065 HLOOKUP
0x0066 VLOOKUP
0x0067 LINKS
0x0068 INPUT
0x0069 ISREF
0x006A GET.FORMULA
0x006B GET.NAME
0x006C SET.VALUE
0x006D LOG
0x006E EXEC
0x006F CHAR
char-params = val
0x0070 LOWER
lower-params = val
0x0071 UPPER
upper-params = val
0x0072 PROPER
proper-params = val
0x0073 LEFT
0x0074 RIGHT
766 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0075 EXACT
0x0076 TRIM
trim-params = val
0x0077 REPLACE
0x0078 SUBSTITUTE
0x0079 CODE
code-params = val
0x007A NAMES
0x007B DIRECTORY
directory-params = [val]
0x007C FIND
0x007D CELL
0x007E ISERR
iserr-params = val
0x007F ISTEXT
istext-params = val
0x0080 ISNUMBER
isnumber-params = val
0x0081 ISBLANK
isblank-params = val
0x0082 T
0x0083 N
0x0084 FOPEN
767 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0085 FCLOSE
fclose-params = val
0x0086 FSIZE
fsize-params = val
0x0087 FREADLN
freadln-params = val
0x0088 FREAD
0x0089 FWRITELN
0x008A FWRITE
0x008B FPOS
0x008C DATEVALUE
datevalue-params = val
0x008D TIMEVALUE
timevalue-params = val
0x008E SLN
0x008F SYD
0x0090 DDB
0x0091 GET.DEF
0x0092 REFTEXT
0x0093 TEXTREF
0x0094 INDIRECT
768 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0095 REGISTER
register-params = val, [val, [val, [val, [val, [val, [val, [val, [val, [val,
*20(val)]]]]]]]]]
0x0096 CALL
0x0097 ADD.BAR
add-bar-params = [val]
0x0098 ADD.MENU
0x0099 ADD.COMMAND
0x009A ENABLE.COMMAND
0x009B CHECK.COMMAND
0x009C RENAME.COMMAND
0x009D SHOW.BAR
show-bar-params = [val]
0x009E DELETE.MENU
0x009F DELETE.COMMAND
0x00A0 GET.CHART.ITEM
0x00A1 DIALOG.BOX
0x00A2 CLEAN
clean-params = val
0x00A3 MDETERM
mdeterm-params = val
0x00A4 MINVERSE
minverse-params = val
769 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00A5 MMULT
0x00A6 FILES
files-params = *2(val)
0x00A7 IPMT
0x00A8 PPMT
0x00A9 COUNTA
0x00AA CANCEL.KEY
0x00AB FOR
0x00AC WHILE
while-params = val
0x00AD BREAK
0x00AE NEXT
0x00AF INITIATE
0x00B0 REQUEST
0x00B1 POKE
0x00B2 EXECUTE
0x00B3 TERMINATE
terminate-params = val
0x00B4 RESTART
restart-params = [val]
770 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00B5 HELP
help-params = [val]
0x00B6 GET.BAR
get-bar-params = *4(val)
0x00B7 PRODUCT
0x00B8 FACT
fact-params = val
0x00B9 GET.CELL
0x00BA GET.WORKSPACE
get-workspace-params = val
0x00BB GET.WINDOW
0x00BC GET.DOCUMENT
0x00BD DPRODUCT
0x00BE ISNONTEXT
isnontext-params = val
0x00BF GET.NOTE
0x00C0 NOTE
0x00C1 STDEVP
0x00C2 VARP
0x00C3 DSTDEVP
0x00C4 DVARP
771 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00C5 TRUNC
0x00C6 ISLOGICAL
islogical-params = val
0x00C7 DCOUNTA
0x00C8 DELETE.BAR
delete-bar-params = val
0x00C9 UNREGISTER
unregister-params = val
0x00CC USDOLLAR
0x00CD FINDB
0x00CE SEARCHB
0x00CF REPLACEB
0x00D0 LEFTB
0x00D1 RIGHTB
0x00D2 MIDB
0x00D3 LENB
lenb-params = val
0x00D4 ROUNDUP
0x00D5 ROUNDDOWN
0x00D6 ASC
asc-params = val
772 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00D7 DBCS
dbcs-params = val
0x00D8 RANK
0x00DB ADDRESS
0x00DC DAYS360
0x00DD TODAY
0x00DE VDB
0x00DF ELSE
0x00E0 ELSE.IF
else-if-params = val
0x00E1 END.IF
0x00E2 FOR.CELL
0x00E3 MEDIAN
0x00E4 SUMPRODUCT
0x00E5 SINH
sinh-params = val
0x00E6 COSH
cosh-params = val
0x00E7 TANH
tanh-params = val
0x00E8 ASINH
asinh-params = val
773 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00E9 ACOSH
acosh-params = val
0x00EA ATANH
atanh-params = val
0x00EB DGET
0x00EC CREATE.OBJECT
create-object-params = val, (ref / val), [(ref / val), [(ref / val), [(ref / val), [(ref /
val), [(ref / val), [(ref / val), [(ref / val), [(ref / val), [ref / val]]]]]]]]]
0x00ED VOLATILE
volatile-params = [val]
0x00EE LAST.ERROR
0x00EF CUSTOM.UNDO
custom-undo-params = *2(val)
0x00F0 CUSTOM.REPEAT
custom-repeat-params = *3(val)
0x00F1 FORMULA.CONVERT
0x00F2 GET.LINK.INFO
0x00F3 TEXT.BOX
0x00F4 INFO
info-params = val
0x00F5 GROUP
0x00F6 GET.OBJECT
0x00F7 DB
0x00F8 PAUSE
pause-params = [val]
774 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x00FB RESUME
resume-params = [val]
0x00FC FREQUENCY
0x00FD ADD.TOOLBAR
0x00FE DELETE.TOOLBAR
delete-toolbar-params = val
0x0100 RESET.TOOLBAR
reset-toolbar-params = val
0x0101 EVALUATE
evaluate-params = val
0x0102 GET.TOOLBAR
0x0103 GET.TOOL
0x0104 SPELLING.CHECK
0x0105 ERROR.TYPE
error-type-params = val
0x0106 APP.TITLE
app-title-params = [val]
0x0107 WINDOW.TITLE
window-title-params = [val]
0x0108 SAVE.TOOLBAR
0x0109 ENABLE.TOOL
0x010A PRESS.TOOL
775 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x010B REGISTER.ID
0x010C GET.WORKBOOK
0x010D AVEDEV
0x010E BETADIST
0x010F GAMMALN
gammaln-params = val
0x0110 BETAINV
0x0111 BINOMDIST
0x0112 CHIDIST
0x0113 CHIINV
0x0114 COMBIN
0x0115 CONFIDENCE
0x0116 CRITBINOM
0x0117 EVEN
even-params = val
0x0118 EXPONDIST
0x0119 FDIST
0x011A FINV
776 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x011B FISHER
fisher-params = val
0x011C FISHERINV
fisherinv-params = val
0x011D FLOOR
0x011E GAMMADIST
0x011F GAMMAINV
0x0120 CEILING
0x0121 HYPGEOMDIST
0x0122 LOGNORMDIST
0x0123 LOGINV
0x0124 NEGBINOMDIST
0x0125 NORMDIST
0x0126 NORMSDIST
normsdist-params = val
0x0127 NORMINV
0x0128 NORMSINV
normsinv-params = val
0x0129 STANDARDIZE
0x012A ODD
odd-params = val
777 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x012B PERMUT
0x012C POISSON
0x012D TDIST
0x012E WEIBULL
0x012F SUMXMY2
0x0130 SUMX2MY2
0x0131 SUMX2PY2
0x0132 CHITEST
0x0133 CORREL
0x0134 COVAR
0x0135 FORECAST
0x0136 FTEST
0x0137 INTERCEPT
0x0138 PEARSON
0x0139 RSQ
0x013A STEYX
778 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x013B SLOPE
0x013C TTEST
0x013D PROB
0x013E DEVSQ
0x013F GEOMEAN
0x0140 HARMEAN
0x0141 SUMSQ
0x0142 KURT
0x0143 SKEW
0x0144 ZTEST
0x0145 LARGE
0x0146 SMALL
0x0147 QUARTILE
0x0148 PERCENTILE
0x0149 PERCENTRANK
0x014A MODE
779 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x014B TRIMMEAN
0x014C TINV
0x014E MOVIE.COMMAND
0x014F GET.MOVIE
0x0150 CONCATENATE
0x0151 POWER
0x0152 PIVOT.ADD.DATA
0x0153 GET.PIVOT.TABLE
0x0154 GET.PIVOT.FIELD
0x0155 GET.PIVOT.ITEM
0x0156 RADIANS
radians-params = val
0x0157 DEGREES
degrees-params = val
0x0158 SUBTOTAL
0x0159 SUMIF
0x015A COUNTIF
0x015B COUNTBLANK
countblank-params = ref
780 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x015C SCENARIO.GET
0x015D OPTIONS.LISTS.GET
options-lists-get-params = val
0x015E ISPMT
0x015F DATEDIF
0x0160 DATESTRING
datestring-params = val
0x0161 NUMBERSTRING
0x0162 ROMAN
0x0163 OPEN.DIALOG
0x0164 SAVE.DIALOG
0x0165 VIEW.GET
0x0166 GETPIVOTDATA
0x0167 HYPERLINK
0x0168 PHONETIC
phonetic-params = ref
0x0169 AVERAGEA
0x016A MAXA
0x016B MINA
781 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x016C STDEVPA
0x016D VARPA
0x016E STDEVA
0x016F VARA
0x0170 BAHTTEXT
bahttext-params = val
0x0171 THAIDAYOFWEEK
thaidayofweek-params = val
0x0172 THAIDIGIT
thaidigit-params = val
0x0173 THAIMONTHOFYEAR
thaimonthofyear-params = val
0x0174 THAINUMSOUND
thainumsound-params = val
0x0175 THAINUMSTRING
thainumstring-params = val
0x0176 THAISTRINGLENGTH
thaistringlength-params = val
0x0177 ISTHAIDIGIT
isthaidigit-params = val
0x0178 ROUNDBAHTDOWN
roundbahtdown-params = val
0x0179 ROUNDBAHTUP
roundbahtup-params = val
0x017A THAIYEAR
thaiyear-params = val
0x017B RTD
782 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The following grammar is used in the Rgce structure definition:
atan-params / sqrt-params /
mirr-params / date-params /
second-params / areas-params /
relref-params / transpose-params /
783 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
islogical-params / dcounta-params / delete-bar-params /
784 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
params-variable = count-params / if-params / sum-params /
785 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
address-params / days360-params / vdb-params /
rtd-params
2.5.198.18 Ilel
The Ilel structure specifies a deleted label in use by a natural language formula.<176>
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ilel
ilel (2 bytes): An unsigned integer used to calculate the index into the collection of Lel records in the
Globals Substream. The referenced Lel specifies the deleted label in use. MUST be a value from
the following table.
Value Meaning
0 Invalid index. The number of deleted labels is greater than 2047, the
maximum size of the array of deleted labels.
1 Invalid index.
786 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
Greater than 1 and less The one-based index plus 1 of the Lel record.
than or equal to 2048
2.5.198.19 ListParsedArrayFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgcb (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, or PtgSxName.
rgcb (variable): An RgbExtra that specifies ancillary data for the formula.
2.5.198.20 ListParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, or PtgSxName.
2.5.198.21 NameParsedFormula
The NameParsedFormula structure specifies a formula (section 2.2.2) used in a defined name.
787 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgce (variable)
...
rgcb (variable)
...
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS,
PtgElfColS, PtgElfColSV, PtgElfRadicalLel, PtgSxName, PtgRef, PtgRefN, PtgRefErr, PtgArea,
PtgAreaN, or PtgAreaErr. The size of rgce in bytes is specified by the cce field of the Lbl record.
rgcb (variable): An RgbExtra that specifies ancillary data for the formula.
2.5.198.22 ObjectParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cce (15 bits): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST contain one Ptg
only, and this Ptg MUST be PtgTbl, PtgName, PtgNameX, PtgErr, PtgRef, PtgRefErr, PtgRef3d,
PtgRefErr3d, PtgArea, PtgAreaErr, PtgArea3d, or PtgAreaErr3d.
2.5.198.23 ParameterParsedFormula
The ParameterParsedFormula structure specifies a formula (section 2.2.2) for a query parameter.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
788 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgArray<177>, PtgMemArea, PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV,
PtgElfColV, PtgElfRadical, PtgElfRadicalS, PtgElfColS, PtgElfColSV, PtgElfRadicalLel, or PtgSxName.
The root node of the parse tree of this field MUST NOT be a VALUE_TYPE, as described in Rgce.
2.5.198.24 PivotParsedFormula
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cce cSxName
rgce (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes.
cSxName (2 bytes): An unsigned integer that specifies number of contiguous SxName records that
follow the SxFmla record that contains this formula.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgUnion, PtgIsect, PtgRange, PtgArray, PtgAttrSpaceSemi, PtgAttrSemi, PtgElfLel,
PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS, PtgElfColS, PtgElfColSV,
PtgElfRadicalLel, PtgRef, PtgRefErr, PtgRefN, PtgArea, PtgAreaErr, PtgAreaN, PtgRef3d, PtgArea3d,
PtgRefErr3d, PtgAreaErr3d, PtgName, PtgNameX, PtgMemArea, PtgMemErr, PtgMemNoMem, or
PtgMemFunc.
If this field contains a PtgFunc, then the iftab field of the PtgFunc MUST be less than 0x0028 or
greater than 0x002D and MUST NOT be equal to 0x002F, 0x00BD, 0x00C3, 0x00C4, or 0x00C7.
If this field contains a PtgFuncVar, then the fCeFunc field of the PtgFuncVar MUST be 0 and the
tab field of the PtgFuncVar MUST NOT be equal to 0x00FF or 0x0166.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
2.5.198.25 Ptg
The Ptg structure specifies a single element of a formula (section 2.2.2). The value of the first byte
determines which structure it represents and MUST be one of the values in the first column of the
following table. If the value of the first byte is 0x18 or 0x19, then the second byte determines which
structure it represents and MUST be one of the values in the second column of the following table.
789 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
First byte Second byte Ptg
0x06 PtgDiv
0x07 PtgPower
0x08 PtgConcat
0x09 PtgLt
0x0A PtgLe
0x0B PtgEq
0x0C PtgGe
0x0D PtgGt
0x0E PtgNe
0x0F PtgIsect
0x10 PtgUnion
0x11 PtgRange
0x12 PtgUplus
0x13 PtgUminus
0x14 PtgPercent
0x15 PtgParen
0x16 PtgMissArg
0x17 PtgStr
0x18 0x01 PtgElfLel
0x18 0x02 PtgElfRw
0x18 0x03 PtgElfCol
0x18 0x06 PtgElfRwV
0x18 0x07 PtgElfColV
0x18 0x0A PtgElfRadical
0x18 0x0B PtgElfRadicalS
0x18 0x0D PtgElfColS
0x18 0x0F PtgElfColSV
0x18 0x10 PtgElfRadicalLel
0x18 0x1D PtgSxName
0x19 0x01 PtgAttrSemi
0x19 0x02 PtgAttrIf
0x19 0x04 PtgAttrChoose
0x19 0x08 PtgAttrGoto
0x19 0x10 PtgAttrSum
0x19 0x20 PtgAttrBaxcel
0x19 0x21 PtgAttrBaxcel
0x19 0x40 PtgAttrSpace
0x19 0x41 PtgAttrSpaceSemi
0x1C PtgErr
0x1D PtgBool
790 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
First byte Second byte Ptg
0x1E PtgInt
0x1F PtgNum
0x20 PtgArray
0x21 PtgFunc
0x22 PtgFuncVar
0x23 PtgName
0x24 PtgRef
0x25 PtgArea
0x26 PtgMemArea
0x27 PtgMemErr
0x28 PtgMemNoMem
0x29 PtgMemFunc
0x2A PtgRefErr
0x2B PtgAreaErr
0x2C PtgRefN
0x2D PtgAreaN
0x39 PtgNameX
0x3A PtgRef3d
0x3B PtgArea3d
0x3C PtgRefErr3d
0x3D PtgAreaErr3d
0x40 PtgArray
0x41 PtgFunc
0x42 PtgFuncVar
0x43 PtgName
0x44 PtgRef
0x45 PtgArea
0x46 PtgMemArea
0x47 PtgMemErr
0x48 PtgMemNoMem
0x49 PtgMemFunc
0x4A PtgRefErr
0x4B PtgAreaErr
0x4C PtgRefN
0x4D PtgAreaN
0x59 PtgNameX
0x5A PtgRef3d
0x5B PtgArea3d
0x5C PtgRefErr3d
0x5D PtgAreaErr3d
791 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
First byte Second byte Ptg
0x60 PtgArray
0x61 PtgFunc
0x62 PtgFuncVar
0x63 PtgName
0x64 PtgRef
0x65 PtgArea
0x66 PtgMemArea
0x67 PtgMemErr
0x68 PtgMemNoMem
0x69 PtgMemFunc
0x6A PtgRefErr
0x6B PtgAreaErr
0x6C PtgRefN
0x6D PtgAreaN
0x79 PtgNameX
0x7A PtgRef3d
0x7B PtgArea3d
0x7C PtgRefErr3d
0x7D PtgAreaErr3d
2.5.198.26 PtgAdd
The PtgAdd structure specifies a binary-value-operator that adds the second expression in a binary-
value-expression to the first.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.27 PtgArea
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B area
792 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
2.5.198.28 PtgArea3d
The PtgArea3d operand specifies a reference to the same rectangular range of cells on one or more
sheets. If the formula (section 2.2.2) containing this structure is part of a revision as specified in the
Formulas overview, then there MUST be a RevExtern in the RgbExtra corresponding to this PtgArea3d,
which specifies those sheets.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg
ixti (2 bytes): If the formula containing this structure is not part of a revision as specified in the
Formulas overview, then this value is an XtiIndex that specifies the XTI which specifies those
sheets. Otherwise it is undefined and MUST be ignored.
area (8 bytes): A value that specifies coordinates of the referenced range of cells. If this PtgArea3d
is part of a NameParsedFormula then this is an RgceAreaRel value. Otherwise it is an RgceArea
value.
2.5.198.29 PtgAreaErr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
793 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ptg (5 bits): Reserved. MUST be 0x0B.
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
2.5.198.30 PtgAreaErr3d
PtgAreaErr3d operand specifies an invalid reference to the same rectangular range of cells on one
or more sheets. If the formula (section 2.2.2) containing this structure is part of a revision as
specified in the Formulas overview, then there MUST be a RevExtern in the RgbExtra corresponding to
this PtgAreaErr3d, which specifies those sheets.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... unused4
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg.
ixti (2 bytes): If the formula containing this structure is not part of a revision as specified in the
Formulas overview, then this value is an XtiIndex that specifies the XTI which specifies those
sheets. Otherwise it is undefined and MUST be ignored.
2.5.198.31 PtgAreaN
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B area
794 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
2.5.198.32 PtgArray
The PtgArray operand specifies an array of values. There MUST be a PtgExtraArray in the RgbExtra
corresponding to this PtgArray. The correspondence between PtgArray and PtgExtraArray structures is
specified in RgbExtra.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused3
A - type (2 bits): A PtgDataType that specifies the data type for this array. MUST be 2 or 3.
2.5.198.33 PtgAttrBaxcel
The PtgAttrBaxcel structure specifies that the result of the Rgce is to be assigned to a local variable
used in a macro sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B C D E unused
795 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
E - reserved3 (2 bits): MUST be zero, and MUST be ignored.
2.5.198.34 PtgAttrChoose
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgOffset (variable)
...
cOffset (2 bytes): An unsigned integer that specifies a value which is 1 less than the number of
elements in rgOffset.
rgOffset (variable): An array of 2-byte unsigned integers that specifies the byte offsets.
2.5.198.35 PtgAttrGoto
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B C D offset
C - bitGoto (1 bit): If the formula (section 2.2.2) containing this structure is not part of a
ArrayParsedFormula then the bit is reserved and MUST be 1. If the formula containing this
structure is part of an ArrayParsedFormula, then the bit is undefined and MUST be ignored.
offset (2 bytes): An unsigned integer that specifies a value 1 less than the byte offset.
796 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.36 PtgAttrIf
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
2.5.198.37 PtgAttrSemi
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
2.5.198.38 PtgAttrSpace
The PtgAttrSpace display token specifies a number of space or carriage return characters that are
displayed around the expression in a display-precedence-expression.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
797 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
C - reserved3 (1 bit): MUST be zero, and MUST be ignored.
type (2 bytes): A PtgAttrSpaceType that specifies a number of space or carriage return characters
and the position of those characters
2.5.198.39 PtgAttrSpaceSemi
The PtgAttrSpaceSemi structure specifies a number of space or carriage return characters that are
displayed around the expression in a display-precedence-specifier and that the Rgce is volatile.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
type (2 bytes): A PtgAttrSpaceType that specifies a number of space or carriage return characters
and position of those characters
2.5.198.40 PtgAttrSpaceType
The PtgAttrSpaceType structure specifies the number of space or carriage return characters and
position of those characters.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
type cch
type (1 byte): An unsigned integer that specifies the character and position of the character. MUST
be a value from the following table:
Value Meaning
0x00 Specifies space characters before a base-
expression.
0x01 Specifies carriage return characters before a base-
expression.
0x02 Specifies space characters before the open
parenthesis specified by PtgParen in a display-
precedence-specifier.
0x03 Specifies carriage return characters before the
open parenthesis specified by PtgParen in a
display-precedence-specifier.
0x04 Specifies space characters before the close
parenthesis specified by PtgParen in a display-
precedence-specifier.
0x05 Specifies carriage return characters before the
close parenthesis specified by PtgParen in a
display-precedence-specifier.
0x06 Specifies space characters before an expression.
798 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cch (1 byte): An unsigned integer that specifies the number of characters.
2.5.198.41 PtgAttrSum
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B C D unused
2.5.198.42 PtgBool
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A boolean
2.5.198.43 PtgConcat
The PtgConcat structure specifies a binary-value-operator that appends the second expression in
binary-value-expression to the first.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.44 PtgDataType
The PtgDataType enumeration specifies the data type of a Ptg. MUST be a value from the following
table:
799 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
Specifies a single value of a simple type. The type can be a Boolean, a number, a string,
VALUE 0x2
or an error code.
2.5.198.45 PtgDiv
The PtgDiv structure specifies a binary-value-operator that divides the first expression in a binary-
value-expression by the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.46 PtgElfCol
The PtgElfCol natural language formula operand specifies a reference class reference to a range
within a column which is represented by a single-cell natural language label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.47 PtgElfColS
The PtgElfColS natural language formula operand specifies a reference class reference to a range
within a column that is identified by a multiple-cell natural language label. There MUST be a
PtgExtraElf in the RgbExtra corresponding to this PtgElfColS. The correspondence between PtgElfColS
and PtgExtraElf structures is specified in RgbExtra.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
800 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ptg (1 byte): Reserved. MUST be 0x18.
2.5.198.48 PtgElfColSV
The PtgElfColSV natural language formula operand specifies a value class reference to a range
within a column that is identified by a multiple-cell natural language label. There MUST be a
PtgExtraElf in the RgbExtra corresponding to this PtgElfColSV. The correspondence between
PtgElfColSV and PtgExtraElf structures is specified in RgbExtra.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.49 PtgElfColV
The PtgElfColV natural language formula operand specifies a value class reference to a range
within a column which is represented by a single-cell natural language label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.50 PtgElfLel
The PtgElfLel natural language formula operand specifies a reference to a range which is
represented by a single-cell natural language label or a multiple-cell natural language label that has
been deleted.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
801 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A reserved
A - fQuoted (1 bit): A bit that specifies whether the occurrences of the label specified in ilel are
surrounded by single quote characters in the formula (section 2.2.2).
2.5.198.51 PtgElfRadical
The PtgElfRadical natural language formula operand specifies a reference class reference to a
range that is represented by a single-cell natural language label. The range is specified by PtgArea
or PtgAreaErr that follows this PtgElfRadical in the formula (section 2.2.2). If this structure is followed
in the formula by PtgArea, then one but not both of the following MUST be true:
The area.rowFirst field is equal to the area.rowLast field of PtgArea, and the loc field specifies
a label location that is adjacent to the range specified by the area field of PtgArea. The loc.row
field of this PtgElfRadical is equal to the area.rowFirst field of PtgArea
The area.columnFirst field is equal to the area.columnLast field of PtgArea, and the loc field
specifies a label location that is adjacent to the range specified by the area field of PtgArea. The
loc.col field of this PtgElfRadical is equal to the area.columnFirst field of PtgArea
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.52 PtgElfRadicalLel
The PtgElfRadicalLel natural language formula operand specifies a reference class reference to a
range which is represented by a single-cell natural language label or a multiple-cell natural
language label that has been deleted.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A reserved
802 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
eptg (1 byte): Reserved. MUST be 0x10.
A - fQuoted (1 bit): A bit that specifies whether the occurrences of the label specified in ilel are
surrounded by single quote characters in the formula (section 2.2.2).
2.5.198.53 PtgElfRadicalS
The PtgElfRadicalS natural language formula operand specifies a reference class reference to a
range which is represented by a multiple-cell natural language label. The range is specified by the
PtgArea or PtgAreaErr record which follows this PtgElfRadicalS in the formula (section 2.2.2). There
MUST be a PtgExtraElf in the RgbExtra corresponding to this PtgElfRadicalS. The correspondence
between PtgElfRadicalS and PtgExtraElf structures is specified in RgbExtra.
If this PtgElfRadicalS is followed in the formula (section 2.2.2) by PtgArea, then the area.columnFirst
field and the area.columnLast field of the PtgArea MUST be equal. Additionally, the last element in
the array field of the corresponding PtgExtraElf MUST specify a label location that is adjacent to the
range specified by the area field of PtgArea. The column.col field of the last element in the array
field of PtgExtraElf MUST also be equal to the area.columnFirst field of PtgArea.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.54 PtgElfRw
The PtgElfRw natural language formula operand specifies a reference class reference to a range
within a row which is represented by a single-cell natural language label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
803 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.55 PtgElfRwV
The PtgElfRwV natural language formula operand specifies a value class reference to a range
within a row which is represented by a single-cell natural language label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.56 PtgEq
The PtgEq structure specifies the comparison of whether the first expression is equal to the second
expression.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.57 PtgErr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A err
2.5.198.58 PtgExp
The PtgExp structure specifies that the containing Rgce is part of an array formula (section 2.2.2) or
shared formula and specifies the row and column of the cell in which that formula exists.
The row and col fields of this structure specify a cell on the current sheet. There MUST be a Formula
record where the cell.rw field of that record is equal to row, and cell.col.col field of that record is
equal to col.
804 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
That Formula record MUST be followed by either a ShrFmla record or an Array record.
If that Formula record is followed by a ShrFmla, the row field of this structure MUST be greater than
or equal to the ref.rwFirst field and less than or equal to the ref.rwLast field of the ShrFmla record,
and the col field of this structure MUST be greater than or equal to the ref.colFirst field and less than
or equal to the ref.colLast field of the ShrFmla record.
If that Formula record is followed by an Array, the row field of this structure MUST be equal to the
ref.rwFirst field of the Array record, and the col field of this structure MUST be equal to the
ref.colFirst field of the Array record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
row (2 bytes): A Rw that specifies the row of the cell that contains the array formula or shared
formula that the containing Rgce is a part of.
col (2 bytes): A Col that specifies the column of the cell that contains the array formula or shared
formula that the containing Rgce is a part of.
2.5.198.59 PtgExtraArray
The PtgExtraArray structure specifies the values for the corresponding PtgArray as specified in
RgbExtra.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cols (1 byte): A DColByteU that specifies one less than the number of columns in the array.
rows (2 bytes): A DRw that specifies one less than the number of rows in the array.
array (variable): An array of SerAr that specifies the values in row-major order. The number of
elements MUST be equal to the product of rows and cols.
2.5.198.60 PtgExtraElf
The PtgExtraElf structure specifies a multiple-cell natural language label used in a natural
language formula. The label is specified by a sequence of labels from the given array of cells.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
count A B
805 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
array (variable)
...
count (30 bits): An unsigned integer that specifies the number of elements in array. MUST be
greater than 0.
B - fRel (1 bit): A bit that specifies whether relative references are used in the elements of array.
array (variable): An array of RgceElfLocExtra elements that specifies the sequence of cell
references that specifies the multiple-cell natural language label. The number of elements MUST
be equal to count.
2.5.198.61 PtgExtraMem
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
count (2 bytes): An unsigned integer that specifies the areas within the range.
array (variable): An array of Ref8U that specifies the range. The number of elements MUST be equal
to count.
2.5.198.62 PtgFunc
The PtgFunc structure specifies a call to a function with a fixed number of parameters, as defined in
function-call.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B iftab
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
iftab (2 bytes): A Ftab that specifies the function to be called. MUST specify a function with a fixed
number of parameters.
2.5.198.63 PtgFuncVar
The PtgFuncVar structure specifies a call to a function with a variable number of parameters as
defined in function-call.
806 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
cparams (1 byte): An unsigned integer that specifies the number of parameters. MUST be within the
range defined for the function specified by tab.
tab (15 bits): A structure that specifies the function to be called. If fCeFunc is 1, then this field
specifies a Cetab value. If fCeFunc is 0, then this field specifies a Ftab value.
C - fCeFunc (1 bit): A bit that specifies whether tab specifies a Cetab value or a Ftab value.
2.5.198.64 PtgGe
The PtgGe structure specifies a binary-value-operator that compares whether the first expression in a
binary-value-expression is greater than or equal to the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.65 PtgGt
The PtgGt structure specifies a binary-value-operator that compares whether the first expression in a
binary-value-expression is greater than the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.66 PtgInt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A integer
807 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ptg (7 bits): Reserved. MUST be 0x1E.
2.5.198.67 PtgIsect
The PtgIsect structure specifies a binary-reference-operator that intersects the first expression in a
binary-reference-expression with the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.68 PtgLe
The PtgLe structure specifies a binary-value-operator that compares whether the first expression in a
binary-value-expression is less than or equal to the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.69 PtgLt
The PtgLt structure specifies a binary-value-operator that compares whether the first expression in a
binary-value-expression is less than the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.70 PtgMemArea
The PtgMemArea mem token specifies that the result of a binary-reference-expression in a mem-
area-expression is a range of cells. The RgbExtra corresponding to this structure MUST contain a
PtgExtraMem that specifies the range of cells.
808 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B unused
... cce
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
cce (2 bytes): An unsigned integer that specifies the count of bytes in the binary-reference-
expression following this structure.
2.5.198.71 PtgMemErr
The PtgMemErr mem token specifies that the result of a binary-reference-expression in a mem-area-
expression is an error code.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... cce
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
cce (2 bytes): An unsigned integer that specifies the count of bytes in the binary-reference-
expression following this structure.
2.5.198.72 PtgMemFunc
The PtgMemFunc mem token specifies that the result of a binary-reference-expression in a mem-
area-expression is variable.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B cce
809 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
cce (2 bytes): An unsigned integer that specifies the count of bytes in the binary-reference-
expression following this structure.
2.5.198.73 PtgMemNoMem
The PtgMemNoMem mem token specifies that the result of the binary-reference-expression in a
mem-area-expression failed to cache.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B unused
... cce
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
cce (2 bytes): An unsigned integer that specifies the count of bytes in the binary-reference-
expression following this structure.
2.5.198.74 PtgMissArg
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.75 PtgMul
The PtgMul structure specifies a binary-value-operator that multiplies the first and second
expressions in a binary-value-expression.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
810 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.76 PtgName
The PtgName operand specifies a reference to a defined name in the same workbook as the
containing Rgce.
If the formula (section 2.2.2) containing this structure is part of a revision as specified in the Formulas
overview, then there MUST be a RevNameTabid in the RgbExtra corresponding to this PtgName, which
specifies those defined name.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B nameindex
...
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg.
nameindex (4 bytes): If the formula containing this structure is part of a revision as specified in the
Formulas overview, then this value is undefined and MUST be ignored. Otherwise it is an unsigned
integer that specifies a one-based index of a Lbl record in the collection of Lbl records in the Globals
Substream. The referenced Lbl specifies the referenced defined name. MUST be greater than 0 and
less than or equal to the number of Lbl records in the workbook.
2.5.198.77 PtgNameX
If the formula (section 2.2.2) containing this structure is part of a revision as specified in the Formulas
overview, then there MUST be a RevName in the RgbExtra corresponding to this PtgNameX that
specifies the defined name.
If the formula containing this structure is not part of a revision as specified in the Formulas overview
(section 2.2.2), then the referenced defined name is specified by an XtiIndex.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg.
ixti (2 bytes): If the formula containing this structure is not part of a revision as specified in the
Formulas overview, this value is an XtiIndex that specifies the XTI that specifies the referenced
defined name.
811 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If the formula containing this structure is part of a revision as specified in the Formulas overview,
this value is undefined and MUST be ignored.
nameindex (4 bytes): If the formula containing this structure is not part of a revision as specified in
the Formulas overview, this value is an unsigned integer that specifies the one-based index of an
ExternName record in the collection of ExternName records directly following the SupBook record
referenced by ixti. The referenced ExternName and its associated records specify the referenced
defined name.
If the formula containing this structure is part of a revision as specified in the Formulas overview,
this value is undefined and MUST be ignored.
2.5.198.78 PtgNe
The PtgNe structure specifies a binary-value-operator that compares whether the second expression
in a binary-value-expression is not equal to the first.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.79 PtgNum
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A value
...
...
value (8 bytes): An Xnum (section 2.5.342) that specifies the floating-point value.
2.5.198.80 PtgParen
The PtgParen display token specifies that parentheses are displayed around the expression in a
display-precedence-expression.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
812 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ptg (7 bits): Reserved. MUST be 0x15.
2.5.198.81 PtgPercent
The PtgPercent structure specifies a unary-operator which divides the expression in a unary-
expression by 100.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.82 PtgPower
The PtgPower structure specifies a binary-value-operator that raises the first expression in a binary-
value-expression to the power of the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.83 PtgRange
The PtgRange structure specifies the range operation, where the minimum bounding rectangle of the
first expression and the second expression is generated.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.84 PtgRef
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B loc
813 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
loc (4 bytes): A RgceLoc value that specifies the coordinates of the referenced cell.
2.5.198.85 PtgRef3d
The PtgRef3d operand specifies a reference to a single cell on one or more sheets.
If the formula (section 2.2.2) containing this structure is part of a revision as specified in the Formulas
overview (section 2.2.2), then there MUST be a RevExtern in the RgbExtra corresponding to this
PtgRef3d, which specifies those sheets.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg.
ixti (2 bytes): If the formula containing this structure is not part of a revision as specified in the
Formulas overview, then this value is an XtiIndex that specifies the XTI which specifies those
sheets. Otherwise it is undefined and MUST be ignored.
loc (4 bytes): A value that specifies coordinates of the referenced cell. If this PtgRef3d is part of a
NameParsedFormula then this is a RgceLocRel value. Otherwise it is a RgceLoc value.
2.5.198.86 PtgRefErr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
814 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused2 (2 bytes): Undefined and MUST be ignored.
2.5.198.87 PtgRefErr3d
The PtgRefErr3d operand specifies an invalid reference to a cell on one or more sheets. If the
formula (section 2.2.2) containing this structure is part of a revision as specified in the Formulas
overview (section 2.2.2), then there MUST be a RevExtern in the RgbExtra corresponding to this
PtgRefErr3d, which specifies those sheets.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... unused2
A - type (2 bits): A PtgDataType that specifies the required data type for the value of the Ptg.
ixti (2 bytes): If the formula containing this structure is not part of a revision as specified in the
Formulas overview (section 2.2.2), then this value is an XtiIndex that specifies the XTI which
specifies those sheets. Otherwise it is undefined and MUST be ignored.
2.5.198.88 PtgRefN
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A B loc
...
A - type (2 bits): A PtgDataType that specifies the data type for the value of this Ptg.
2.5.198.89 PtgStr
815 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
2.5.198.90 PtgSub
The PtgSub structure specifies a binary-value operator that subtracts the second expression in a
binary-value-expression from the first.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.91 PtgSxName
The PtgSxName structure specifies a reference to a calculated field or a calculated item found in a
PivotParsedFormula. The Rgce that contains this Ptg MUST be part of the formula field of an SxFmla
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
sxIndex (4 bytes): An unsigned integer that specifies the zero-based index of an SxName record in
the collection of SxName records following an SxFmla record. MUST be less than the value of
formula.cSxName in the SxFmla record.
2.5.198.92 PtgTbl
The PtgTbl structure specifies that the Rgce that contains this PtgTbl is part of a data table (1) or an
ObjectParsedFormula.
816 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If the Rgce is not part of an ObjectParsedFormula, then there MUST be a Table record in the current
part where the ref.rwFirst field in Table is equal to row and the ref.colFirst field in Table is equal to
col.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
row (2 bytes): An unsigned integer that specifies the first row of the data table (1). MUST be less
than 65536. If the Rgce that contains this PtgTbl is part of an ObjectParsedFormula, this field is
undefined and MUST be ignored.
col (2 bytes): An unsigned integer that specifies the first column of the data table (1). MUST be less
than 256. If the Rgce that contains this PtgTbl is part of an ObjectParsedFormula, this field is
undefined and MUST be ignored.
2.5.198.93 PtgUminus
The PtgUminus structure specifies a unary-operator which generates the additive inverse of a unary-
expression.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.94 PtgUnion
The PtgUnion structure specifies a binary-reference-operator that specifies a union of the first
expression in a binary-reference-expression with the second.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.95 PtgUplus
817 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ptg A
2.5.198.96 RevExtern
The RevExtern structure specifies a range of sheets on a workbook that is referenced by a formula
(section 2.2.2) in a revision as specified in the Formulas overview (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
book (variable)
...
itabFirst (variable)
...
itabLast (variable)
...
book (variable): Specifies the workbook based on the value of the first byte, according to the
following table:
Value Meaning
0x01 Specifies the current workbook. This field is two bytes in size. The
second byte MUST be 0x02.
Any value except 0x01 This field is a VirtualPath that specifies the workbook.
itabFirst (variable): A RevItab that specifies the first sheet in the range.
itabLast (variable): A RevItab that specifies the last sheet in the range.
2.5.198.97 RevItab
The RevItab structure specifies a sheet of a workbook referenced by a formula (section 2.2.2) in a
revision as specified in the Formulas overview (section 2.2.2).
818 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
type (1 byte): An unsigned integer that specifies the sheet. MUST be a value from the following
table:
Value Meaning
0x00 Specifies a sheet on the same workbook. The tabid field specifies the
sheet.
0x01 Specifies a sheet on a different workbook. The sheet field specifies the
sheet.
0x02 Specifies the same sheet specified by the preceding RevItab.
0x03 Specifies a missing sheet.
tabid (2 bytes): An unsigned integer that specifies a sheet identifier in the current workbook. MUST
match a sheet identifier specified by RRTabId. This field MUST be present if and only if type is
0x00.
sheet (variable): A XLUnicodeString that specifies the sheet name. This field MUST be present if and
only if type is 0x01.
2.5.198.98 RevLblName
The RevLblName structure specifies the name of a defined name that is referenced by a formula in
a revision as specified in the Formulas overview (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iBuiltin st (variable)
...
iBuiltin (1 byte): An unsigned integer that specifies whether the defined name is a built-in name,
and if so, which built-in name it is. The value MUST be from the following table:
Value Meaning
0x00 This is not a built-in name.
0x01 Consolidate_Area
0x02 Auto_Open
0x03 Auto_Close
0x04 Extract
0x05 Database
0x06 Criteria
0x07 Print_Area
0x08 Print_Titles
819 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x09 Recorder
0x0A Data_Form
0x0B Auto_Activate
0x0C Auto_Deactivate
0x0D Sheet_Title
0x0E _FilterDatabase
st (variable): If iBuiltin is 0x00, then st is an XLNameUnicodeString that specifies the name of the
defined name. Otherwise, st is an XLUnicodeString and the name of the defined name is specified
as the concatenation of built-in name specified by iBuiltin and st. The concatenated string MUST
match grammar specified for XLNameUnicodeString.
2.5.198.99 RevName
The RevName structure specifies a defined name referenced by a formula (section 2.2.2) in a
revision as specified in the Formulas overview (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
book (variable)
...
...
externName (variable)
...
book (variable): Specifies the workbook based on the value of the first byte, according to the
following table:
Value Meaning
0x01 Specifies the current workbook. This field is two bytes in size. The
second byte MUST be 0x02.
Any value except 0x01 This field is a VirtualPath that specifies the workbook.
fExtern (1 byte): A Boolean (section 2.5.14) that specifies whether the defined name is defined in
the current workbook. MUST be 0x00 if the first byte of book is 0x01, and 0x01 otherwise.
name (variable): A RevNameTabid that specifies the name and the scope of the defined name. This
field MUST be present if and only if fExtern is 0x00.
externName (variable): A RevNamePly that specifies the name and the scope of the defined name.
This field MUST be present if and only if fExtern is 0x01.
820 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.198.100 RevNamePly
The RevNamePly structure specifies a defined name in an external workbook that is referenced by
a formula (section 2.2.2) in a revision as specified in the Formulas overview (section 2.2.2), and the
sheet on which it is defined.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sheet (variable)
...
name (variable)
...
sheet (variable): A RevSheetName that specifies the sheet on which the defined name is defined.
2.5.198.101 RevNameTabid
The RevNameTabid structure specifies a non-external defined name that is referenced by a formula
(section 2.2.2) in a revision as specified in the Formulas overview (section 2.2.2).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
tabid (2 bytes): An unsigned integer that specifies the scope of the defined name. The value MUST
be from the following table:
Value Meaning
0xFFFF Specifies that the scope is the entire workbook.
Greater than or equal to 1 and Specifies that the scope is a sheet from the workbook. The value is a
less than 0xFFFF sheet identifier which MUST match a sheet identifier specified by
RRTabId in the Globals Substream.
name (variable): A RevLblName that specifies the name of the defined name.
2.5.198.102 RevSheetName
The RevSheetName structure specifies the sheet or workbook on which a defined name is
defined, for a defined name that is referenced by a formula (section 2.2.2) in a revision as specified in
the Formulas overview (section 2.2.2).
821 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sheet (variable)
...
sheet (variable): A XLUnicodeString that specifies the name of the sheet. The length of the string
MUST be less than or equal to 31 characters. This field specifies the entire workbook if the length
of the string is zero.
2.5.198.103 RgbExtra
The RgbExtra structure specifies a set of structures, laid out sequentially in the file, that correspond
to and MUST exist for certain Ptgs in the Rgce. The order of the structures MUST be the same as the
order of the Ptgs in the Rgce that they correspond to.
PtgMemArea PtgExtraMem
PtgElfRadicalS PtgExtraElf
PtgElfColS PtgExtraElf
PtgElfColSV PtgExtraElf
The following Ptgs MUST have a corresponding structure in an RgbExtra if and only if the formula
(section 2.2.2) containing that Ptg is part of a revision as specified in the Formulas overview (section
2.2.2).
PtgNameX RevName
PtgRef3d RevExtern
PtgRefErr3d RevExtern
PtgArea3d RevExtern
PtgAreaErr3d RevExtern
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgb (variable)
...
822 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgb (variable): An array that contains the sequence of these structures.
2.5.198.104 Rgce
The Rgce structure specifies a set of Ptgs, laid out sequentially in the file.
Ptg ACTUAL_PTG_SIZE
PtgStr 1 + (stringsize + 1) * 2
where stringsize is the string.cch field of the PtgStr structure
PtgArray 15
PtgRef 7
PtgArea 13
PtgRefErr 7
PtgAreaErr 13
PtgRefN 7
PtgAreaN 13
PtgRef3d 9
PtgArea3d 15
PtgRefErr3d 9
PtgAreaErr3d 16
operand = PtgMissArg / PtgStr / PtgErr / PtgBool / PtgInt / PtgNum / PtgArray / PtgName / PtgRef
/ PtgArea / PtgRefErr / PtgAreaErr / PtgRefN / PtgAreaN / PtgNameX / PtgRef3d / PtgArea3d
/ PtgRefErr3d / PtgAreaErr3d / PtgElfLel / PtgElfRw / PtgElfCol / PtgElfRwV / PtgElfColV
/ PtgElfRadical PtgArea / PtgElfRadical PtgAreaErr / PtgElfRadicalS PtgArea /
PtgElfRadicalS PtgAreaErr / PtgElfColS / PtgElfColSV / PtgElfRadicalLel PtgArea /
PtgElfRadicalLel PtgAreaErr / PtgSxName
823 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unary-expression = val unary-operator
The value of the type field of a PtgAttrSpace MUST be between 2 and 5 inclusive.
The cce field in the Ptg of the mem-ptg rule MUST be equal to the EXPRESSION_SIZE of the Ptgs
that comprise the binary-reference-expression.
The params-fixed element MUST NOT be specified if PtgFunc specifies a function that takes no
parameters. Otherwise, it MUST conform to the ABNF rule for the function specified by PtgFunc.
The value of the offset field in the PtgAttrIf MUST be equal to the EXPRESSION_SIZE of all Ptgs in
the if-expression after the PtgAttrIf through the first PtgAttrGoto.
The value of the offset field in each PtgAttrGoto MUST be equal to one less than the
EXPRESSION_SIZE of all Ptgs remaining in the if-expression after that PtgAttrGoto.
The value of the fCeFunc field of the PtgFuncVar MUST be zero. The value of the tab field of the
PtgFuncVar MUST be 0x0001, which represents the IF function.
The value of the cOffset field in the PtgAttrChoose MUST be equal to the number of times the
expression in the repeated sequence group appears.
824 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The first offset in the array of offsets in the rgOffset field in the PtgAttrChoose MUST be equal to
four less than the size of the PtgAttrChoose in bytes.
For the nth occurrence of the repeated sequence group, the (n+1)th offset in the array of offsets in
the rgOffset field in the PtgAttrChoose MUST be equal to the EXPRESSION_SIZE of all Ptgs in the
choose-expression after the PtgAttrChoose through the nth PtgAttrGoto.
The value of the offset field in each PtgAttrGoto MUST equal one less than the EXPRESSION_SIZE
of all Ptgs remaining in the choose-expression after that PtgAttrGoto.
The value of the fCeFunc field of the PtgFuncVar MUST be zero. The value of the tab field of the
PtgFuncVar MUST be 0x0064, which represents the CHOOSE function.
val = expression
Additional restrictions are specified under VALUE_TYPE. The params-fixed, params-variable and
params-cetab rules also use val.
ref = expression
Additional restrictions are specified under VALUE_TYPE. The params-fixed, params-variable and
params-cetab rules also use ref.
If the value of the useselfs field of the UsesELFs record is zero then an Rgce MUST NOT contain
PtgElfLel, PtgElfRw, PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS, PtgElfColS,
PtgElfColSV, and PtgElfRadicalLel.
Additional restrictions on the contents of this structure are specified in terms of a parse tree. For this
purpose, a parse tree is a means of organizing the components of an Rgce. Each node in the parse
tree represents a Ptg or an ABNF rule described previously. Non-leaf nodes represent rules and have
one child node for each element in the rule. Leaf nodes represent only a Ptg.
For a leaf node in the parse tree, NESTING_DEPTH is the number of function-call nodes in the path
from the root node to that leaf.
The OPERAND_COUNT of each Ptg appearing in the operand rule definition is one.
The OPERAND_COUNT of a node that has n child nodes with nonzero OPERAND_COUNT is equal to
the maximum, across all the n child nodes, of (n-1) plus the OPERAND_COUNT of the nth child that
has nonzero OPERAND_COUNT.
For a node in the parse tree, VALUE_TYPE is a state indicating that the node represents a single value
of a simple type or an array of such values. A node that is not a VALUE_TYPE represents a reference
to a range. Elements in an expression MUST represent either values or references, based on the
specific Ptgs used in the expression. The following rules specify how to traverse the parse tree from
the bottom up and determine whether each node is a VALUE_TYPE, which determines whether the
sequence of Ptgs comprising the formula correctly satisfies the requirements of each expression in the
formula. A node is determined to be a VALUE_TYPE as follows:
Leaf nodes:
PtgMissArg, PtgStr, PtgSxName, PtgErr, PtgBool, PtgInt, PtgNum, PtgArray, PtgRefErr, PtgAreaErr,
PtgRefErr3d, PtgAreaErr3d, PtgElfLel, PtgElfRwV, PtgElfColV, PtgElfColSV, PtgElfRadicalLel,
825 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
PtgUplus, PtgUminus, PtgPercent, PtgAdd, PtgSub, PtgMul, PtgDiv, PtgPower, PtgConcat, PtgLt,
PtgLe, PtgEq, PtgGe, PtgGt, and PtgNe leaf nodes are VALUE_TYPEs.
Non-leaf nodes:
Any non-leaf node with a single child node MUST be a VALUE_TYPE if and only if the child node is
a VALUE_TYPE.
Otherwise, a non-leaf node with an expression child node is a VALUE_TYPE if and only if that
expression child node is a VALUE_TYPE.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
sequence (variable)
...
2.5.198.105 RgceArea
The RgceArea structure specifies a reference to a rectangular range of cells where relative
references are stored as coordinates.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rowFirst rowLast
columnFirst columnLast
rowFirst (2 bytes): An RwU that specifies the row number of the first row of the rectangular range
of cells.
rowLast (2 bytes): An RwU that specifies the row number of the last row of the rectangular range
of cells.
826 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
columnFirst (2 bytes): A ColRelU that specifies the column number of the first column of the
rectangular range of cells and relative reference information.
columnLast (2 bytes): A ColRelU that specifies the column number of the last column of the
rectangular range of cells and relative reference information.
2.5.198.106 RgceAreaRel
The RgceAreaRel structure specifies a rectangular range of cells where the relative portions of
relative references are specified as offsets from the cell in which the formula (section 2.2.2) is
evaluated.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rowFirst rowLast
columnFirst columnLast
rowFirst (2 bytes): An RwU that specifies information about the first row of the cell reference. If
columnFirst.rowRelative is 0, then rowFirst specifies the first row coordinate of the cell
reference. If columnFirst.rowRelative is 1, then rowFirst specifies the first row as an offset
from the cell in which the formula is evaluated.
rowLast (2 bytes): An RwU that specifies information about the last row of the cell reference. If
columnLast.rowRelative is 0, then rowLast specifies the last row coordinate of the cell
reference. If columnLast.rowRelative is 1, then rowLast specifies the last row as an offset from
the cell in which the formula is evaluated.
columnFirst (2 bytes): A ColRelNegU that specifies information about the first row and column in
the range. If columnFirst.colRelative is 0, then columnFirst.col is an unsigned integer that
specifies the first column coordinate of the cell reference and MUST be less than 256. If
columnFirst.colRelative is 1, then columnFirst.col is a signed integer that specifies the first
column as an offset from the cell in which the formula is evaluated.
columnLast (2 bytes): A ColRelNegU that specifies information about the first row and column in
the range. If columnLast.colRelative is 0, then columnLast.col is an unsigned integer that
specifies the last column coordinate of the cell reference and MUST be less than 256. If
columnLast.colRelative is 1, then columnLast.col is a signed integer that specifies the last
column as an offset from the cell in which the formula is evaluated.
2.5.198.107 RgceElfLoc
The RgceElfLoc structure specifies a location of a cell that contains a label used in a natural
language formula to refer to a contiguous range of cells from the same row or column as the cell
with the label.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row column
row (2 bytes): An RwU that specifies the zero-based row coordinate of the cell.
827 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
column (2 bytes): A ColElfU that specifies the zero-based column coordinate of the cell and other
information about the cell reference.
2.5.198.108 RgceElfLocExtra
The RgceElfLocExtra structure specifies a single cell reference which specifies a part of a multiple-
cell natural language label. The cell is specified as the intersection of the given row and column.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row column
row (2 bytes): An RwU that specifies the row coordinate of the cell reference.
column (2 bytes): A ColRelU that specifies the column coordinate of the cell reference. The values
of column.colRelative and column.rowRelative MUST be ignored.
2.5.198.109 RgceLoc
The RgceLoc structure specifies a reference to a single cell where relative references are stored as
coordinates.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row column
row (2 bytes): An RwU that specifies the row coordinate of the cell reference.
column (2 bytes): A ColRelU that specifies the column coordinate of the cell reference and relative
reference information.
2.5.198.110 RgceLoc8
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgceLoc
reserved
2.5.198.111 RgceLocRel
The RgceLocRel structure specifies a single cell reference where the relative portions of relative
references are specified as offsets from the cell in which the formula (section 2.2.2) is evaluated.
828 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
row column
row (2 bytes): An RwU that specifies information about the row of the cell reference. If
column.rowRelative is 0, then row specifies the row coordinate of the cell reference. If
column.rowRelative is 1, then row specifies the row as an offset from the cell in which the
formula is evaluated. If the signed result of the offset is a row index less than 0x00000000 or
greater than 0x0000FFFF, the value is adjusted by 0x00010000 so that it will result in a valid row
index.
column (2 bytes): A ColRelNegU that specifies information about the row and column. If
column.colRelative is 0, then column.col is an unsigned integer that specifies the column
coordinate of the cell reference and MUST be less than 256. If column.colRelative is 1, then
column.col is a signed integer that specifies the column as an offset from the cell in which the
formula is evaluated. If the signed result of the offset is a column index less than 0x0000 or
greater than 0x00FF, the value is adjusted by 0x0100 so that it will result in a valid column index.
2.5.198.112 SerAr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
blob (variable)
...
blob (variable): A structure that specifies a cell value. MUST be one of the following structures:
SerNil, SerNum, SerStr, SerBool, or SerErr. The structure is specified by the first byte, which is
the reserved byte in each of those structures.
2.5.198.113 SerBool
The SerBool structure specifies a Boolean (section 2.5.14) value in an array of values.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... unused2
...
829 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused2 (4 bytes): Undefined and MUST be ignored.
2.5.198.114 SerErr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... unused2
...
2.5.198.115 SerNil
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved unused1
... unused2
...
2.5.198.116 SerNum
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved xnum
...
830 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
2.5.198.117 SerStr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
string (variable): An XLUnicodeString that specifies the string. The length of the string MUST be less
than 256 characters.
2.5.198.118 SharedParsedFormula
The SharedParsedFormula structure specifies the formula (section 2.2.2) for a shared formula.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
rgcb (variable)
...
cce (2 bytes): An unsigned integer that specifies the length of rgce in bytes. MUST be greater than
0.
rgce (variable): An Rgce that specifies the sequence of Ptgs for the formula. MUST NOT contain
PtgExp, PtgTbl, PtgSxName, PtgIsect, PtgUnion, PtgRange, PtgArray, PtgElfLel, PtgElfRw,
PtgElfCol, PtgElfRwV, PtgElfColV, PtgElfRadical, PtgElfRadicalS, PtgElfColS, PtgElfColSV,
PtgElfRadicalLel, PtgRefErr, PtgAreaErr, PtgRef3d, PtgArea3d, PtgRefErr3d, PtgAreaErr3d,
PtgNameX, PtgMemArea, PtgMemErr, PtgMemNoMem, or PtgMemFunc.
831 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
If this field contains a PtgFuncVar and the fCeFunc field of the PtgFuncVar is 0, then the tab field
of PtgFuncVar MUST NOT be 0x017B.
The root node of the parse tree of this field MUST be a VALUE_TYPE, as described in Rgce.
rgcb (variable): An RgbExtra that specifies ancillary data for the formula.
2.5.198.119 XtiIndex
XtiIndex is a 2-byte unsigned integer that specifies an XTI record. MUST be a value from the
following table:
Value Meaning
0xFFFF Specifies an invalid XTI.
Greater than or equal to zero and less than 0xFFFF Specifies a zero-based index of an XTI
structure in the array specified by the rgXTI
field of the ExternSheet record. The value
MUST be less than the cXTI field of the
ExternSheet record.
2.5.199 PBT
The PBT structure specifies information about a parameter in a query that retrieves external data
for a PivotTable or a query table. The values in this structure provide additional information about
the related ParamQry record as specified by the rgPbt field in the DBQueryExt record that contains
this structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
pbt A B reserved
pbt (3 bits): An unsigned integer that specifies the location of the parameter value. MUST be the
same as the pbt field in the related ParamQry record as specified by the rgPbt field in the
DBQueryExt record that contains this structure. MUST be a value from the following table:
Value Meaning
0x0 The user is prompted for the value of the parameter.
A - fAutoRefresh (1 bit): A bit that specifies whether the query refreshes when the parameter value
changes. If pbt is not equal to 0x2 then this bit MUST be zero, and MUST be ignored.
B - fNeedRefresh (1 bit): A bit that specifies that the parameter value changed and the query was
not refreshed. MUST be 0 if pbt is not equal to 0x2.
832 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.200 PhRuns
The PhRuns structure specifies a phonetic text run that is displayed above a text run.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ichFirst ichMom
cchMom
ichFirst (2 bytes): A signed integer that specifies the zero-based index of the first character of the
phonetic text run in the rphssub.st field of the ExtRst structure that contains this PhRuns
structure. MUST be greater than or equal to 0.
ichMom (2 bytes): A signed integer that specifies the zero-based index of the first character of the
text run in the rgb field of the XLUnicodeRichExtendedString that contains the ExtRst that
contains this PhRuns that corresponds to the phonetic text run specified in ichFirst. ichMom
specifies the location where the text run which phonetic text run specified in ichFirst applies to
begins. MUST be greater than or equal to 0.
cchMom (2 bytes): A signed integer that specifies the count of characters in the text run specified in
ichMom. MUST be greater than or equal to 0.
2.5.201 Phs
The Phs structure specifies the formatting information for a phonetic string.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ifnt A B unused
A - phType (2 bits): An unsigned integer that specifies the type of the phonetic information. MUST
be a value from the following table:
Value Meaning
0x0 Use narrow Katakana characters as phonetic string.
0x1 Use wide Katakana characters as phonetic string.
0x2 Use Hiragana characters as phonetic string.
0x3 Use any type of characters as phonetic string.
B - alcH (2 bits): An unsigned integer that specifies the alignment of the phonetic string. MUST be a
value from the following table:
Value Alignment
0x0 General alignment
0x1 Left aligned
0x2 Center aligned
0x3 Distributed alignment
833 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused (12 bits): Undefined and MUST be ignored.
2.5.202 PictFmlaEmbedInfo
The PictFmlaEmbedInfo structure specifies information about the embedded control associated with
the Obj record that contains the ObjFmla structure that contains this PictFmlaEmbedInfo. The
embedded control can be an ActiveX control, an OLE object or a camera picture control. The
pictFlags field of this Obj record specifies the type of embedded control.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cbClass (1 byte): An unsigned integer that specifies the length in bytes of the strClass field.
strClass (variable): An optional XLUnicodeStringNoCch structure that specifies the class name of the
embedded control associated with this Obj. This field MUST exist if and only if cbClass is nonzero.
2.5.203 PictFmlaKey
The PictFmlaKey structure specifies the runtime license key of the object and specifies the
reference to a cell that is linked to the picture Obj that contains this PictFmlaKey.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbKey
keyBuf (variable)
...
fmlaLinkedCell (variable)
...
fmlaListFillRange (variable)
...
cbKey (4 bytes): An unsigned integer that specifies the number of bytes in the keyBuf string<179>.
keyBuf (variable): An array of cbKey that specifies the license key for the ActiveX control. This
field is passed to a license-aware object creation method.
834 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fmlaLinkedCell (variable): An ObjFmla that specifies a reference to the range where the value of
the first cell is linked to the current selection in this picture control. An empty formula, where
fmlaLinkedCell.cbFmla equals zero, specifies there is no such cell linked to this picture control.
fmlaListFillRange (variable): An ObjFmla that specifies the range used to populate the content of
this picture control. The fmlaListFillRange.cbFmla field MUST be 0 unless there is a bindable
property (as specified in [MS-OAUT] section 2.2.49.5.2) in the typelib of the ActiveX control that
equals the GUID {0C733A7C-2A1C-11CE-ADE5-00AA0044773D}.
2.5.204 PivotCompProp
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
... reserved3
fCompare (1 byte): A Boolean (section 2.5.14) that specifies the type of string comparison.
Value Meaning
0x0000 This is a wildcard pattern match. For the purposes of comparisons, the characters "?" and "*" are used
as wildcards. A "?" refers to any single character, and a "*" refers to any number of characters.
2.5.205 PositionMode
The PositionMode structure specifies positioning mode for position information saved in a Pos record.
MDABS 0x0001 Absolute width and height in points. It can only be applied to the mdBotRt field of Pos.
MDPARENT 0x0002 Owner of Pos determines how to interpret the position data.
MDKTH 0x0003 Offset to default position, in 1/1000th of the plot area size.
2.5.206 ReadingOrder
835 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.207 Ref
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst rwLast
colFirst colLast
rwFirst (2 bytes): An unsigned integer that specifies the first zero-based row index in the range.
MUST be greater than or equal to the rwMic field of the Dimensions record and MUST be less than
the rwMac field of the Dimensions record. MUST be less than or equal to rwLast.
rwLast (2 bytes): An unsigned integer that specifies the last zero-based row index in the range.
MUST be greater than or equal to the rwMic field of the Dimensions record and MUST be less than
the rwMac field of the Dimensions record. MUST be greater than or equal to rwFirst.
colFirst (1 byte): A ColByte structure that specifies the first zero-based column index in the range.
MUST be less than or equal to colLast.
colLast (1 byte): A ColByte structure that specifies the last zero-based column index in the range.
MUST be greater than or equal to colFirst.
2.5.208 Ref8
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst rwLast
colFirst colLast
rwFirst (2 bytes): A Rwx structure that specifies the first row in the range. The field rwFirst.rw
MUST be less than or equal to rwLast.rw.
rwLast (2 bytes): A Rwx structure that specifies the last row in the range. The field rwLast.rw
MUST be greater than or equal to rwFirst.rw. If rwFirst.rw is 0 and rwLast.rw is 0xFFFF, the
specified range includes all the rows in the sheet.
colFirst (2 bytes): A Colx structure that specifies the first column in the range. The field colFirst.col
MUST be less than or equal to colLast.col.
836 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colLast (2 bytes): A Colx structure that specifies the last column in the range. The field colLast.col
MUST be greater than or equal to colFirst.col. If colFirst.col is 0 and colLast.col is 0xFF, the
specified range includes all the columns in the sheet.
2.5.209 Ref8U
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst rwLast
colFirst colLast
rwFirst (2 bytes): A RwU structure that specifies the zero-based index of the first row in the range.
The value MUST be less than or equal to rwLast.
rwLast (2 bytes): A RwU structure that specifies the zero-based index of the last row in the range.
The value MUST be greater than or equal to rwFirst.
colFirst (2 bytes): A ColU structure that specifies the zero-based index of the first column in the
range. The value MUST be less than or equal to colLast, and MUST be less than or equal to
0x00FF.
colLast (2 bytes): A ColU structure that specifies the zero-based index of the last column in the
range. The value MUST be greater than or equal to colFirst, and MUST be less than or equal to
0x00FF.
2.5.210 Ref8U2007
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst
rwLast
colFirst
colLast
rwFirst (4 bytes): An unsigned integer that specifies the zero-based index of the first row in the
range. The value MUST be less than or equal to rwLast and MUST be less than or equal to
0xFFFF.
rwLast (4 bytes): An unsigned integer that specifies the zero-based index of the last row in the
range. The value MUST be greater than or equal to rwFirst and MUST be less than or equal to
0xFFFF.
colFirst (4 bytes): An unsigned integer that specifies the zero-based index of the first column in the
range. The value MUST be less than or equal to colLast and MUST be less than or equal to
0x00FF.
837 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colLast (4 bytes): An unsigned integer that specifies the zero-based index of the last column in the
range. The value MUST be greater than or equal to colFirst and MUST be less than or equal to
0x00FF.
2.5.211 RefU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst rwLast
colFirst colLast
rwFirst (2 bytes): A RwU structure that specifies the first row in the range. The value MUST be less
than or equal to rwLast.
rwLast (2 bytes): A RwU structure that specifies the last row in the range.
colFirst (1 byte): A ColByteU structure that specifies the first column in the range. The value MUST
be less than or equal to colLast.
colLast (1 byte): A ColByteU structure that specifies the last column in the range.
2.5.212 RevisionType
RevisionType is an integer that specifies the type of revision record. The value MUST be one of the
following:
838 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.213 RFX
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rwFirst
rwLast
colFirst
colLast
rwFirst (4 bytes): A Rw12 that specifies the first row in the range. The value of rwFirst.rw MUST
be less than or equal to rwLast.rw.
rwLast (4 bytes): A Rw12 that specifies the last row in the range. The value of rwLast.rw MUST be
greater than or equal to rwFirst.rw.
colFirst (4 bytes): A Col12 that specifies the first column in the range. The value of colFirst.col
MUST be less than or equal to colLast.col.
colLast (4 bytes): A Col12 that specifies the last column in the range. The value of colLast.col
MUST be greater than or equal to colFirst.col.
2.5.214 RichTextStreamChecksumData
The RichTextStreamChecksumData structure specifies the data used to compute the checksum of
the RichTextStream record. This data can be obtained from Text record, FontX record, Font record,
BRAI record, and ObjectLink record associated with the RichTextStream record, as specified in
RichTextStream. If no Text record is associated with the RichTextStream record, the Text record
associated with the DefaultText record MUST be used. If no Font record is associated with the
RichTextStream record, the first Font record specified in the global substream MUST be used.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fibFontInformation (variable)
...
A B C bTextRotation D E F G H I J K L bSeriesIdentifier
839 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
M N O bTextFormat StText (variable)
...
fibFontInformationArray (variable)
...
A - fAutoSize (1 bit): A bit that specifies whether the font size is automatic. MUST be equal to 1 if
the value of the iFont field of the related FontX record is 0. Otherwise, MUST be equal to 0. If no
FontX record is associated with the RichTextStream record, MUST be equal to 0.
B - fAutoColor (1 bit): A bit that specifies whether the foreground text color is determined
automatically. MUST be equal to the value of the fAutoColor field of the related Text record.
C - fAutoMode (1 bit): A bit that specifies if the background color is determined automatically. MUST
be equal to the value of the fAutoMode field of the related Text record.
bTextRotation (8 bits): An unsigned integer that specifies the text rotation. MUST be equal to the
value of the trot field of the related Text record.
F - iReadingOrder (2 bits): An unsigned integer that specifies the text reading order. MUST be
equal to the value of the iReadingOrder field of the related Text record.
H - fAttached (1 bit): A bit that specifies whether the text position is absolute or attached. If the
RichTextStream record is contained in the sequence of records that conforms to the LD rule, this
field MUST be 1. If the RichTextStream is not contained in the LD rule, and the dlp field of the
associated Text record is set to 0xA, this field MUST be 1. Otherwise, it MUST be 0.
I - fUserPos (1 bit): A bit that specifies whether the text position is automatic. If the value is 0, the
text position is automatic. If the dlp field of the associated Text record is set to 0xA, this field
MUST be 1. Otherwise, it MUST be 0.
J - bObjectType (4 bits): An unsigned integer that specifies the object type. Based on the record the
RichTextStream is associated with, the value MUST be from the following table:
840 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Record associated with
RichTextStream Value Meaning
Axis where wType is 0x0003 0x7 Attached label of the series axis.
Second Axis record where 0x8 Attached label of the value axis (or
wType is 0x0001 the vertical value axis) in the
secondary axis group.
Second Axis record where 0x9 Attached label of the category (2)
wType is 0x0000 axis (or the horizontal value axis) in
the secondary axis group.
DataTable 0xB Attached label of the chart
DataTable.
YMult 0xC Attached label of the axis multiplier.
K - fBuildable (1 bit): A bit that specifies whether the text value of the Text record associated with
the RichTextStream is automatically generated and unchanged. MUST be equal to the value of the
fAutoText field of the related Text record.
bSeriesIdentifier (8 bits): An unsigned integer that specifies the zero-based index of the Series
record of the current chart to which the attached label is attached.
N - fReference (2 bits): An unsigned integer that specifies the type of data that is being referenced.
MUST be equal to the value of the rt field of the BRAI record associated with the RichTextStream.
O - stSource (4 bits): An unsigned integer that specifies the part of the series, trendline, or error
bars the referenced data of the BRAI record associated with the RichTextStream specifies. MUST
be equal to the value of the id field of the BRAI record associated with the RichTextStream.
bTextFormat (8 bits): An IFmt that specifies the number formatting used for the data. MUST be
equal to the value of the ifmt field of the BRAI record associated with the RichTextStream.
StText (variable): An array of Unicode characters that contains the text content of the rich text.
This field only takes the text content into consideration and ignores the size and header fields of
the text string. If the RichTextStream is associated with a BRAI record, the text value MUST
correspond to the text value identified by the BRAI record. If the RichTextStream record is
associated with an ObjectLink record, the text value MUST correspond to the text value identified
by the ObjectLink record.
2.5.215 RichTextStreamChecksumFontInformation
841 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stFontName (variable)
...
dwFontHeight
A B C D E F G H I J K reserved1 boldness
... dwDrawingMode
...
stFontName (variable): An array of Unicode characters that contains the font name. MUST be the
font name specified by the fontName field of the related Font record.
dwFontHeight (4 bytes): An unsigned integer that specifies the font height. MUST equal the value
specified by the dyHeight field of the related Font record.
A - fBold (1 bit): A bit that specifies whether the font is bold. The value of this field MUST be 1 when
the value of the bls field of the associated Font record is greater than 400.
B - fItalic (1 bit): A bit that specifies whether the font is italic. MUST equal the value specified by the
fItalic field of the related Font record.
C - fUnderline (1 bit): A bit that specifies whether the font is single-underlined. The value of this
field MUST be 1 when the value of the uls field of the associated Font record is not equal to 0x00.
D - fOutline (1 bit): A bit that specifies whether the font has an outline effect applied. MUST equal
the value specified by the fOutline field of the related Font record.
E - fShadow (1 bit): A bit that specifies whether the font has a shadow effect applied. MUST equal
the value specified by the fShadow field of the related Font record.
F - fCondense (1 bit): A bit that specifies whether the font is condensed. MUST equal the value
specified by the fCondense field of the related Font record.
G - fExtend (1 bit): A bit that specifies whether the font is extended. MUST equal the value specified
by the fExtend field of the related Font record
H - fStrikeout (1 bit): A bit that specifies whether the font has strikethrough formatting applied.
MUST equal the value specified by the fStrikeOut field of the related Font record.
I - fRegular (1 bit): A bit that specifies whether the font is a regular font. MUST equal 1.
J - fJon (1 bit): A bit that specifies whether the font is too small to be displayed. MUST equal 1 if the
font height in pixels is less than 6.
K - fDialogBox (1 bit): A bit that specifies whether the font is used in the context of a dialog box.
MUST equal 0.
842 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved1 (5 bits): MUST be zero, and MUST be ignored.
boldness (2 bytes): An unsigned integer that specifies the font weight. MUST equal the value
specified by the bls field of the related Font record.
subscript (2 bytes): An unsigned integer that specifies whether superscript, subscript, or normal
script is used. MUST equal the value specified by the sss field of the related Font record.
bUnderline (1 byte): An unsigned integer that specifies the underline style. MUST equal the value
specified by the uls field of the related Font record.
bFamily (1 byte): An unsigned integer that specifies the font family of this font. MUST equal the
value specified by the bFamily field of the related Font record.
bCharset (1 byte): An unsigned integer that specifies the character set. MUST equal the value
specified by the bCharSet field of the related Font record.
rgbFontColor (4 bytes): A LongRGB that specifies the font color. MUST equal the color specified by
the icv field of the related Font record.
dwDrawingMode (4 bytes): An unsigned integer that specifies the display mode of the background
of the text. MUST be equal to 0x0000010D when the wBkgMode field of the related Text record is
equal to 0x0001; otherwise, it MUST be equal to 0x0000020D.
2.5.216 RichTextStreamChecksumFontInformationArrayItem
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
iIndex (2 bytes): An unsigned integer that specifies a zero-based index of the character within the
StText field of the containing RichTextStreamChecksumData structure where the text formatting
specified in fibFontInformation begins.
2.5.217 RkNumber
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B num
A - fX100 (1 bit): A bit that specifies whether num is the value of the RkNumber or 100 times the
value of the RkNumber. MUST be a value from the following table:
843 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0 The value of RkNumber is the value of num.
1 The value of RkNumber is the value of num divided by 100.
num (30 bits): A variable type field whose type and meaning is specified by the value of fInt, as
defined in the following table:
2.5.218 RkRec
The RkRec structure contains the numeric data in an application-specific internal type for optimizing
disk and memory space along with the corresponding IXFCell to the style record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ixfe RK
...
ixfe (2 bytes): An IXFCell that specifies the format of the numeric value.
2.5.219 RPHSSub
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
crun cch
st (variable)
...
crun (2 bytes): An unsigned integer that specifies the number of phonetic text runs. MUST be less
than or equal to 32767. If crun is zero, there is one phonetic text run.
cch (2 bytes): An unsigned integer that specifies the number of characters in the phonetic string.
MUST be less than or equal to 32767.
st (variable): An LPWideString that specifies the phonetic string. The character count in the string
MUST be cch.
844 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.220 RRD
The RRD structure specifies the revision record information used to track changes in a shared
workbook.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbMemory
revid
revt A B C D reserved
tabid
cbMemory (4 bytes): An unsigned integer that specifies the size in bytes of the corresponding
revision record structure in memory. This is different from the size of the structure written to the
file. The value MUST be greater than or equal to 26. MUST be ignored if the current record is
RRDHead.
revid (4 bytes): A signed integer that specifies the revision identifier of the revision records. This
identifier is used to keep track of the order of revision records. MUST be greater than or equal to
0.
A - fAccepted (1 bit): A bit that specifies whether this revision was reviewed and accepted.
B - fUndoAction (1 bit): A bit that specifies whether the revision occurred because of an undo
action.
D - fDelAtEdgeOfSort (1 bit): A bit that specifies whether the row or column that is being deleted is
at the edge of a sorted range. If the value is 1, the current record MUST be RRDInsDel and revt
MUST be equal to REVTINSRW or REVTINSCOL or REVTDELRW or REVTDELCOL.
tabid (2 bytes): A TabId that specifies the sheet where the revision occurred. If the value is 0xFFFF,
this revision does not correspond to a specific sheet.
2.5.221 RRDDefNameFlags
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
C D E F G reserved
845 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cce (2 bytes): An unsigned integer that specifies the length of a formula (section 2.2.2) in
RRDDefName.
A - fPli (1 bit): A bit that specifies that one or more of the fields stDescription, stHelpTopic,
stCustomMenu, stStatusText, stDescriptionOld, stHelpTopicOld, stCustomMenuOld or
stStatusTextOld specified in the RRDDefName record MUST NOT be empty.
B - fFunc (1 bit): A bit that specifies whether the RRDDefName record specifies a name that refers to
a function.
fGrp (6 bits): An unsigned integer that specifies the function category for the defined name.
MUST be a value from the following table:
Value Category
0 All
1 Financial
2 Date Time
3 Math Trigonometry
4 Statistical
5 Lookup
6 Database
7 Text
8 Logical
9 Info
10 Commands
11 Customize
12 Macro Control
13 DDE External
14 User Defined
chKey (8 bits): An unsigned integer that specifies the shortcut key. MUST have same restrictions as
the chKey field from the Lbl record.
C - fHidden (1 bit): A bit that specifies whether the defined name is hidden.
D - fCustomMenu (1 bit): A bit that specifies whether the stCustomMenu field from the
RRDDefName record is not empty.
E - fDescription (1 bit): A bit that specifies whether the stDescription field from the RRDDefName
record is not empty.
F - fHelpTopic (1 bit): A bit that specifies whether the stHelpTopic field from the RRDDefName
record is not empty.
G - fStatusText (1 bit): A bit that specifies whether the stStatusText field from the RRDDefName
record is not empty.
846 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.222 RRLoc
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
rw (2 bytes): A RwU structure that specifies the zero-based index of the row.
col (2 bytes): A ColElfU structure that specifies the zero-based index of the column and other
information about this cell reference.
2.5.223 RTDEItem
The RTDEItem structure specifies the cell associated with an RTD topic.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
itab
col (2 bytes): A Col structure that specifies the column index of the cell.
itab (2 bytes): A TabIndex structure that specifies the sheet containing the cell.
2.5.224 RTDOper
The RTDOper structure specifies the variant data returned from an RTD server for real-time data
(RTD).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
grbit
rtdVt (variable)
...
grbit (4 bytes): An unsigned integer that specifies the type of the variant data stored in rdtVt. MUST
be a value from the following table:
847 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value rtdVt Data Type Meaning
0x00000010 Signed integer The returned variant is a 4-byte signed integer
indicating an error code.
0x00000800 Signed integer The returned variant is a 4-byte signed integer used
for purposes other than an error code.
0x00001000 RTDOperStr The returned variant is a RTDOperStr. MUST be
greater than or equal to 256 characters long.
rtdVt (variable): A structure that contains the variant data. The meaning of the data depends on the
specific RTD server. The type of the variant data is specified by grbit.
2.5.225 RTDOperStr
The RTDOperStr structure specifies a string used in a real-time data (RTD) variant data structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cchRTDOperStr
rgchRTDOperStr (variable)
...
2.5.226 Run
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
formatRun
unused1 unused2
2.5.227 Rw
848 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (2 bytes): An unsigned integer that specifies the zero-based row index of a row in the sheet that
contains this structure. MUST be greater than or equal to the rwMic field of the Dimensions record
of the sheet that contains this structure and MUST be less than the rwMac field of the Dimensions
record of the sheet that contains this structure.
2.5.228 Rw12
The Rw12 structure specifies the zero-based row index of a row in a sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (4 bytes): A signed integer that specifies a zero-based row index of the sheet. MUST be greater
than or equal to zero and MUST be less than or equal to 0x0FFFFF.
2.5.229 RwLongU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (4 bytes): An unsigned integer that specifies the zero-based index of a row in the sheet that
contains this structure. MUST be less than or equal to 0x0000FFFF.
2.5.230 RwU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (2 bytes): An unsigned integer that specifies the zero-based index of a row in the sheet that
contains this structure.
2.5.231 Rwx
The Rwx structure specifies the zero-based row index of a row in a sheet.
849 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (2 bytes): An unsigned integer that specifies the zero-based row index of a row in the sheet that
contains this structure. MUST be 0, 0xFFFF, or greater than or equal to the rwMic field of the
Dimensions record of the sheet that contains this structure and less than the rwMac field of the
Dimensions record of the sheet that contains this structure.
2.5.232 Script
2.5.233 SD_SetSortOrder
The SD_SetSortOrder enumeration specifies the types of MDX set metadata sorting orders.
SSONATURALASC 0x05 Ascending order by the natural order of the data, for example, by a key
SSONATURALDESC 0x06 Descending order by the natural order of the data, for example, by a key
2.5.234 SDContainer
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cbSD
sd (variable)
...
850 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cbSD (4 bytes): An unsigned integer that specifies the size of the sd field in bytes. MUST be greater
than 20.
2.5.235 SecurityDescriptor
2.5.236 ShapePropsStreamChecksumData
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
linePropertiesForChecksum
...
interiorColorPropertiesForChecksum
...
...
When the ShapePropsStream record and LineFormat record exist in a chart group but not in a
sequence of records that conforms to the LD rule or a sequence of records that conforms to the
DROPBAR rule;
When the ShapePropsStream record and LineFormat record exist in a sequence of records that
conforms to the FRAME rule;
When the ShapePropsStream record and LineFormat record exist in a sequence of records that
conforms to the DROPBAR rule;
When the ShapePropsStream record and LineFormat record exist in a sequence of records that
conforms to the AXS rule;
When the ShapePropsStream record and LineFormat record exist in a sequence of records that
conforms to the SS rule and the wObjContext field of the ShapePropsStream record is 0x0000;
interiorColorPropertiesForChecksum (9 bytes): An
InteriorColorPropertiesForShapePropsStreamChecksum that specifies the interior color data used
851 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
to compute the checksum of the ShapePropsStream record. This field MUST be present in the
following scenarios:
When the ShapePropsStream record and AreaFormat record exist in sequence of records that
conforms to the FRAME rule and the fAuto field of the AreaFormat record is 0x0 and the GelFrame
record does not exist in the sequence of records;
When the ShapePropsStream record and AreaFormat record exist in a sequence of records that
conforms to the DROPBAR rule and the fAuto field of the AreaFormat record is 0x0 and the
GelFrame record does not exist in the sequence of records;
When the ShapePropsStream record and AreaFormat record exist in a sequence of records that
conforms to the AXS rule and the wObjContext field of the ShapePropsStream record is 0x0003
and the fAuto field of the AreaFormat record is 0x0 and the GelFrame record does not exist in the
sequence of records;
When the ShapePropsStream record and AreaFormat record exist in a sequence of records that
conforms to the SS rule and the fAuto field of the AreaFormat record is 0x0 and the GelFrame
record does not exist in the sequence of records and the wObjContext field of the
ShapePropsStream record is 0x0000;
When the ShapePropsStream record, AreaFormat record, and MarkerFormat record exist in a
sequence of records that conforms to the SS rule and the GelFrame record does not exist in the
sequence of records and the wObjContext field of the ShapePropsStream record is 0x0001.
When the ShapePropsStream record, AreaFormat record, and GelFrame record exist in a sequence
of records that conforms to the FRAME rule and the fAuto field of the AreaFormat record is 0x0;
When the ShapePropsStream record, AreaFormat record, and GelFrame record exist in a sequence
of records that conforms to the DROPBAR rule and the fAuto field of the AreaFormat record is 0x0;
When the ShapePropsStream record, AreaFormat record, and GelFrame record exist in a sequence
of records that conforms to the AXS rule and the wObjContext field of the ShapePropsStream
record is 0x0003 and the fAuto field of the AreaFormat record is 0x0;
When the ShapePropsStream record, AreaFormat record, and GelFrame record exist in a sequence
of records that conforms to the SS rule and the fAuto field of the AreaFormat record is 0x0 and
the wObjContext field of the ShapePropsStream record is 0x0000;
When the ShapePropsStream record, AreaFormat record, MarkerFormat record, and GelFrame
record sequence of records that conforms to the SS rule and the fAuto field of the AreaFormat
record is 0x0 and the wObjContext field of the ShapePropsStream record is 0x0001.
2.5.237 SharedFeatureType
Specifies the enhanced protection type. A Shared Feature of this type is used to
ISFPROTECTION 0x0002 protect a shared workbook by restricting access to the areas of the workbook
and to the available functionality.
852 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
Specifies the ignored formula errors type. A Shared Feature of this type is used to
ISFFEC2 0x0003
specify the formula errors to be ignored.
Specifies the smart tag type. A Shared Feature of this type is used to recognize
ISFFACTOID 0x0004 certain types of entries (for example, proper names, dates/times, financial
symbols) and flag them for action.
Specifies the list type. A Shared Feature of this type is used to describe a table
ISFLIST 0x0005
within a sheet.
2.5.238 SheetExtOptional
The SheetExtOptional structure specifies sheet specific data including sheet tab color and the
published state of this sheet.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icvPlain12 A B reserved
...
...
icvPlain12 (7 bits): An unsigned integer that specifies the tab color of this sheet. If the tab has a
color assigned to it, the value of this field MUST be greater than or equal to 0x08 and less than or
equal to 0x3F, as specified in the color table for Icv. If this value does not equal to icvPlain of the
associated SheetExt, the value of icvPlain takes precedence. If the tab has no color assigned to
it, the value of this field MUST be 0x7F, and MUST be ignored.
A - fCondFmtCalc (1 bit): A bit that specifies whether conditional formatting formulas are
evaluated. MUST be one of the following:
Value Meaning
0 Conditional formatting formulas in this workbook
are not evaluated.
1 Conditional formatting formulas in this workbook are
evaluated.
B - fNotPublished (1 bit): A bit that specifies whether this sheet is published. MUST be ignored
when this sheet is a chart sheet, dialog sheet, or macro sheet. MUST be a value from the following
table:
Value Meaning
0 The sheet is published.
1 The sheet is not published.
853 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
color (16 bytes): A CFColor that specifies the tab color. Used only when the tab color was not
modified by earlier versions of the application.
2.5.239 ShortDTR
The ShortDTR structure specifies date and time. The year, month, and day values MUST be
consistent with the Gregorian calendar.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
year (2 bytes): An unsigned integer that specifies the year. MUST be greater than or equal to 1900
and less than or equal to 9999.
month (1 byte): An unsigned integer that specifies the month. MUST be greater than or equal to 1
and less than or equal to 12.
day (1 byte): An unsigned integer that specifies the day. MUST be greater than or equal to 1 and
less than or equal to 31.
hour (1 byte): An unsigned integer that specifies the hour. MUST be greater than or equal to 0 and
less than or equal to 23.
minute (1 byte): An unsigned integer that specifies the minute. MUST be greater than or equal to 0
and less than or equal to 59.
second (1 byte): An unsigned integer that specifies the second. MUST be greater than or equal to 0
and less than or equal to 59.
weekday (1 byte): An unsigned integer that specifies the weekday. The value MUST be one of the
following:
Value Meaning
0 The weekday is not specified.
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
7 Sunday
2.5.240 ShortXLUnicodeString
854 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
...
cch (1 bytes): An unsigned integer that specifies the count of characters in the string.
A - fHighByte (1 bit): A bit that specifies whether the characters in rgb are double-byte characters.
MUST be a value from the following table:
Value Meaning
0x0 All the characters in the string have a high byte of 0x00 and only the low bytes are in
rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
rgb (variable): An array of bytes that specifies the characters. If fHighByte is 0x0, the size of the
array MUST be equal to the value of cch. If fHighByte is 0x1, the size of the array MUST be equal to
the value of cch*2.
2.5.241 SLCO8
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw col
rw (2 bytes): A RwU structure that specifies the zero-based index of the row of the cell.
col (2 bytes): A ColSlco8U structure that specifies the zero-based index of the column of the cell and
other information about this cell reference.
2.5.242 SortCond12
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
855 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cchSt
stSslist (variable)
...
sortOn (4 bits): An unsigned integer that specifies the kind of sort to perform. MUST be a value
listed in the Sort On Value column in the table for condData.
rfx (16 bytes): An RFX that specifies the sort range of cells on the sheet.
condData (variable): A structure that specifies the conditional data information. The data type of
this structure depends on the value of the sortOn field and MUST be a value from the following
table:
cchSt (4 bytes): A signed integer that specifies the character count in stSslist. MUST be greater
than or equal to zero. MUST be zero and ignored if sortOn is not equal to zero.
stSslist (variable): An XLUnicodeStringNoCch that specifies the custom sort list string. It exists only
if cchSt is greater than zero.
2.5.243 SortItem
The SortItem structure specifies the sort mapping from the old row/column index (before sort action)
to the new row/column index (after sort action). An array of these structures is contained within a
RRSort record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iNewIndex
iOldIndex
iNewIndex (4 bytes): An unsigned integer that specifies the new zero-based index of row or
column. If the fCol field of the RRSort record that contains this structure is zero, then this value is
a zero-based row index and MUST be within the range of rows specified in the ref8 field of the
RRSort record that contains this structure. If the fCol field of the RRSort record that contains this
structure is 1, then this value is a zero-based column index and MUST be within the range of
columns specified in the ref8 field of the RRSort record that contains this structure.
iOldIndex (4 bytes): An unsigned integer that specifies the old zero-based index of row or column.
If the fCol field of the RRSort record that contains this structure is zero, then this value is a zero-
856 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
based row index and MUST be within the range of rows specified in the ref8 field of the RRSort
record that contains this structure. If the fCol field of the RRSort record that contains this
structure is 1, then this value is a zero-based column index and MUST be within the range of
columns specified in the ref8 field of the RRSort record that contains this structure.
2.5.244 SourceType
2.5.245 SQElfFlags
The SQElfFlags structure specifies additional undo data associated with a natural language
formula.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cLoc A B
cLoc (30 bits): An unsigned integer that specifies the number of elements in the rgloc field of the
Duce structure that contains this structure. MUST be greater than or equal to 0x000000002 and
less than or equal to 0x3FFFFFFF.
B - fRel (1 bit): A bit that specifies whether relative references are used.
2.5.246 SqRef
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cref (2 bytes): An unsigned integer that specifies the number of elements in rgrefs. MUST be less
than or equal to 0x2000.
rgrefs (variable): An array of Ref8 structures. The number of elements in the array MUST be equal
to cref.
857 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.247 SqRefU
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
cref (2 bytes): An unsigned integer that specifies the number of elements in rgrefs. MUST be less
than or equal to 0x2000.
rgrefs (variable): An array of Ref8U structures. The number of elements in the array MUST be equal
to cref.
2.5.248 Stxp
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
twpHeight
ts
bls sss
twpHeight (4 bytes): A signed integer that specifies the height of the font in twips. This value
MUST be -1, 0, or between 20 and 8191. This value SHOULD NOT<181> be 0. A value of -1
specifies that this field is to be ignored.
bls (2 bytes): A signed integer that specifies the font weight. This value MUST be 0, or a value from
the following table. The value SHOULD NOT<182> be 0.
Value Description
0xFFFF Indicates that this specification is to be
ignored
0x0190 Normal font weight
sss (2 bytes): A signed integer that specifies whether the superscript or subscript or normal style of
the font is used. MUST be set to a value from the following table:
Value Description
0xFFFF Indicates that this specification is to be ignored
858 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Description
0x0000 Normal script
0x0001 Superscript
0x0002 Subscript
uls (1 byte): An unsigned integer that specifies the underline style. The value MUST be one of the
following:
Value Description
0x00 No underline
0x01 Single
0x02 Double
0x21 single accounting
0x22 double accounting
0xFF Indicates that this specification is to be ignored
bFamily (1 byte): An unsigned integer that specifies the font family, as defined by Windows API
LOGFONT structure in [MSDN-FONTS]. MUST be greater than or equal to 0 or less than or equal to
5.
bCharSet (1 byte): An unsigned integer that specifies the character set, as defined by Windows API
LOGFONT structure in [MSDN-FONTS].
2.5.249 StyleXF
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
icvFore icvBack I
B - fJustLast (1 bit): A bit that specifies whether the justified or distributed alignment of the cell is
used on the last line of text. (Setting this to 1 is typical for East Asian text but not typical in other
contexts). If this field equals 1 then alc MUST equal 7.
859 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
trot (1 byte): An XFPropTextRotation that specifies the text rotation.
cIndent (4 bits): An unsigned integer that specifies the text indentation level. MUST be less than
or equal to 15.
dgLeft (4 bits): A BorderStyle that specifies the logical left border formatting.
dgRight (4 bits): A BorderStyle that specifies the logical right border formatting.
icvLeft (7 bits): An unsigned integer that specifies the color of the logical left border. The value
MUST be one of the values specified in the icv field in IcvXF or zero. A value of zero means the
left border color is not specified. If this value is zero then dgLeft MUST also be zero.
icvRight (7 bits): An unsigned integer that specifies the color of the logical right border. The value
MUST be one of the values specified in the icv field in IcvXF or zero. A value of zero means the
right border color is not specified. If this value is zero then dgRight MUST also be zero.
G - grbitDiag (2 bits): An unsigned integer that specifies which diagonal borders are present (if
any). MUST be a value from the following table:
Value Meaning
0x0 No diagonal border
0x1 Diagonal-down border
0x2 Diagonal-up border
0x3 Both diagonal-down and diagonal-up
icvTop (7 bits): An unsigned integer that specifies the color of the top border. The value MUST be
one of the values specified in the icv field in IcvXF or zero. A value of zero means the top border
color was not specified. If this value is zero then dgTop MUST also be zero.
icvBottom (7 bits): An unsigned integer that specifies the color of the bottom border. The value
MUST be one of the values specified in the icv field in IcvXF or zero. A value of zero means the
bottom border color was not specified. If this value is zero then dgBottom MUST also be zero.
icvDiag (7 bits): An unsigned integer that specifies the color of the diagonal border. The value MUST
be one of the values specified in the icv field in IcvXF or zero. A value of zero means the diagonal
border color has not been specified. If this value is zero then dgDiag MUST also be zero.
fls (6 bits): A FillPattern that specifies the fill pattern. If this value is 1 which specifies a solid fill
pattern only icvFore is rendered.
icvFore (7 bits): An IcvXF that specifies the foreground color of the fill pattern.
860 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
icvBack (7 bits): An unsigned integer that specifies the background color of the fill pattern. The
value MUST be an IcvXF value.
2.5.250 SXAddl_SXDEnd
The SXAddl_SXDEnd record specifies the end of a sequence of SXAddl records that specify
information about a PivotTable.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
... reserved
...
hdr (6 bytes): An SXAddlHdr. The sxd field of SXAddlHdr MUST equal 0xFF.
2.5.251 SXAddl_SXDVerUpdInv
The SXAddl_SXDVerUpdInv structure specifies the highest data functionality level for which records
following this record are handled.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
hdr
reserved2 reserved3
hdr (6 bytes): An SXAddlHdr. The sxd field of SXAddlHdr MUST equal 0x01.
dwVersionInvalidates (1 byte): An unsigned integer that specifies the highest data functionality
level for which records following this record are handled.
MUST be greater than or equal to 0 and less than or equal to 0xFF. If this value is equal to 0xFF, the
data functionality level is not set.
2.5.252 SXAddl_SXString
861 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
st (variable)
...
2.5.253 SXAddlHdr
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
frtHeaderOld
sxc sxd
sxc (1 byte): An unsigned integer that specifies the current class. See class for details.
sxd (1 byte): An unsigned integer that specifies the type of record contained in the data field of the
containing SXAddl record. See class for details.
2.5.254 SXAxis
The SXAxis structure specifies the PivotTable axis referred to by the containing record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D reserved
A - sxaxisRw (1 bit): A bit that specifies whether this structure refers to the row axis.
B - sxaxisCol (1 bit): A bit that specifies whether this structure refers to the column axis.
C - sxaxisPage (1 bit): A bit that specifies whether this structure refers to the page axis.
D - sxaxisData (1 bit): A bit that specifies whether this structure refers to the value axis.
2.5.255 SXEZDoper
862 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
vts (1 byte): An unsigned integer that specifies the type of comparison used in the data operation.
MUST be a value in the following table:
Value Meaning
0x00 This SXEZDoper record is undefined and MUST be ignored.
0x04 This SXEZDoper specifies a numeric data operation.
0x06 This SXEZDoper specifies a string data operation.
0x0C This SXEZDoper specifies that all space characters are matched in the data operation.
0x0E This SXEZDoper specifies that all non-space characters are matched in the data operation.
grbitSign (1 byte): An unsigned integer that specifies the comparison operation between a database
value and vtValue. MUST be one of the following values:
Value Meaning
0x00 No operation. The vts field MUST be zero.
0x01 Less than
0x02 Equal to
0x03 Less than or equal to
0x04 Greater than
0x05 Not equal to
0x06 Greater than or equal to
vtValue (8 bytes): A field with the type and meaning specified by the value of vts, as specified in
the following table:
Value of
vts vtValue meaning
0x00 Undefined and MUST be ignored.
0x04 An Xnum (section 2.5.342) that specifies the numeric value used in the numeric data
operation.
0x06 A PivotCompProp that specifies the type of string comparison.
0x0C Undefined and MUST be ignored.
0x0E Undefined and MUST be ignored.
2.5.256 SxFT
863 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
864 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
value filter.
865 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
866 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.257 SxIvdCol
The SxIvdCol structure specifies a reference to a pivot field or data field on the column axis
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col
col (2 bytes): A signed integer that specifies a pivot field or data field for the column axis of the
PivotTable view. MUST be a value from the following table:
Value Meaning
-2 This value specifies that the data field is on the column axis. The sxaxisCol field of
sxaxis4Data of the SxView record of the PivotTable view MUST equal 1 and the
sxaxisData field of sxaxis4Data of the SxView record of the PivotTable view MUST
equal zero.
0+ This value specifies a pivot field index as specified in Pivot Fields. The pivot field
index specifies a pivot field on the column axis of the PivotTable view. MUST be less
than the cDim field of the SxView record of the PivotTable view. If the referenced
pivot field is not a hidden field in an OLAP PivotTable view then the sxaxisCol field
of SXAxis of the Sxvd record of the pivot field MUST equal 1.
A pivot field is a hidden field if an SXAddl_SXCField12_SXDVer12Info record exists for the pivot
field, and the fHiddenLvl field of the SXAddl_SXCField12_SXDVer12Info record is 1.
2.5.258 SxIvdRw
The SxIvdRw structure specifies a reference to a pivot field or data field on the row axis.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rw
rw (2 bytes): A signed integer that specifies a pivot field or data field for the row axis of the
PivotTable view. MUST be a value from the following table:
Value Meaning
-2 This value specifies that the data field is on the row axis. The sxaxisRw field of
sxaxis4Data of SxView record of the PivotTable view MUST equal 1 and the
sxaxisData field of sxaxis4Data of the SxView record of the PivotTable view MUST
equal zero.
0+ This value specifies a pivot field index as specified in Pivot Fields. The pivot field
index specifies a pivot field on the row axis of the PivotTable view. MUST be less
than the cDim field of the SxView record of the PivotTable view. If the referenced
pivot field is not a hidden field in an OLAP PivotTable view then the sxaxisRw field
of SXAxis of the Sxvd record of the pivot field MUST equal 1.
A pivot field is a hidden field if an SXAddl_SXCField12_SXDVer12Info record exists for the pivot
field, and the fHiddenLvl field of the SXAddl_SXCField12_SXDVer12Info record is 1.
2.5.259 SXLIItem
The SXLIItem structure specifies a pivot line in the row area or column area of a PivotTable view.
867 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cSic itmType A
isxviMac B iData C D E F G H I
rgisxvi (variable)
...
cSic (2 bytes): A signed integer that specifies the count of pivot item indexes in the beginning of the
rgisxvi array that are identical to the same number of pivot item indexes in the beginning of the
rgisxvi array of the previous SXLIItem structure in the rgsxli array of the preceding SXLI record.
The value MUST be greater than or equal to 0 and less than the isxviMac field. If the fGrand field
equals 1, then this value MUST be 0.
itmType (15 bits): An unsigned integer that specifies the type of this pivot line. MUST be a value
from the following table:
isxviMac (2 bytes): A signed integer that specifies the number of elements in the rgisxvi array that
are displayed in this pivot line. MUST be greater than or equal to 0. If the fGrand field equals 1,
then the value of this field MUST be 1. If the fGrand field equals zero and the preceding SXLI
record contains row area pivot items, then this value MUST be less than or equal to the cDimRw
field of the preceding SxView. If the fGrand field equals zero and the preceding SXLI record
contains column area pivot items, then this value MUST be less than or equal to the cDimCol field
of the preceding SxView.
B - fMultiDataName (1 bit): A bit that specifies whether the data field name is used for the total or
the subtotal. MUST be a value from the following table:
Value Meaning
0 The data field name is used for the total.
868 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
1 The data field name is used for the subtotal.
If the fGrand field equals 1 or the fBlock field equals 1, then this value MUST equal the value in
the fMultiDataOnAxis field. If the fGrand and fBlock fields equal zero, the fSbt and
fMultiDataOnAxis fields equal 1, and the cSic field is less than iposData, then this value MUST
equal 1. Otherwise, this value MUST be zero.
If the preceding SXLI record contains row area pivot items, iposData equals the index of the
SxIvdRw record in the rgSxivd array of the SxIvd containing SxIvdRw records where the rw field
equals -2. If there is not an SxIvdRw record with the rw field equal to -2, iposData equals zero.
If the preceding SXLI record contains column area pivot items, iposData equals the index of the
SxIvdCol record in the rgSxivd array of the SxIvd containing SxIvdCol records where the col field
equals -2. If there is not an SxIvdCol record with the col field equal to -2, iposData equals zero.
iData (8 bits): An unsigned integer that specifies a data item index as specified in Data Items, for an
SXDI record specifying a data item used for a subtotal. This field MUST be 0 if the cDimData field
of the preceding SxView record is 0 or if the fGrand field equals 1. If the cDimData field of the
preceding SxView is greater than 0, then this value MUST be greater than or equal to 0 and less
than the cDimData field of the preceding SxView record. If the fMultiDataOnAxis field equals 1
and the itmType field does not equal ITMTYPEBLANK and the isxviMac field is greater than
iposData as specified in fMultiDataName, then the value of this field MUST equal the value of the
element of the rgisxvi array in the position equal to iposData as specified in fMultiDataName.
C - fSbt (1 bit): A bit that specifies whether this pivot line is a subtotal. This value MUST equal 1 if
the itmType field is greater than or equal to ITMTYPEDEFAULT and the itmType field is less than
or equal to ITMTYPEGRAND and the fBlock field equals 0. Otherwise, this value MUST be 0.
D - fBlock (1 bit): A bit that specifies whether this pivot line is a block total. A block total is a total of
a group of pivot items. For more details see Grouping. If the fGrand field equals 0 and the fBlock
field in the previous SXLIItem record equals 1, this value MUST be 1.
E - fGrand (1 bit): A bit that specifies whether this pivot line is a grand total. If the fGrand field in
the previous SXLIItem record is 1, then this value MUST be 1. Otherwise, if the itmType field
equals ITMTYPEGRAND this field MUST equal 1 and if the itmType field does not equal
ITMTYPEGRAND this field MUST equal 0.
F - fMultiDataOnAxis (1 bit): A bit that specifies whether a pivot line entry in this pivot line is a
data item index.
If the preceding SXLI record contains row area pivot items, the cDimData field of the preceding
SxView record is greater than 1, the sxaxis4Data.sxaxisRw field of the preceding SxView equals
1 and itmType is not equal to ITMTYPEBLANK, then this value MUST be 1. Otherwise, this value
MUST be 0.
If the preceding SXLI record contains column area pivot items, the cDimData field of the
preceding SxView record is greater than 1, the sxaxis4Data.sxaxisCol field of the preceding
SxView equals 1 and itmType is not equal to ITMTYPEBLANK, then this value MUST be 1.
Otherwise, this value MUST be 0.
rgisxvi (variable): An array of 2-byte signed integers that specifies a pivot line entry.
869 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Each element of this array is either a pivot item index or a data item index.
If fGrand is 1 or itmType is ITMTYPEBLANK then all elements of this field are undefined and
MUST be ignored. Otherwise each element MUST be a value from the following table:
Value Meaning
0x0000 to This value specifies a data item index or pivot item index in the associated pivot field
0x7EF4 as specified in Pivot Items.
0x7FFF This value specifies that there is no pivot item and that the cell in the pivot line is
blank.
For more details see Pivot Line Entries and Pivot Lines.
2.5.260 SXPI_Item
The SXPI_Item structure specifies information about a pivot field and its filtering on the page axis of
a PivotTable view.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
isxvd isxvi
idObj
isxvd (2 bytes): A signed integer that specifies a pivot field index as specified by Pivot Fields. The
referenced pivot field is specified to be on the page axis. MUST be greater than or equal to zero
and less than the cDim field of the SxView record of the PivotTable view.
isxvi (2 bytes): A signed integer that specifies the pivot item used for the page axis filtering. MUST
be a value from the following table:
Value Meaning
0x0000 to This value specifies a pivot item index that specifies a pivot item in the pivot field
0x7FFC specified by isxvd. The referenced pivot item specifies the page axis filtering for the
pivot field.
0x7FFD This value specifies all pivot items, see page axis for filtering that applies.
For a non-OLAP PivotTable view the value MUST be 0x7FFD or greater than or equal to zero and
less than the cItm field of the Sxvd record of the pivot field. Otherwise the value MUST be
0x7FFD.
idObj (2 bytes): A signed integer that specifies the object identifier of the Obj record with the page
item drop-down arrow.
2.5.261 SXVDEx_Opt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cchSubName reserved1
... reserved2
870 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
... stSubName (variable)
...
cchSubName (2 bytes): An unsigned integer that specifies the length, in characters, of the
XLUnicodeStringNoCch in the stSubName field. If the value is 0xFFFF then stSubName does not
exist. The value MUST be 0xFFFF or greater than zero and less than or equal to 0x00FF.
stSubName (variable): An XLUnicodeStringNoCch that specifies the name of the aggregate function
used to calculate this pivot field’s subtotals. A "?" character within the string will be replaced by
the stName field of Sxvd when displayed in the UI. The length is specified in cchSubName.
2.5.262 SXView9Save
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E reserved2 reserved3
A - fNoStencil (1 bit): A bit that specifies whether to disable the drawing of large drop zones for a
PivotTable viewthat has no data fields.
B - fHideTotAnnotation (1 bit): A bit that specifies whether, for an OLAP PivotTable view when the
fNotVisualTotals field of the SXAddl_SXCView_SXDVer12Info record of the PivotTable view is 0
or the SXAddl_SXCView_SXDVer12Info record is not present, an asterisk is not displayed next to
the caption for subtotals and grand totals.
D - fIncludeEmptyRw (1 bit): A bit that specifies whether empty rows from an OLAP data source
be shown in the PivotTable view.
E - fIncludeEmptyCol (1 bit): A bit that specifies whether empty columns from an OLAP data source
is shown in the PivotTable view.
2.5.263 SXVIFlags
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B C D E F reserved2
871 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
A - fDrilledMember (1 bit): A bit that specifies whether child elements of this node are collapsed,
see Collapsing for details. MUST be zero if the pivot items are from attribute hierarchies. MUST
be zero if the itmType field of the SXVI record of the pivot item is not zero.
C - fHasChildren (1 bit): A bit that specifies whether the pivot item has child OLAP members.
MUST be zero if the itmType field of the SXVI record of the pivot item is not zero.
D - fCollapsedMember (1 bit): A bit that specifies whether the subnodes of this node are collapsed,
see Collapsing for details. This value applies only to pivot items of attribute hierarchies. MUST be
zero if the pivot items are from non-attribute hierarchies.
F - fOlapFilterSelected (1 bit): A bit that specifies whether this pivot item is selected for Olap
Manual Filtering.
2.5.264 TabId
The TabId structure specifies the unique sheet identifier associated with the sheet. A sheet’s
identifier is specified by the RRTabId record, the order of the sheet identifiers in the RRTabId record
matches the order of the BoundSheet8 records as they appear in the Globals Substream. If the
workbook contains more than 4112 sheets then this record is not present and each sheet identifier is
specified by the order in which the BoundSheet8 records appear in the Globals Substream, beginning
with one.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
tabid
tabid (2 bytes): An unsigned integer that specifies the unique sheet identifier associated with the
sheet. MUST be greater than or equal to 0x0001 and less than or equal to 0xFFFE.
2.5.265 TabIndex
The TabIndex structure specifies a sheet index in the workbook. A sheet index is the zero-based
index into the collection of BoundSheet8 records as they appear in the Globals Substream
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
itab
itab (2 bytes): An unsigned integer that specifies the zero-based index into the collection of
BoundSheet8 records as they appear in the Globals Substream.
2.5.266 TableFeatureType
The table feature supports multiple data source types. The data source is specified by the lt field. If
the lt field is 0x00000001, the table's data source definition is cached within the List Data stream. If
872 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
the lt field is 0x00000002, the table's data source schema is cached within the XML stream (section
2.1.7.22).
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
lt
idList
crwHeader
crwTotals
idFieldNext
cbFSData
rupBuild unused1
A B C D E F G H I J K L M N O P verXL Q R S T U reserved3
lPosStmCache
cbStmCache
cchStmCache
lem
...
...
rgbName (variable)
...
...
entryId (variable)
...
fieldData (variable)
873 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
idDeleted (variable)
...
idChanged (variable)
...
cellInvalid (variable)
...
lt (4 bytes): A SourceType that specifies the type of data source for the table.
idList (4 bytes): An unsigned integer that specifies an identifier for the table. MUST be unique within
the sheet. SHOULD<183> be unique within the workbook.
crwHeader (4 bytes): A Boolean (section 2.5.14) that specifies whether the table has a header
row. If fAutoFilter is 1, the value MUST be 0x00000001. If fSingleCell is 1, the value MUST be
0x00000000. MUST be one of the following values:
Value Meaning
crwTotals (4 bytes): A Boolean that specifies whether there is a total row. If fSingleCell is 1, the
value MUST be 0x00000000. MUST be one of the following values:
Value Meaning
idFieldNext (4 bytes): An unsigned integer that specifies the next unique identifier to use when
assigning unique identifiers to the fieldData.idField field of the table.
cbFSData (4 bytes): An unsigned integer that specifies the size, in bytes, of the fixed portion of this
structure. The fixed portion starts at the lt field and ends at the rgbHashParam field. MUST be equal
to 64.
rupBuild (2 bytes): An unsigned integer that specifies the build number of the application that
wrote the structure.
874 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
B - fAutoFilter (1 bit): A bit that specifies whether the table has an AutoFilter. MUST be 1 when
fPersistAutoFilter is 1.
C - fPersistAutoFilter (1 bit): A bit that specifies whether the AutoFilter is preserved for this table
after data refresh operations.<184>
D - fShowInsertRow (1 bit): A bit that specifies whether the insert row is visible. MUST be 1 if
fInsertRowInsCells is 1.
E - fInsertRowInsCells (1 bit): A bit that specifies whether rows below the table are shifted down
because of the insert row being visible.
F - fLoadPldwIdDeleted (1 bit): A bit that specifies whether the idDeleted field is present. MUST
be zero if the lt field is not set to 0x00000001.
G - fShownTotalRow (1 bit): A bit that specifies whether the total row was ever visible.
I - fNeedsCommit (1 bit): A bit that specifies whether table modifications were not synchronized
with the data source. MUST be zero if the lt field is not set to 0x00000001.
J - fSingleCell (1 bit): A bit that specifies whether the table is limited to a single cell. The table
cannot have header rows, total rows, or multiple columns. If fSingleCell equals 1, the lt field MUST
be set to 0x00000002.
L - fApplyAutoFilter (1 bit): A bit that specifies whether the AutoFilter is currently applied. MUST
be 1 if the AutoFilter is currently applied<185>.
M - fForceInsertToBeVis (1 bit): A bit that specifies whether the insert row is forced to be visible
because the table has no data.
N - fCompressedXml (1 bit): A bit that specifies whether the cached data for this table in the List
Data stream is compressed. MUST be zero if the lt field is not set to 0x00000001.
O - fLoadCSPName (1 bit): A bit that specifies whether the cSPName field is present. MUST be
zero if the lt field is not set to 0x00000001.
P - fLoadPldwIdChanged (1 bit): A bit that specifies whether idChanged field is present. MUST be
zero if the lt field is not set to 0x00000001.
verXL (4 bits): An unsigned integer that specifies the application version under which the table was
created. MUST be either 0xB or 0xC<186>.
Q - fLoadEntryId (1 bit): A bit that specifies whether the entryId field is present.
R - fLoadPllstclInvalid (1 bit): A bit that specifies whether the cellInvalid field is present. MUST
be zero if the lt field is not set to 0x00000001.
S - fGoodRupBld (1 bit): A bit that specifies whether the rupBuild field is valid.
U - fPublished (1 bit): A bit that specifies whether the table is published. This bit is ignored if the
fPublishedBookItems field of the BookExt_Conditional12 structure is zero.
lPosStmCache (4 bytes): An unsigned integer that specifies the position of the cached data within
the List Data stream. Undefined and MUST be ignored if the lt field is not set to 0x00000001.
875 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cbStmCache (4 bytes): An unsigned integer that specifies the size, in bytes, of the cached data
within the List Data stream. Undefined and MUST be ignored if the lt field is not set to 0x00000001.
cchStmCache (4 bytes): An unsigned integer that specifies the count of characters of the cached
data within the List Data stream when the cached data is uncompressed. Undefined and MUST be
ignored if the lt field is not set to 0x00000001.
lem (4 bytes): A LEMMode enumeration that specifies the table edit mode. If lt is set to
0x00000000, 0x00000002 or 0x00000003, this field MUST be set to 0x00000000.
rgbHashParam (16 bytes): An array of bytes that specifies round-trip information. SHOULD<187>
be ignored and MUST be preserved if the lt field is set to 0x00000001. Undefined and MUST be
ignored if the lt field is not set to 0x00000001.
rgbName (variable): An XLUnicodeString that specifies the name of the table. MUST be unique per
workbook, and case-sensitive in all locales.
cFieldData (2 bytes): An unsigned integer that specifies the number of columns in the table. MUST
be greater than or equal to 0x0001 and less than or equal to 0x0100.
cSPName (variable): An XLUnicodeString that specifies the name of the cryptographic service
provider used to specify rgbHashParam. This field is present only if fLoadCSPName is set to 1.
entryId (variable): An XLUnicodeString that specifies a unique identifier for the table. The string
equals the value of the idList field, represented in decimal format, without any leading zeros. It is
used when lt equals 0x00000002 and ignored otherwise. This field is present only if fLoadEntryId is
set to 1.
fieldData (variable): An array of Feat11FieldDataItem that contains the specification of the columns
of the table. The number of items in this array is specified by the cFieldData field.
cellInvalid (variable): A Feat11RgInvalidCells structure that specifies the location of cells within the
table that contain values that are invalid based on validation rules on the Web based data provider.
This field is only present if the fLoadPllstclInvalid field is set to 1.
2.5.267 Tag_Fn_MDX
876 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Name Value Meaning
2.5.268 TextPropsStreamChecksumData
The TextPropsStreamChecksumData structure specifies the data used to compute the checksum
of the TextPropsStream record. This data can be obtained from Font and Text records associated with
the TextPropsStream record, as specified in TextPropsStream. If no Font record is associated with the
TextPropsStream record, the fields related to the Font record MUST be omitted from this structure and
thus not used to compute the checksum. If no Text record is associated with the TextPropsStream
record, the Text record associated with the DefaultText record MUST be used instead.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stFontName (variable)
...
dwFontHeight
A B C D E F G H I J K unused1 boldness
... dwDrawingMode
... dwVAlignment
... bReadingOrder
stFontName (variable): An array of Unicode characters that specify the font name. The size of the
array MUST be equal to fontName.cch*2, where fontName is a field of the associated Font
record.
The value of this field MUST be equal to value of the fontName.rgb field of the associated Font
record.
dwFontHeight (4 bytes): An unsigned integer that specifies the font height. The value of this field
MUST be equal to the value of the dyHeight field of the associated Font record.
A - fBold (1 bit): A bit that specifies whether the font is bold. The value of this field MUST be 1 when
the value of the bls field of the associated Font record is greater than 400.
B - fItalic (1 bit): A bit that specifies whether the font is italic. The value of this field MUST be equal
to the value of the fItalic field of the associated Font record.
C - fUnderline (1 bit): A bit that specifies whether the font is single-underlined. The value of this
field MUST be 1 when the value of the uls field of the associated Font record is not equal to 0x00.
877 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
D - fOutline (1 bit): A bit that specifies whether the font has an outline effect applied. The value of
this field MUST be equal to the value of the fOutline field of the associated Font record.
E - fShadow (1 bit): A bit that specifies whether the font has a shadow effect applied. The value of
this field MUST be equal to the value of the fShadow field of the associated Font record.
F - fCondense (1 bit): A bit that specifies whether the font is condensed. The value of this field
MUST be equal to the value of the fCondense field of the associated Font record.
G - fExtend (1 bit): A bit that specifies whether the font is extended. The value of this field MUST be
equal to the value of the fExtend field of the associated Font record.
H - fStrikeout (1 bit): A bit that specifies whether the font has strike-through effect applied. The
value of this field MUST be equal to the value of the fStrikeOut field of the associated Font
record.
I - fRegular (1 bit): A bit that specifies whether the font is a regular font. The value of this field
MUST be equal to 1.
J - fJon (1 bit): A bit that specifies whether the font is too small to be displayed. MUST have a value
of 1 if the font height in pixels is less than 6.
K - fDialogBox (1 bit): A bit that specifies whether the font is used in the context of a dialog box.
The value of this field MUST be equal to 0.
boldness (2 bytes): An unsigned integer that specifies the font weight. The value of this field MUST
be equal to the value of the bls field of the associated Font record.
subscript (2 bytes): An unsigned integer that specifies whether superscript, subscript, or normal
script is used. The value of this field MUST be equal to the value of the sss field of the associated
Font record.
bUnderline (1 byte): An unsigned integer that specifies the underline style. The value of this field
MUST be equal to the value of the uls field of the associated Font record.
bFamily (1 byte): An unsigned integer that specifies the font family of this font. The value of this
field MUST be equal to the value of the bFamily field of the associated Font record.
bCharset (1 byte): An unsigned integer that specifies the character set. The value of this field
MUST be equal to the value of the bCharSet field of the associated Font record.
rgbFontColor (4 bytes): A LongRGB that specifies the font color. The value of this field MUST be
equal to the value of the icv field of the associated Font record.
dwDrawingMode (4 bytes): An unsigned integer that specifies the display mode of the background
of the text. The value of this field MUST be equal to 0x0000010D when the wBkgMode field of
the associated Text record is equal to 0x0001; otherwise, it MUST be equal to 0x0000020D.
bRotation (1 byte): An unsigned integer that specifies the text rotation. The value of this field MUST
be equal to the value of the trot field of the associated Text record.
dwHAlignment (4 bytes): An unsigned integer that specifies the horizontal alignment of the text.
The value of this field MUST equal to the value of the at field of the associated Text record.
dwVAlignment (4 bytes): An unsigned integer that specifies the vertical alignment of the text. The
value of this field MUST be equal to the value of the vat field of the associated Text record.
878 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
bReadingOrder (1 byte): An unsigned integer that specifies the reading order of the text. The value
of this field MUST be equal to the value of the iReadingOrder field of the associated Text record.
2.5.269 Top10FT
2.5.270 Ts
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
A B unused2 C unused3
B - ftsItalic (1 bit): A bit that specifies whether the text style is italic.
C - ftsStrikeout (1 bit): A bit that specifies whether the font has strikethrough formatting applied.
2.5.271 TxOLastRun
The TxOLastRun structure marks the end of the formatting run information in the TxORuns
structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cchText unused1
unused2
cchText (2 bytes): An unsigned integer that specifies the number of characters in the preceding TxO
record. The value MUST be the count of characters specified in the cchText field of the preceding
TxO record.
879 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.272 TxORuns
The TxORuns structure specifies the formatting run information for the TxO record and zero or
more Continue records immediately following.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgTxoRuns (variable)
...
lastRun
...
rgTxoRuns (variable): An array of Run. Each Run specifies the formatting information for a text
run. formatRun.ich MUST be less than or equal to cchText of the preceding TxO record. The
number of elements in this array is as follows:
lastRun (8 bytes): A TxOLastRun that marks the end of the text run. This field is only present in the
last Continue record following the TxO record. <188>
2.5.273 TxtWf
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fieldType
fieldStart
fieldType (4 bytes): An unsigned integer that specifies the format of the field. MUST be a value
from the following table:
Value Meaning
0x00000000 General
0x00000001 Text
0x00000002 Date in the order month, day, year
0x00000003 Date in the order day, month, year
0x00000004 Date in the order year, month, day
0x00000005 Date in the order month, year, day
0x00000006 Date in the order day, year, month
0x00000007 Date in the order year, day, month
0x00000008 Skip importing field
0x00000009 Taiwan era dates.
880 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fieldStart (4 bytes): An unsigned integer that specifies the character position of the field. The offset
is zero-based and MUST be greater than or equal to 0.
2.5.274 Underline
2.5.275 VertAlign
2.5.276 VertBrk
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
col rowStart
rowEnd
col (2 bytes): A ColU that specifies the zero-based index of the first column to the right of the page
break.
rowStart (2 bytes): A RwU that specifies the zero-based index of the first row on the page.
rowEnd (2 bytes): A RwU that specifies the zero-based index of the last row on the page. The value
MUST be greater than rowStart.
2.5.277 VirtualPath
881 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
MUST be a string in the following grammar:
This code specifies that the relative-path is relative to the startup directory.
This code specifies that the relative-path is relative to the alternate startup directory.
This code specifies that the relative-path is relative to the library directory.
This code specifies that the path is a transfer protocol path. The value of count MUST be equal to
the number of characters following count in transfer-path.
This code specifies that the path is relative to the drive volume of the workbook that contains the
path.
This code specifies that the path is relative to a specific drive volume. The drive volume is specified in
volume-character.
This code specifies that the path is relative to a UNC volume. The computer name is specified in
computer-name and the shared folder is specified in shared-folder.
882 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
This code specifies the name of the sheet within the workbook.
sheet-start-end-character = %x0001-%xFFFF
This code specifies a character which is a first or last character of sheet name. Such character MUST
NOT include any character that matches invalid-sheet-start-end-character.
This code specifies a sheet character. A sheet character MUST NOT include any character that matches
invalid-sheet-character.
This code specifies a sequence of subdirectories that comprise the path from the volume or directory.
directory = path-string
computer-name = path-string
shared-folder = path-string
path-string = 1*path-character
path-character = %x0020-%x0021 / %x0023-%x0029 / %x002B-%x002E / %x0030-%x0039 / %x003B /
%x003D / %x0040-%x005B / %x005D-%x007B / %x007D-%xFFFF
count = %x00-%xFF
2.5.278 WebPubString
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
883 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
pad (optional)
cch (2 bytes): An unsigned integer that specifies the character count in the str field. MUST be
greater than or equal to zero and less than or equal to 255.
str (variable): An XLUnicodeStringNoCch. The character count in the string MUST be equal to the
value of the cch field.
pad (1 byte): Unused and MUST be ignored. This field exists if and only if the total number of bytes
in the str field is an odd number.
2.5.279 XColorType
The XColorType enumeration specifies the color reference types. It MUST be one of the following
values:
2.5.280 XFExtGradient
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
cGradStops
rgGradStops (variable)
...
cGradStops (4 bytes): An unsigned integer that specifies the number of items in rgGradStops.
MUST be greater than or equal to 0 and less than or equal to 256.
884 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgGradStops (variable): An array of GradStop. Each array element specifies a gradient stop for this
gradient fill.
2.5.281 XFExtNoFRT
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved1 reserved2
reserved3 cexts
rgExt (variable)
...
cexts (2 bytes): An unsigned integer that specifies the number of elements in rgExt.
rgExt (variable): An array of ExtProp. Each array element specifies an extension to a formatting
property. The element count of this field MUST be equal to cexts.
2.5.282 XFIndex
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ixfe
ixfe (2 bytes): An unsigned integer that specifies a zero-based index of a XF record in the collection
of XF records in the Globals Substream.
The XF records in the file refer to both and Cell Style XFs and Cell XFs. For more information, see
Styles.
The XF records in the file can be divided into three sections. The first section contains the 16 built-
in XF records that MUST exist and MUST be ordered as follows:
885 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Index XF specifies fStyle value
7 Row outline level 7 1
8 Column outline level 1 1
9 Column outline level 2 1
10 Column outline level 3 1
11 Column outline level 4 1
12 Column outline level 5 1
13 Column outline level 6 1
14 Column outline level 7 1
15 Default cell format 0
The second section contains XF records for both built-in and user-defined Cell Style XFs. These
Cell Style XFs MUST be ordered alphabetically in the file based on their name. The name of the
Cell Style XF is specified by the user field of the corresponding Style record. The corresponding
Style record is the one with an ixfe field that specifies the XF record of the Cell Style XF. Note that
the ordering depends on the localized name of the style and the language of the application that
last saved the file.
For example, in a workbook created by a specific version of the application<189> with no user-
defined cell styles the remainder of the table is:
886 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Index Name of Style fStyle value
44 Comma[0] 1
45 Currency 1
46 Currency[0] 1
47 Explanatory Text 1
48 Good 1
49 Heading 1 1
50 Heading 2 1
51 Heading 3 1
52 Heading 4 1
53 Input 1
54 Linked Cell 1
55 Neutral 1
56 Note 1
57 Output 1
58 Percent 1
59 Title 1
60 Total 1
61 Warning Text 1
The last section contains unordered XFs for any Cell XFs in the file.
2.5.283 XFProp
The XFProp structure specifies a formatting property. Instances of this structure appear as elements
in the xfPropArray field of an XFProps structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xfPropType cb
xfPropDataBlob (variable)
...
xfPropType (2 bytes): An unsigned integer that specifies the type of the formatting property. MUST
be greater than or equal to 0x0000 and less than or equal to 0x002C, and MUST NOT equal
0x0027 or 0x0028. See the table in xfPropDataBlob for more information about the meaning of
this field.
cb (2 bytes): An unsigned integer that specifies the size of this XFProp structure.
xfPropDataBlob (variable): A field that specifies the formatting property data. The size and data
type of this field varies based on the property type as specified in xfPropType as follows:
xfPropType
value xfPropDataBlob field Data and Meaning
0x0000 A FillPattern that specifies the fill pattern.
0x0001 An XFPropColor that specifies the foreground color.
0x0002 An XFPropColor that specifies the background color.
0x0003 An XFPropGradient that specifies the gradient fill. This is often followed in the same
887 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xfPropType
value xfPropDataBlob field Data and Meaning
xfPropArray field of the XFProps structure by one or more XFProp structures with
xfPropType equal to 0x0004, which provides additional specifications for the gradient fill.
0x0004 An XFPropGradientStop that specifies a gradient stop for a preceding XFProp with
xfPropType equal to 0x0003 in the same xfPropArray field in the XFProps structure.
0x0005 An XFPropColor that specifies the text color.
0x0006 An XFPropBorder that specifies the top border formatting.
0x0007 An XFPropBorder that specifies the bottom border formatting.
0x0008 An XFPropBorder that specifies the left border formatting.
0x0009 An XFPropBorder that specifies the right border formatting.
0x000A An XFPropBorder that specifies the diagonal border formatting.
0x000B An XFPropBorder that specifies the vertical border formatting.
0x000C An XFPropBorder that specifies the horizontal border formatting.
0x000D A 1-byte unsigned integer that specifies whether a diagonal-up border is used. MUST be 0 or
1. The value of 1 means that a diagonal-up border is used.
0x000E A 1-byte unsigned integer that specifies whether a diagonal-down border is used. MUST be
0 or 1. The value of 1 means that a diagonal-down border is used.
0x000F A HorizAlign that specifies the horizontal alignment.
0x0010 A VertAlign that specifies the vertical alignment.
0x0011 An XFPropTextRotation that specifies the text rotation.
0x0012 A 2-byte unsigned integer that specifies the absolute text indentation level. MUST be less
than or equal to 15. The absolute indentation level replaces any previous indentation.
0x0013 A ReadingOrder that specifies the reading order.
0x0014 A 1-byte unsigned integer that specifies whether cell text is wrapped. MUST be 0 or 1. The
value of 1 means that the text is wrapped.
0x0015 A 1-byte unsigned integer that specifies whether cell text is justify distributed. MUST be 0
or 1. The value of 1 means that the text is justify distributed. If this value is 1 then an XFProp
with xfPropType equal to 0x000F MUST exist in this xfPropArray field of the XFProps
structure and MUST equal 0x07.
0x0016 A 1-byte unsigned integer that specifies whether a cell is shrink to fit. MUST be 0 or 1. The
value of 1 means that the cell is shrink to fit.
0x0017 A 1-byte unsigned integer that specifies whether a cell is merged. MUST be 0 or 1. The value
of 1 means that the cell is merged.
0x0018 An LPWideString that specifies the font name used by the cell data. MUST be less than or
equal to 32 characters in length.
0x0019 A Bold that specifies the font face weight.
0x001A An Underline that specifies the underline style.
0x001B A Script that specifies the superscript or subscript style.
0x001C A 1-byte unsigned integer that specifies whether text is italicized. MUST be 0 or 1. The value
of 1 means that the text is italic.
0x001D A 1-byte unsigned integer that specifies whether text has strikethrough formatting
applied. MUST be 0 or 1. The value of 1 means that the text has strikethrough formatting
applied.
0x001E A 1-byte unsigned integer that specifies whether text has an outline style. MUST be 0 or 1.
The value of 1 means that the text is outline style.
0x001F A 1-byte unsigned integer that specifies whether text has a shadow style. MUST be 0 or 1.
The value of 1 means that the text is shadow style.
0x0020 A 1-byte unsigned integer that specifies whether text is condensed. MUST be 0 or 1. The
value of 1 means that the text is condensed.
0x0021 A 1-byte unsigned integer that specifies whether text is extended. MUST be 0 or 1. The value
of 1 means that the text is extended.
0x0022 A 1-byte unsigned integer that specifies a character set. For more information about
888 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xfPropType
value xfPropDataBlob field Data and Meaning
character sets, see the Windows API LOGFONT structure in [MSDN-FONTS].
0x0023 A 1-byte unsigned integer that specifies a font family. For more information about font
families, see the Windows API LOGFONT structure in [MSDN-FONTS]. MUST be greater than
or equal to 0 and less than or equal to 5.
0x0024 A 4-byte unsigned integer that specifies text size in twips. MUST be greater than or equal to
20 and less than or equal to 8191.
0x0025 A FontScheme that specifies the font scheme of a theme font.
0x0026 A number format as specified by the stFormat field of Format that specifies the number
format string.
0x0029 An IFmt that specifies a number format identifier.
0x002A A 2-byte signed integer that specifies the relative text indentation level. The relative
indentation level is added to any previous indentation. The value MUST either be greater than
or equal to -15 and less than or equal to 15, or it MUST be 255. Values -15 through 15
specify a relative indentation level, and the value 255 specifies the absence of a relative
indentation level.
0x002B A 1-byte unsigned integer that specifies whether the locked protection property is set to
true. MUST be 0 or 1. The value of 1 means that the property is set to true.
0x002C A 1-byte unsigned integer that specifies whether the hidden protection property is set to
true. MUST be 0 or 1. The value of 1 means that the property is set to true.
2.5.284 XFPropBorder
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
color
...
dgBorder
2.5.285 XFPropColor
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
dwRgba
A - fValidRGBA (1 bit): A bit that specifies whether the xclrType, icv and nTintShade fields were
used to set the dwRgba field. MUST equal 1.
889 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xclrType (7 bits): An XColorType that specifies how the color information is stored.
icv (1 byte): An unsigned integer that specifies color information. If xclrType equals 0x01, this field
MUST be one of the values specified in IcvXF, or equal 0. If xclrType equals 0x03, this field MUST
be one of the values specified in ColorTheme. Otherwise this field is undefined and MUST be
ignored.
nTintShade (2 bytes): A signed integer that specifies the tint of the color. This value is mapped to
the range -1.0 to 1.0. Positive values lighten the color, and negative values darken the color.
MUST NOT equal -32768.
2.5.286 XFPropGradient
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
type
numDegree
...
numFillToLeft
...
numFillToRight
...
numFillToTop
...
numFillToBottom
...
type (4 bytes): A Boolean (section 2.5.14) that specifies the gradient type. MUST be a value from
the following table:
Value Meaning
0x00000000 Linear gradient
0x00000001 Rectangular gradient
numDegree (8 bytes): An Xnum (section 2.5.342) that specifies the gradient angle in degrees for a
linear gradient. The gradient angle specifies the angle at which gradient strokes are drawn.
890 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
numFillToLeft (8 bytes): An Xnum that specifies the left coordinate of the inner rectangle for a
rectangular gradient, where (0.0,0.0) is the upper-left hand corner of the inner rectangle. MUST
be greater than or equal to 0.0 and less than or equal to 1.0.
numFillToRight (8 bytes): An Xnum that specifies the right coordinate of the inner rectangle for a
rectangular gradient, where (0.0,0.0) is the upper-left hand corner of the inner rectangle. MUST
be greater than or equal to 0.0 and less than or equal to 1.0.
numFillToTop (8 bytes): An Xnum that specifies the top coordinate of the inner rectangle for a
rectangular gradient, where (0.0,0.0) is the upper-left hand corner of the inner rectangle. MUST
be greater than or equal to 0.0 and less than or equal to 1.0.
numFillToBottom (8 bytes): An Xnum that specifies the bottom coordinate of the inner rectangle
for a rectangular gradient, where (0.0,0.0) is the upper-left hand corner of the inner rectangle.
MUST be greater than or equal to 0.0 and less than or equal to 1.0.
2.5.287 XFPropGradientStop
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
unused numPosition
...
... color
...
...
numPosition (8 bytes): An Xnum (section 2.5.342) that specifies the gradient stop position. The
gradient stop position is the position within the gradient range where this gradient stop’s color
begins. MUST be greater than or equal to 0.0 and less than or equal to 1.0.
2.5.288 XFProps
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved cprops
xfPropArray (variable)
...
891 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cprops (2 bytes): An unsigned integer that specifies the number of XFProp structures in
xfPropArray.
xfPropArray (variable): An array of XFProp. Each array element specifies a formatting property. The
array of properties specifies the full set of formatting properties. If the array contains an XFProp
with an xfPropType field equaling 0, the array MUST NOT contain any XFProp elements with
xfPropType fields equaling 3 or 4. If the array contains an XFProp with an xfPropType field
equaling 3 or 4, the array MUST NOT contain any XFProp elements with an xfPropType field
equaling 0.
2.5.289 XFPropTextRotation
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
trot
trot (1 byte): An unsigned integer that specifies the text rotation. MUST be a value from the
following table:
Value Meaning
0x00 to 0x5A (0 to 90) Text rotated counterclockwise 0 to 90 degrees
0x5B to 0xB4 (91 to 180) Text rotated clockwise 1 to 90 degrees
0xFF (255) Vertical text
2.5.290 XLNameUnicodeString
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
name (variable)
...
name (variable): An XLUnicodeString that specifies the name. The number of characters in the
string, name.cch, MUST be greater than or equal to 1 and less than or equal to 255.
where:
Unicode-character is any code point which is a character as defined by the Unicode character
properties in chapter four of the [RFC2781]
892 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Unicode-digit is any code point which is a digit as defined by the Unicode character properties in
chapter four of the [RFC2781].
This field MUST NOT be equal to "TRUE" or "FALSE" using case-insensitive string comparison. This field
MUST NOT be an R1C1 or A1 cell reference.
row-number = 1-65536
A1-row = row-number
letter-limited-one = "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" / "a" / "b" / "c" / "d" /
"e" / "f" / "g" / "h"
letter-limited-two = letter-limited-one / "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" / "Q"
/ "R" / "S" / "T" / "U" / "V" / "i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" / "q" / "r" /
"s" / "t" / "u" / "v"
letter = letter-limited-two / "W" / "X" / "Y" / "Z" / "w" / "x" / "y" / "z"
2.5.291 XlsFilter_Criteria
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
ezdoper1
...
... ezdoper2
...
...
893 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
djoin1
reserved
ezdoper1 (10 bytes): An SXEZDoper structure that specifies the first filter operation. If the
ccriteria field of the SXAddl_SXCSXFilter12_SXDXIsFilter that contains this structure is zero, then
ezdoper1.vts MUST be zero and ezdoper1 MUST be ignored. If ezdoper1.vts equals 0x6, the
following record MUST be SXAddl_SXCSXFilter12_SXDXlsFilterValue1.
ezdoper2 (10 bytes): An SXEZDoper structure that specifies the second filter operation. If the
ccriteria field of the SXAddl_SXCSXFilter12_SXDXIsFilter that contains this structure is not equal
to 2, then ezdoper2.vts MUST be zero and ezdoper2 MUST be ignored. If ezdoper1.vts is not
0x6 and ezdoper2.vts is 0x6, then the following record is
SXAddl_SXCSXFilter12_SXDXlsFilterValue2. If both ezdoper1.vts and ezdoper2.vts are 0x6,
then the following record is SXAddl_SXCSXFilter12_SXDXlsFilterValue1, and the next non-
Continue_SxaddlSxString record after that is SXAddl_SXCSXFilter12_SXDXlsFilterValue2.
djoin1 (4 bytes): A DJoin that specifies the join operation between ezdoper1 and ezdoper2.
2.5.292 XlsFilter_Top10
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
top10ft
A reserved1 numTopN
...
...
...
...
A - fTop (1 bit): A bit that specifies whether the filter displays the top or bottom records.
Value Meaning
0 Display the bottom records.
1 Display the top records.
894 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
reserved1 (15 bits): MUST be zero, and MUST be ignored.
numTopN (8 bytes): An Xnum (section 2.5.342) that specifies the number or percentage of records
to include.
If top10ft is TOP10FTPERCENT, numTopN MUST be greater than or equal to 0 and less than or equal
to 100.
If top10ft is TOP10FTSUM, numTopN MUST be greater than or equal to 0 and less than or equal to
2147483647.
If top10ft is TOP10FTCOUNT, numTopN MUST be an integer greater than or equal to 0 and less than
or equal to 2147483647.
2.5.293 XLUnicodeRichExtendedString
This structure’s variable fields can be extended with Continue records. A value from the table for
fHighByte MUST be specified in the first byte of the continue field of the Continue record followed by
the remaining portions of this structure’s variable fields.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
cch (2 bytes): An unsigned integer that specifies the count of characters in the string.
A - fHighByte (1 bit): A bit that specifies whether the characters in rgb are double-byte characters.
MUST be a value from the following table:
895 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0 All the characters in the string have a high byte of 0x00 and only the low bytes are in
rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
C - fExtSt (1 bit): A bit that specifies whether the string contains phonetic string data.
D - fRichSt (1 bit): A bit that specifies whether the string is a rich string and the string has at least
two character formats applied.
cRun (2 bytes): An optional unsigned integer that specifies the number of elements in rgRun. MUST
exist if and only if fRichSt is 0x1.
cbExtRst (4 bytes): An optional signed integer that specifies the byte count of ExtRst. MUST exist if
and only if fExtSt is 0x1. MUST be zero or greater.
rgb (variable): An array of bytes that specifies the characters in the string. If fHighByte is 0x0, the
size of the array is cch. If fHighByte is 0x1, the size of the array is cch*2. If fHighByte is 0x1 and
rgb is extended with a Continue record the break MUST occur at the double-byte character boundary.
rgRun (variable): An optional array of FormatRun structures that specifies the formatting for each
text run. The number of elements in the array is cRun. MUST exist if and only if fRichSt is 0x1.
ExtRst (variable): An optional ExtRst that specifies the phonetic string data. The size of this field is
cbExtRst. MUST exist if and only if fExtSt is 0x1.
2.5.294 XLUnicodeString
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
...
cch (2 bytes): An unsigned integer that specifies the count of characters in the string.
A - fHighByte (1 bit): A bit that specifies whether the characters in rgb are double-byte characters.
MUST be a value from the following table:
Value Meaning
0x0 All the characters in the string have a high byte of 0x00 and only the low bytes are in
rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
rgb (variable): An array of bytes that specifies the characters. If fHighByte is 0x0, the size of the
array MUST be equal to cch. If fHighByte is 0x1, the size of the array MUST be equal to cch*2.
896 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.295 XLUnicodeStringMin2
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cch st (variable)
...
cch (2 bytes): An unsigned integer that specifies the count of characters in the string. MUST be
equal to the number of characters in st.
st (variable): An optional XLUnicodeStringNoCch that specifies the string. MUST exist if and only if
cch is greater than zero.
2.5.296 XLUnicodeStringNoCch
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
...
A - fHighByte (1 bit): A bit that specifies whether the characters in rgb are double-byte characters.
MUST be a value from the following table:
Value Meaning
0x0 All the characters in the string have a high byte of 0x00 and only the low bytes are in
rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
rgb (variable): An array of bytes that specifies the characters. If fHighByte is 0x0, the size of the
array MUST be equal to the count of characters in the string. If fHighByte is 0x1, the size of the array
MUST be equal to 2 times the count of characters in the string.
2.5.297 XLUnicodeStringSegmented
The XLUnicodeStringSegmented structure specifies a Unicode string that is split into multiple
string segments. If the count of characters in the string is greater than 512, the string is split into
multiple string segments, each of which has a character count of 512 or less.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
cchTotal
897 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
strings (variable)
...
cchTotal (4 bytes): An unsigned integer that specifies the total count of characters in the string.
MUST be less than 2147483644.
strings (variable): An array of XLUnicodeString. Each element specifies a string segment. The cch
field of each XLUnicodeString element MUST be less than or equal to 512 and greater than 0, and the
sum of the cch fields of all XLUnicodeString elements MUST be equal to cchTotal. MUST exist if and
only if cchTotal is greater than zero.
2.5.298 XLUnicodeStringSegmentedRTD
The XLUnicodeStringSegmentedRTD structure specifies a Unicode string that contains a set of sub-
strings.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
cch
...
A - fHighByte (1 bit): A bit that specifies whether the characters in rgb are double-byte characters.
MUST be a value from the following table:
Value Meaning
0x0 All the characters in the string have a high byte of 0x00 and only the low bytes are in
rgb.
0x1 All the characters in the string are saved as double-byte characters in rgb.
rgb (variable): An array of bytes that specifies a set of sub-strings. If fHighByte is 0x0, the size of
the array is cch. If fHighByte is 0x1, the size of the array is cch*2. Each sub-string begins with one
or two bytes specifying the count of characters in the sub-string. The count is one byte in length if
fHighByte is zero and two bytes in length if fHighByte is 1. The number of the sub-strings MUST be
greater than 2 and less than 40.
2.5.299 XLUnicodeStringSegmentedSXAddl
898 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
cchTotal
...
cchTotal (4 bytes): An unsigned integer that specifies the total count of characters in the string. If
this is the first segment of a string, cchTotal MUST be greater than 0. If this is not the first segment
of a string, cchTotal MUST be zero.
string (variable): An XLUnicodeString that specifies the string segment. The cch field of string
MUST be less than or equal to 255 and greater than 0.
2.5.300 XmlTkBackWallThicknessFrt
The XmlTkBackWallThicknessFrt structure specifies the thickness of the back wall of a chart as a
percentage of the depth of the 3-D plot area. The back wall is the wall that is parallel to the
category (2) axis. This structure MUST only be present if the back wall thickness is greater than 0.
MUST only be specified if the chart contains a Chart3d record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
wallThickness
...
wallThickness (8 bytes): An XmlTkDWord that specifies the thickness of the back wall of the chart
as a percentage of the depth of the 3-D plot area. The wallThickness.dValue MUST be greater
than 0, and less than or equal to 100. The wallThickness.xtHeader.xmlTkTag field MUST be
equal to 0x0035.
2.5.301 XmlTkBaseTimeUnitFrt
The XmlTkBaseTimeUnitFrt structure specifies the value of the smallest unit of time used by the
date axis. This structure MUST only be present if the fAutoBase field of the corresponding AxcExt
record is set to 1 and the fDateAxis of the corresponding AxcExt record is equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
baseUnit
...
899 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
baseUnit (6 bytes): An XmlTkToken that specifies a value that can override the duBase field of the
corresponding AxcExt record. The baseUnit.xtHeader.xmlTkTag field MUST be equal to 0x005F.
This field overrides the duBase field of the corresponding AxcExt record when the fAutoBase
field of the AxcExt record is set to 1. The baseUnit.dValue MUST be a value from the following
table:
Value Meaning
2.5.302 XmlTkBlob
The XmlTkBlob structure specifies an array of bytes for the xmltkChain field of the CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
cbBlob
rgbBlob (variable)
...
cbBlob (4 bytes): An unsigned integer that specifies the count of bytes of the rgbBlob field.
rgbBlob (variable): An array of bytes for the xmltkChain field of the CrtMlFrt record. The size of
this field, in bytes, is specified by the cbBlob field.
2.5.303 XmlTkBool
The XmlTkBool structure specifies a Boolean (section 2.5.14) value for the xmltkChain field of the
CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
dValue unused
900 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
unused (1 byte): Undefined, and MUST be ignored.
2.5.304 XmlTkChain
The XmlTkChain structure specifies a chain of structures that specifies a group of additional
properties or property overrides for a given chart element, specified by the xmltkParent field. See
meanings of the additional properties or property overrides in each token structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
chainRecords (variable)
...
recordVersion (1 byte): An unsigned integer that specifies the chain version. MUST be 0.
xmltkParent (2 bytes): An unsigned integer that specifies the chart element targeted by the token
structures in the chain. MUST be a value from the following table:
Value Meaning
0x0001 The record that contains this structure MUST be in a sequence of records
that conforms to the DVAXIS rule. This sequence of records specifies the
chart element targeted by the token structures in this chain.
The token structures in the chain specify scaling properties and MUST be
one of the following: XmlTkMaxFrt, XmlTkMinFrt, XmlTkLogBaseFrt
0x0002 The record that contains this structure MUST be in a sequence of records
that conforms to the CHARTSHEET or CHARTSHEETCONTENT rule. This
sequence of records specifies the chart element targeted by the token
structures in this chain.
The token structures in the chain specify chart space properties and
MUST be one of the following: XmlTkStyle, XmlTkThemeOverride,
XmlTkColorMappingOverride
0x0004 The record that contains this structure MUST be in a sequence of records
that conforms to the IVAXIS rule and SERIESAXIS rule. This sequence of
records specifies the chart element targeted by the token structures in
this chain.
The token structures in the chain specify Axis properties and MUST be
one of the following: XmlTkNoMultiLvlLbl, XmlTkTickLabelSkipFrt,
XmlTkTickMarkSkipFrt, XmlTkMajorUnitFrt, XmlTkMinorUnitFrt,
XmlTkTickLabelPositionFrt, XmlTkBaseTimeUnitFrt,
XmlTkFormatCodeFrt, XmlTkMajorUnitTypeFrt, XmlTkMinorUnitTypeFrt
901 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
0x0005 The record that contains this structure MUST be in a sequence of records
that conforms to the CHARTFORMATS rule and appears directly before
the End record. This sequence of records specifies the chart element
targeted by the token structures in this chain.
The token structures in the chain specify chart properties and MUST be
one of the following: XmlTkShowDLblsOverMax,
XmlTkBackWallThicknessFrt, XmlTkFloorThicknessFrt,
XmlTkDispBlanksAsFrt, XmlTkStartSurface, XmlTkFormatCodeFrt,
XmlTkSpb, XmlTkTpb, XmlTkEndSurface
0x000F The CrtMlFrt record that contains this structure MUST be in a sequence
of records that conforms to the LD rule. This sequence of records
specifies the chart element targeted by the token structures in this
chain.
The token structures in the chain specify Legend properties and MUST
be: XmlTkOverlay
0x0013 The record that contains this structure MUST be in a sequence of records
that conforms to the SS rule. This sequence of records specifies the
chart element targeted by the token structures in this chain.
The token structures in the chain specify data marker properties and
MUST be: XmlTkSymbolFrt
0x0016 The record that contains this structure MUST be in a sequence of records
that conforms to the CHARTFORMATS rule and appears directly before
the End record. This sequence of records specifies the chart element
targeted by the token structures in this chain.
The token structures in the chain specify Plot area properties and MUST
be: XmlTkPieComboFrom12Frt
0x0019 The record that contains this structure MUST be in a sequence of records
that conforms to the ATTACHEDLABEL within the CHARTFORMATS rule.
This sequence of records specifies the chart element targeted by the
token structures in this chain.
The token structures in the chain specify Chart title properties and MUST
be: XmlTkOverlay
0x0037 The record that contains this structure MUST be in a sequence of records
that conformed to the CHARTFORMATS rule and appears directly before
the End record. This sequence of records specifies the chart element
targeted by the token structures in this chain.
The token structures in the chain specify View 3-D properties and MUST
be one of the following: XmlTkRAngAxOffFrt, XmlTkPerspectiveFrt,
XmlTkRotYFrt, XmlTkRotXFrt, XmlTkHeightPercent
chainRecords (variable): A chain of structures that specifies the additional properties or property
overrides for a given chart element, specified by the xmltkParent field. The token sequence
ABNF for each xmltkParent is specified according to the following table:
xmltkParent ABNF
902 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xmltkParent ABNF
[XmlTkMinorUnitTypeFrt]
2.5.305 XmlTkColorMappingOverride
The XmlTkColorMappingOverride structure specifies the color mapping override for a chart, stored
as an XML stream (section 2.1.7.22) as specified in [ECMA-376] Part 4, section 4.4.1.7.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgThemeOverride (variable)
...
rgThemeOverride (variable): An XmlTkBlob that specifies the color mapping override. The
rgThemeOverride.xtHeader.xmlTkTag MUST be equal to 0x0034. The XML stream (section
2.1.7.22) is specified in [ECMA-376] Part 4, section 4.4.1.7, and compressed by the compression
algorithm specified in [RFC1951].
2.5.306 XmlTkDispBlanksAsFrt
The XmlTkDispBlanksAsFrt structure specifies how blank data entries are represented. This
structure MUST only be present if the current chart does not support displaying blank entries. The
following chart group types do not support blank entries: area chart group, pie chart group, line chart
group with fStacked field of the Line record equal to 1, bar of pie chart group, pie of pie chart group
and doughnut chart group.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
blanksAs
903 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
blanksAs (6 bytes): An XmlTkToken that specifies how blank data entries are represented on the
current chart. The blanksAs.xtHeader.xmlTkTag field MUST be equal to 0x0066. This field
overrides the mdBlank field of the ShtProps record that specifies the current sheet. The
blanksAs.dValue field MUST be a value from the following table:
Value Meaning
0x0069 Specifies that blank values are spanned with a line. The current chart
group type MUST be area chart group or line chart group with fStacked
field of the Line record equal to 1.
2.5.307 XmlTkDouble
The XmlTkDouble structure specifies an Xnum (section 2.5.342) value for the xmltkChain field of
the CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
unused
dValue
...
2.5.308 XmlTkDWord
The XmlTkDWord structure specifies an integer value for the xmltkChain field of the CrtMlFrt
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
dValue
904 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xtHeader (4 bytes): An XmlTkHeader. The xtHeader.drType field MUST be equal to 0x04.
dValue (4 bytes): A signed integer that specifies the value of this structure.
2.5.309 XmlTkEnd
The XmlTkEnd structure specifies the end of a group of structures for the xmltkChain field of the
CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
2.5.310 XmlTkEndSurface
The XmlTkEndSurface structure specifies the end of a back wall definition. The back wall is the wall
that is parallel to the category (2) axis. This structure defines additional properties for the back wall
of the current chart. This structure MUST have a corresponding XmlTkStartSurface structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
endSurface
endSurface (4 bytes): An XmlTkEnd that specifies the end of a back wall definition. The
endSurface.xtHeader.xmlTkTag field MUST be equal to the startSurface.xtHeader.xmlTkTag
of the corresponding XmlTkStartSurface structure.
2.5.311 XmlTkFloorThicknessFrt
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
floorThickness
...
floorThickness (8 bytes): An XmlTkDWord that specifies the thickness of the floor of the chart as a
percentage of the height of the 3-D plot area. The floorThickness.dValue MUST be greater than
0, and less than or equal to 100. The floorThickness.xtHeader.xmlTkTag field MUST be equal
to 0x0036.
905 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.312 XmlTkFormatCodeFrt
The XmlTkFormatCodeFrt structure specifies the number formatting to use for the axis labels on the
date axis. This structure MUST only be present if the fUnlinkedIfmt field of the BRAI record that
corresponds to the axis labels of the date axis is set to 0. This structure MUST only be present if the
fDateAxis of the corresponding AxcExt record is equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
stFormat (variable)
...
stFormat (variable): An XmlTkString that specifies the number formatting to use for the axis labels
of the date axis. Details about the structure of number format string are specified in [ECMA-376]
Part 4: Markup Language Reference, section 3.8.31. This field overrides the ifmt field of the
corresponding BRAI record when the fUnlinkedIfmt field of the BRAI record is set to 0. The
stFormat.xtHeader.xmlTkTag field MUST be equal to 0x0064.
2.5.313 XmlTkHeader
The XmlTkHeader structure specifies the header of the XML token data types.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
drType (1 byte): An unsigned integer that specifies the data type. MUST be specified by the
containing structure.
xmlTkTag (2 bytes): An unsigned integer that specifies the token identifier. MUST be specified by
the containing structure.
2.5.314 XmlTkHeightPercent
The XmlTkHeightPercent structure specifies the height of the plot area as a percentage of its
width. This record MUST NOT exist for a pie chart group, and MUST only exist when a Chart3d record
is present and the f3DScaling field of the Chart3d record is equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
906 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
heightPercent (16 bytes): An XmlTkDouble that specifies the height of the plot area as a
percentage of its width. heightPercent.dValue MUST be greater than or equal to 5, MUST be
less than the maximum value of Xnum , and SHOULD<190> be less than or equal to 500. This
field overrides the pcHeight field of the Chart3d record in the chart sheet substream. The
heightPercent.xtHeader.xmlTkTag MUST be equal to 0x0065.
2.5.315 XmlTkLogBaseFrt
The XmlTkLogBaseFrt structure specifies the logarithmic base of a logarithmic value axis. This
structure MUST only be present if the fLog field of the corresponding ValueRange record is set to 1,
and the logarithmic base is not 10.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
logScale (16 bytes): An XmlTkDouble that specifies the logarithmic base of a logarithmic value axis.
logScale.dValue MUST be greater than or equal to 2, and less than or equal to 1000. The
logScale.xtHeader.xmlTkTag field MUST be equal to 0x0000. This field overrides the base, 10,
of the logarithmic value axis when the fLog field of the corresponding ValueRange record is set to
1.
2.5.316 XmlTkMajorUnitFrt
The XmlTkMajorUnitFrt structure specifies the value of the interval at which the major tick marks
are displayed on the date axis. This structure MUST only be present if the fAutoBase field of the
corresponding AxcExt record is set to 1 and the fDateAxis field of the corresponding AxcExt record is
equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
majorUnit (16 bytes): An XmlTkDouble that specifies a value that can override the catMajor field of
the corresponding AxcExt record. The majorUnit.xtHeader.xmlTkTag field MUST be equal to
0x0053. This field overrides the catMajor field of the corresponding AxcExt record when the
fAutoMajor field of the AxcExt record is set to 1.
2.5.317 XmlTkMajorUnitTypeFrt
The XmlTkMajorUnitTypeFrt structure specifies the value of the unit of time used by the interval at
which the major tick marks are displayed on the date axis. This structure MUST only be present if
the fAutoBase field of the corresponding AxcExt record is set to 1 and the fDateAxis of the
corresponding AxcExt record is equal to 1.
907 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
majorUnit
...
majorUnit (6 bytes): An XmlTkToken that specifies a value that can override the duMajor field of
the corresponding AxcExt record. The majorUnit.xtHeader.xmlTkTag field MUST be equal to
0x006A. This field overrides the duMajor field of the corresponding AxcExt record when the
fAutoMajor field of the AxcExt record is set to 1. The majorUnit.dValue MUST be a value from
the following table:
Value Meaning
2.5.318 XmlTkMaxFrt
The XmlTkMaxFrt structure specifies the maximum value on a logarithmic value axis. This structure
MUST only be present if the fAutoMax field of the corresponding ValueRange record is set to 0, the
fLog field of the corresponding ValueRange record is set to 1, and the logarithmic base is not 10.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
maxScale (16 bytes): An XmlTkDouble that specifies the maximum value on a logarithmic value
axis. The maxScale.dValue MUST be greater than the value specified in the minScale.dValue
field of the XmlTkMinFrt structure. The maxScale.xtHeader.xmlTkTag field MUST be equal to
0x0055. This field overrides the numMax field of the associated ValueRange record when the
fLog field of the ValueRange record is set to 1.
2.5.319 XmlTkMinFrt
The XmlTkMinFrt structure specifies the minimum value on a logarithmic value axis. This structure
MUST only be present if the fAutoMin field of the corresponding ValueRange record is set to 0, the
fLog field of the corresponding ValueRange record is set to 1, and the logarithmic base is not 10.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
908 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
...
...
minScale (16 bytes): An XmlTkDouble that specifies the minimum value on a logarithmic value axis.
The minScale.dValue MUST be less than the value specified in the maxScale.dValue field of the
XmlTkMaxFrt structure. The minScale.xtHeader.xmlTkTag field MUST be equal to 0x0056. This
field overrides the numMin field of the associated ValueRange record when the fLog field of the
ValueRange record is set to 1.
2.5.320 XmlTkMinorUnitFrt
The XmlTkMinorUnitFrt structure specifies the value of the interval at which the minor tick marks
are displayed on the date axis. This structure MUST only be present if the fAutoBase field of the
corresponding AxcExt record is set to 1 and the fDateAxis of the corresponding AxcExt record is
equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
minorUnit (16 bytes): An XmlTkDouble that specifies a value that can override the catMinor field of
the corresponding AxcExt record. The minorUnit.xtHeader.xmlTkTag field MUST be equal to
0x0054. This field overrides the catMinor field of the corresponding AxcExt record when the
fAutoMinor field of the AxcExt record is set to 1.
2.5.321 XmlTkMinorUnitTypeFrt
The XmlTkMinorUnitTypeFrt structure specifies the value of the unit of time used by the interval at
which the major tick marks are displayed on the date axis. This structure MUST only be present if
the fAutoBase field of the corresponding AxcExt record is set to 1 and the fDateAxis of the
corresponding AxcExt record is equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
minorUnit
...
minorUnit (6 bytes): An XmlTkToken that specifies a value that can override the duMinor field of
the corresponding AxcExt record. The minorUnit.xtHeader.xmlTkTag field MUST be equal to
0x006B. This field overrides the duMinor field of the corresponding AxcExt record when the
fAutoMinor field of the AxcExt record is set to 1. The minorUnit.dValue MUST be a value from
the following table:
Value Meaning
909 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Meaning
2.5.322 XmlTkNoMultiLvlLbl
The XmlTkNoMultiLvlLbl structure specifies whether multi-level labeling is enabled for a category
(2) axis.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fNoMultiLvlLbl
...
fNoMultiLvlLbl (6 bytes): An XmlTkBool that specifies whether single-level labeling is enabled for a
category (2) axis. The fNoMultiLvlLbl.xtHeader.xmlTkTag field MUST be equal to 0x002E.
MUST be a value from the following table:
Value Meaning
2.5.323 XmlTkOverlay
The XmlTkOverlay structure specifies whether the chart legend and title can overlap or can overlap
other chart elements.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fOverlay
...
fOverlay (6 bytes): An XmlTkBool that specifies whether the chart legend or title can overlap or can
overlap other chart elements. fOverlay.dValue MUST be 1. The fOverlay.xtHeader.xmlTkTag
field MUST be equal to 0x002F.
910 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.324 XmlTkPerspectiveFrt
The XmlTkPerspectiveFrt structure specifies the angle of the field of view for the plot area. This
structure MUST exist only for bar chart groups and pie chart groups, and MUST exist only when the
chart contains a Chart3d record and the fPerspective field of the Chart3d record equal to 1. When
the angle of the field of view is the default angle, 20, this structure MUST NOT be present.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
perspectiveAngle
...
perspectiveAngle (8 bytes): An XmlTkDWord that specifies the angle of the field of view. The
perspectiveAngle.xtHeader.xmlTkTag field MUST be 0x004D. The value of
perspectiveAngle.dValue field MUST equal to two times the view angle and MUST be greater
than or equal to 0 and less than or equal to 200. This field overrides the pcDist field of the
Chart3d record in the chart sheet substream.
2.5.325 XmlTkPieComboFrom12Frt
The XmlTkPieComboFrom12Frt structure specifies whether the current chart contains multiple chart
groups and one of them is a pie chart group.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fPieCombo
...
fPieCombo (6 bytes): An XmlTkBool that specifies whether the current chart contains multiple chart
groups and one of them is a pie chart group. fPieCombo.dValue MUST be 1. The
fPieCombo.xtHeader.xmlTkTag field MUST be equal to 0x005E.
2.5.326 XmlTkRAngAxOffFrt
The XmlTkRAngAxOffFrt structure specifies whether the plot area is rendered with a vanishing
point, rather than rendered at right angles. This structure MUST only exist for a bar chart group, and
only when the chart contains a Chart3d record is present and the fPerspective field of the Chart3d
record equal to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fRightAngAxOff
...
fRightAngAxOff (6 bytes): An XmlTkBool that specifies whether the plot area is rendered with a
vanishing point. This field corresponds to the fPerspective field of Chart3d record, and it MUST
only be present when the fPerspective field of the Chart3d record in the chart sheet substream is
911 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
equal to 1. The fRightAngAxOff.dValue field MUST be equal to 0x01. The
fRightAngAxOff.xtHeader.xmlTkTag field MUST be equal to 0x0050.
2.5.327 XmlTkRotXFrt
The XmlTkRotXFrt structure specifies the clockwise rotation, in degrees, of the 3-D plot area around
a horizontal line through the center of the 3-D plot area. It MUST only be present when the chart
contains a Chart3d, and as specified by the fPerspective field of the Chart3d record. This structure
MUST only exist for a bar chart group, and only when the rotation angle is less than 0 or greater than
44.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rotationX
...
2.5.328 XmlTkRotYFrt
The XmlTkRotYFrt structure specifies the clockwise rotation, in degrees, of the 3-D plot area around
a vertical line through the center of the 3-D plot area. MUST exist only when the chart contains a
Chart3d record, and as specified by the fPerspective field of the Chart3d record. This record MUST
only exist for a bar chart group, and only when the rotation angle is greater than 44.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rotationY
...
2.5.329 XmlTkShowDLblsOverMax
The XmlTkShowDLblsOverMax structure specifies whether data labels with values over the
maximum value of the value axis of the chart are displayed.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
fVDLOverMax
...
912 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fVDLOverMax (6 bytes): An XmlTkBool that specifies whether data labels with values over the
maximum value of the value axis of the chart are displayed. The
fVDLOverMax.xtHeader.xmlTkTag field MUST be equal to 0x005B.
2.5.330 XmlTkSpb
The XmlTkSpb structure specifies the shape formatting information of a chart object, stored as an
XML stream (section 2.1.7.22) as defined in [ECMA-376] Part 4, section 5.7.2.198.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
shapePropsStream (variable)
...
shapePropsStream (variable): An XmlTkBlob that specifies the shape formatting information. The
shapePropsStream.xtHeader.xmlTkTag MUST be equal to 0x001E. The XML stream (section
2.1.7.22) is defined in [ECMA-376] Part 4, section 5.7.2.198, and compressed by the compression
algorithm specified in [RFC1951].
2.5.331 XmlTkStart
The XmlTkStart structure specifies the start of a group of structures for the xmltkChain field of the
CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
2.5.332 XmlTkStartSurface
The XmlTkStartSurface structure specifies the beginning of a back wall. The back wall definition
applies to the current chart back wall. The back wall is the wall that is parallel to the category (2)
axis. This structure MUST have a corresponding XmlTkEndSurface structure.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
startSurface
Value Meaning
913 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.5.333 XmlTkString
The XmlTkString structure specifies a Unicode string value for the xmltkChain field of the CrtMlFrt
record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
cchValue
rgbValue (variable)
...
cchValue (4 bytes): An unsigned integer that specifies the count of characters of the rgbValue field.
rgbValue (variable): An array of Unicode characters. The size of the array, in characters, is specified
by the cchValue field. The size of the field, in bytes, MUST equal the result of the following
formula:
cchValue * 2.
2.5.334 XmlTkStyle
The XmlTkStyle structure specifies which built-in chart style is applied to the chart. This structure
MUST only exist when a non-default chart style is used.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
chartStyle
...
chartStyle (8 bytes): An XmlTkDWord that specifies a one-based index into the Style record of the
Global substream. MUST be greater than or equal to 1 and less than or equal to 48. MUST NOT be
2. The chartStyle.xtHeader.xmlTkTag MUST be equal to 0x0003.
2.5.335 XmlTkSymbolFrt
The XmlTkSymbolFrt structure specifies which built-in marker style is applied to the data markers
of the current line, scatter or radar chart group.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
markerStyle
...
914 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
markerStyle (6 bytes): An XmlTkToken that specifies the built-in marker style applied to the data
markers of the current line, scatter or radar chart group. The markerStyle.xtHeader.xmlTkTag
MUST be equal to 0x0022. It overrides the imk field of the MarkerFormat record when the fAuto
field of the MarkerFormat record is set to 1. The markerStyle.dValue field MUST be equal to a
value from the following table:
Value Meaning
2.5.336 XmlTkThemeOverride
The XmlTkThemeOverride structure specifies theme definition override for a chart, stored as an
XML stream (section 2.1.7.22) as defined in [ECMA-376] Part 4, section 5.1.8.12.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
rgThemeOverride (variable)
...
2.5.337 XmlTkTickLabelPositionFrt
The XmlTkTickLabelPositionFrt structure specifies that axis labels on a series axis are center-
aligned.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xmltkHigh
...
915 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
xmltkHigh (6 bytes): An XmlTkToken that specifies that axis labels on a series axis are center-
aligned. This is equivalent to the vat field of the corresponding Text record being set to 0x02. The
xmltkHigh.dValue MUST be set to 0x005D. The xmltkHigh.xtHeader.xmlTkTag field MUST be
equal to 0x005C. This value overrides the vat field of the corresponding Text record when the vat
field of the Text record is not set to 0x02.
2.5.338 XmlTkTickLabelSkipFrt
The XmlTkTickLabelSkipFrt structure specifies the interval of labels on the category (2) axis or
series axis. This structure MUST only be present if the catLabel field of the corresponding
CatSerRange record is not set to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
nInterval
...
nInterval (8 bytes): An XmlTkDWord that specifies the number of categories (2) between axis labels
on a category (2) axis or series axis. The nInterval.xtHeader.xmlTkTag field MUST be equal to
0x0051. It overrides the catLabel field of the corresponding CatSerRange record when the
catLabel field of the CatSerRange record is not set to 1.
2.5.339 XmlTkTickMarkSkipFrt
The XmlTkTickMarkSkipFrt structure specifies the number of major tick marks to skip on a
category (2) axis or a series axis. This structure MUST only be present if the catMark field of the
corresponding CatSerRange record is not set to 1.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
nInterval
...
nInterval (8 bytes): An XmlTkDWord that specifies the number of major tick marks to skip on a
category (2) axis or a series axis. The nInterval.xtHeader.xmlTkTag field MUST be equal to
0x0052. It overrides the catMark field of the corresponding CatSerRange record when the
catMark field of the CatSerRange record is not set to 1.
2.5.340 XmlTkToken
The XmlTkToken structure specifies a constant value for the xmltkChain field of the CrtMlFrt record.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
xtHeader
dValue
916 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
dValue (2 bytes): An unsigned integer that specifies the value of this structure.
2.5.341 XmlTkTpb
The XmlTkTpb structure specifies text formatting information for the current chart XML element,
stored as an XML stream (section 2.1.7.22), as specified in [ECMA-376] Part 4, section 5.7.2.217.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
textPropsStream (variable)
...
textPropsStream (variable): An XmlTkBlob that specifies the text formatting information. The
textPropsStream.xtHeader.xmlTkTag MUST be equal to 0x0020. The XML stream (section
2.1.7.22) is specified in [ECMA-376] Part 4, section 5.7.2.217, and compressed by the
compression algorithm specified in [RFC1951].
2.5.342 Xnum
Xnum is a 64-bit binary floating-point number as specified in [IEEE754]. This value MUST
NOT<191> be infinity, denormalized, not-a-number (NaN), nor negative zero.
2.5.343 XORObfuscation
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
key verificationBytes
key (2 bytes): An unsigned integer that specifies the obfuscation key. See [MS-OFFCRYPTO],
2.3.6.2 section, the first step of initializing XOR array where it describes the generation of 16-bit
XorKey value.
verificationBytes (2 bytes): An unsigned integer that specifies the password verification identifier.
See Password Verifier Algorithm.
2.5.344 XTI
The XTI structure specifies a supporting link and scope information about that supporting link.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
iSupBook itabFirst
itabLast
iSupBook (2 bytes): An unsigned integer that specifies the zero-based index of a SupBook record in
the collection of SupBook records in the Globals Substream ABNF. The referenced SupBook
917 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
specifies the supporting link referenced by this structure. This value MUST be less than the
number of SupBook records in this file.
itabFirst (2 bytes): A signed integer that specifies the scope of the supporting link, and if a scope is
specified, the first sheet in the scope of that supporting link. If the type of supporting link
specified by the cch and virtPath fields of the SupBook record is same-sheet referencing, add-in
referencing, DDE data source referencing, or OLE data source referencing, then no scope is
specified and this value MUST be -2. Otherwise, this field MUST contain a value from the following
table:
Value Meaning
-1 Sheet-level reference. The first sheet in the reference could not be found.
itabLast (2 bytes): A signed integer that specifies the scope of the supporting link, and if a
scope is specified, the last sheet in the scope of that supporting link. If the type of supporting link
specified by the cch and virtPath fields of the SupBook record is same-sheet referencing, add-in
referencing, DDE data source referencing, or OLE data source referencing, then no scope is
specified and this value MUST be -2. Otherwise, this field MUST contain a value from the following
table:
Value Meaning
-2 Workbook-level reference that applies to the entire workbook. MUST NOT be used if
itabFirst is not equal to -2.
-1 Sheet-level reference. The last sheet in the reference could not be found. SHOULD
NOT<192> be used if itabFirst is equal to -2.
Sheet-level reference. This specifies the last sheet in the reference. MUST NOT be
>= 0 used if itabFirst is equal to -2.
If the supporting link type is unused or referring to an external workbook, then this
value specifies the zero-based index of an XLUnicodeString in the rgst field of the
SupBook record specified in iSupBook. This XLUnicodeString specifies the name of
the last sheet within the external workbook that is in scope. This sheet MUST be a
worksheet or macro sheet.
If the supporting link type is self-referencing, then this value specifies the zero-based
index of a BoundSheet8 record in the Globals Substream ABNF that specifies the last
sheet within the scope of this reference. This sheet MUST be a worksheet or a macro
sheet.
918 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
2.6 XCB Structures
2.6.1 CTBWRAPPER
The CTBWRAPPER structure specifies a custom toolbar wrapper. This is the root record of the XCB
binary stream where custom toolbars are stored.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
...
...
...
rCTB (variable): Zero-based index array of CTB structures. The number of elements in the array
MUST be equal to ctbSet.ctb.
2.6.2 CTBS
The CTBS record specifies the number of custom toolbars stored in the file and the number of
available toolbar views.
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
reserved2 reserved3
ctb ctbViews
ictbView
bSignature (1 byte): An unsigned integer that specifies the toolbar set signature number. MUST be
0x01.
bVersion (1 byte): An unsigned integer that specifies the toolbar set version number. MUST be
0x01.
ctb (2 bytes): An unsigned integer that specifies the number of elements in the rCTB array of the
CTBWRAPPER structure that contains this structure. The value MUST be greater than 0x0000.
919 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ctbViews (2 bytes): An unsigned integer that specifies the number of available toolbar views. MUST
be 0x0003. There are three view modes and therefore each toolbar has three available views. The
view modes are shown in the following table:
ictbView (2 bytes): An unsigned integer that specifies the view mode number that the application
was in at the time the file was saved. MUST be equal to 0x0000 or 0x0001.
2.6.3 CTB
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
tb (variable)
...
...
...
ectbid
rTBC (variable)
...
tb (variable): Structure of type TB, as specified in [MS-OSHARED] section 2.3.1.6, that contains
toolbar information.
rVisualData (60 bytes): A zero-based index array of TBVisualData structures, specified in [MS-
OSHARED] section 2.3.1.9. The number of elements in this array MUST be equal to the value of
the ctbViews field of the CTBS structure contained by the CTBWRAPPER structure that contains
this structure. The index of each structure in the array corresponds to a view mode number. Refer
to the following table for the meaning of each TBVisualData, specified in [MS-OSHARED] section
2.3.1.9, structure according to its position in this array:
920 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Index of structure in Meaning of TBVisualData, specified in [MS-OSHARED] section 2.3.1.9,
array structure
in Web-only view.
ectbid (4 bytes): A signed integer that specifies the application’s specific custom toolbar identifier.
Value MUST be 0x00000FFF.
2.6.4 TBC
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
tbch (variable)
...
tbcCmd (optional)
tbcd (variable)
...
tbch (variable): Structure of type TBCHeader, as specified in [MS-OSHARED] section 2.3.1.10, that
specifies toolbar control header information.
tbcCmd (4 bytes): Structure of type TBCCmd. This field MUST only exist when tbch.tcid is not equal
to 0x0001, 0x06CC (1740), 0x03D8 (984), 0x03EC (1004), or 0x1051 (4177), and the value of
tbch.tct equals one of the values in the following table:
921 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
tbcd (variable): Structure of type TBCData, as specified in [MS-OSHARED] section 2.3.1.13, that
specifies toolbar control data. MUST exist if tbch.tct is not equal to 0x16. MUST NOT exist if
tbch.tct equals 0x16.
2.6.5 TBCCmd
1 2 3
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
0 0 0
cmdID (2 bytes): A signed integer that specifies the command identifier for this toolbar control.
Value MUST be in one of the tables specified in sections 2.3, 2.4, 2.5, 2.6, 2.7, and 2.8 of [MS-
CTXLS].
A - fHideDrawing (1 bit): A bit that specifies whether the toolbar control is visible if it is disabled. A
value of 1 specifies that the toolbar control is not visible if it is disabled. MUST only be used if
cmdType equals 0x10 or 0x14. MUST be 0 if cmdType is not equal to 0x10 and is not equal to
0x14.
cmdType (5 bits): An unsigned integer that specifies the command type for this toolbar control.
Value MUST be in the following table:
Value Meaning
Toolbar control uses a toolbar control grid command identifier. Value of cmdType MUST be one of the
0x00
values listed in [MS-CTXLS] section 2.8.
Toolbar control uses a toolbar control command identifier. Value of cmdType MUST be one of the values
0x01
listed in [MS-CTXLS] section 2.4.
Toolbar control uses a general command identifier. Value of cmdType MUST be one of the values listed
0x02
in [MS-CTXLS] section 2.3.
Toolbar control uses a menu toolbar control command identifier. Value of cmdType MUST be one of the
0x03
values listed in [MS-CTXLS] section 2.5.
Toolbar control uses a toolbar command identifier. Value of cmdType MUST be one of the values listed
0x05 in [MS-CTXLS] section 2.7. The value of the tbch.tct field of the TBC structure that contains this
structure MUST be equal to one of the following values: 0x0A, 0x0C, 0x0D, or 0x0E.
Toolbar control uses a menu toolbar command identifier. Value of cmdType MUST be one of the values
0x07 listed in [MS-CTXLS] section 2.6. The value of the tbch.tct field of the TBC structure that contains this
structure MUST be equal to one of the following values: 0x0A, 0x0C, 0x0D, or 0x0E.
Toolbar control command is determined by using the value of the tbch.tcid field of the TBC structure
0x08
that contains this structure.
922 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
0x10 Toolbar control uses an MSODGCID specifying a drawing command, as specified in [MS-ODRAW].
0x14 Toolbar control uses an MSODGCID specifying a drawing command, as specified in [MS-ODRAW].
2.7 Algorithms
The following algorithm specifies how hyperlink properties ([MS-OSHARED] section 2.3.3.1.18) that
are associated with a range of cells or shapes in a document construct their dwApp structure
member (1) value.
1. If the hyperlink is associated with a shape [MS-ODRAW] section 2.2.31, the dwApp value MUST
be 0xFFFFFFFF.
2. Otherwise the hyperlink MUST be associated with a range of cells on a sheet, and the dwApp
value is computed as follows:
3. Set an unsigned 2-byte integer (wHLIndex) equal to the zero-based index of the HLink structure
or HLinkTooltip structure in the sheet that the hyperlink is associated with.
4. Set an unsigned 2-byte integer (wWSIndex) equal to the zero-based index of the sheet in the
document on which this range of cells that the hyperlink is associated with is defined.
5. The value of dwApp MUST be equal to the bitwise OR of wWSIndex shifted 16 bits to the high
order and wHLIndex.
923 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3 Structure Examples
This section contains examples of some of the most commonly used data structures in MS-XLS files.
The examples are meant to be a starting point for an implementer learning the file format. They are
not meant to cover all records in the file format.
The following conventions are followed for all of the examples, unless noted otherwise:
The order of the records, structures, and fields within the example match their corresponding
order in the file format.
The examples begin with the first record relevant to the example and end with the last record
relevant to the example. An example cannot be used as a complete and standalone MS-XLS file.
The examples are self-contained and contiguous; no records or structures are omitted in the
middle of an example.
Undefined and ignored fields are not included in the field explanations.
Offsets for records and structures are omitted because these values can vary depending on how
the files are created and what optional records applications choose to include in files.
In the structure diagrams for the examples, the types of arrays are meant for illustration only and
can be disregarded.
This example shows conditional formatting applied to cell A2 with a "between" condition to make the
text red when the value is greater than or equal to 1.5, and less than or equal to 2.5.
The first record in this example is a CondFmt record, which specifies beginning of a collection of CF
records and defines the range of cells to which the conditional formatting rule applies. The CF record
follows next in this example, defining that conditional formatting rule.
The first record in this example, CondFmt, specifies beginning of a collection of CF records and defines
the range of cells to which the conditional formatting rule applies.
924 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
ccf: 0x0001 specifies that there is one CF record in the collection that follows this record.
fToughRecalc: 0x0 specifies that the appearance of the cell does not require significant processing.
refBound: A Ref8U structure specifies the bounds of the set of cells to which the rules are applied.
refBound.rwFirst: An RwU structure that specifies the index of the first row in the range.
refBound.rwFirst.rw: 0x0001 specifies that the range starts in row two of the worksheet.
refBound.rwLast: A RwU structure that specifies index of the last row in the range.
925 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
refBound.rwLast.rw: 0x0001 specifies that the range ends in row two of the worksheet.
refBound.colFirst: A ColU structure that specifies the index of the first column in the range.
refBound.colFirst.col: 0x0000 specifies that the range starts in column A of the worksheet.
refBound.colLast: A ColU structure that specifies the index of the last column in the range.
refBound.colLast.col: 0x0000 specifies that the range ends in column A of the worksheet.
sqref: An SqRefU structure that specifies the cells to which the conditional formatting rules apply.
sqref.rgrefs.ref[0]: This is the first Ref8U structure that specifies the range of cells on the sheet
where the conditional formatting rules apply.
sqref.rgrefs.ref[0].rwFirst.rw: 0x0001 specifies the range starts in row two of the worksheet.
sqref.rgrefs.ref[0].rwLast.rw: 0x0001 specifies the range ends in row two of the worksheet.
The next record in this example, CF, specifies a conditional formatting rule.
Si
Structure Value
ze
00
CF - Cf
94
00
BYTE - ct 0x01
01
00
BYTE - cp 0x01
01
00 USHORT -
0x0009
02 cce1
00 USHORT -
0x0009
02 cce2
00 DXFN -
7C rgbdxf
1 DWORD
0x1
bit - alchNinch
1 DWORD
0x1
bit - alcvNinch
1 DWORD
0x1
bit - wrapNinch
1 DWORD
0x1
bit - trotNinch
1 DWORD
0x1
bit - kintoNinch
DWORD
1 -
0x1
bit cIndentNinc
h
1 DWORD 0x1
926 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Si
Structure Value
ze
bit -
fShrinkNinc
h
DWORD
1 -
0x1
bit fMergeCellN
inch
DWORD
1
- 0x1
bit
lockedNinch
DWORD
1 -
0x1
bit hiddenNinc
h
DWORD
1
- 0x1
bit
glLeftNinch
DWORD
1 -
0x1
bit glRightNinc
h
DWORD
1
- 0x1
bit
glTopNinch
DWORD
1 -
0x1
bit glBottomNi
nch
DWORD
1 -
0x1
bit glDiagDown
Ninch
DWORD
1 -
0x1
bit glDiagUpNi
nch
1 DWORD
0x1
bit - flsNinch
1 DWORD
0x1
bit - icvFNinch
1 DWORD
0x1
bit - icvBNinch
1 DWORD
0x1
bit - ifmtNinch
1 DWORD
0x1
bit - fIfntNinch
1 DWORD
0x1
bit - unused1
3
DWORD
bit 0x0
- reserved1
s
DWORD
1
- 0x0
bit
ibitAtrNum
1 DWORD
0x1
bit - ibitAtrFnt
927 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Si
Structure Value
ze
1 DWORD
0x0
bit - ibitAtrAlc
1 DWORD
0x0
bit - ibitAtrBdr
1 DWORD
0x0
bit - ibitAtrPat
1 DWORD
0x0
bit - ibitAtrProt
DWORD
1 -
0x0
bit iReadingOr
derNinch
1 WORD -
0x0
bit fIfmtUser
1 WORD -
0x1
bit unused2
1 WORD -
0x0
bit fNewBorder
12
WORD -
bit 0x000
reserved2
s
1 WORD -
0x0
bit fZeroInited
00
DXFFntD -
76
dxffntd
00 BYTE
0x00
01 - cchFont
00
unused - 0x000100010000000000E03F000000000000E03F0100630075006D0065006E00740020005
3F
unused 7007200690074006500720000000000000001040006DC00580303FF
00 Stxp
10 - stxp
00
LONG - 0xFFFFFFFF
04
twpHeight
00 Ts
04 - ts
1
DWORD - 0x0
bit
unused1
1
DWORD - 0x0
bit
ftsItalic
5
bit DWORD - 0x00
s unused2
1
DWORD - 0x0
bit
ftsStrikeout
24
bit DWORD - 0x000000
s unused3
00
0x0000
02 SHORT - bls
928 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Si
Structure Value
ze
00
0x0000
02 SHORT - sss
00
0x00
01 BYTE - uls
00
BYTE - 0x00
01
bFamily
00
BYTE - 0x00
01
bCharSet
00
BYTE - 0x00
01
unused
00
LONG - 0x0000000A
04
icvFore
00
LONG - 0x00000000
04
reserved
00 Ts -
04 tsNinch
1
DWORD - 0x0
bit
unused1
1
DWORD - 0x1
bit
ftsItalic
5
bit DWORD - 0x06
s unused2
1
DWORD - 0x1
bit
ftsStrikeout
24
bit DWORD - 0x000000
s unused3
00
DWORD - 0x00000001
04
fSssNinch
00
DWORD - 0x00000001
04
fUlsNinch
00
DWORD - 0x00000001
04
fBlsNinch
00
DWORD - 0x00000001
04
unused2
00
0x00000000
04 LONG - ich
00
0x7FFFFFFF
04 LONG - cch
00
FontIndex -
02
iFnt
929 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Si
Structure Value
ze
00
USHORT - 0x0001
02
ifnt
00 CFParsedFor
09 mulaNoCCE -
rgce1
00 Rgce -
09 rgce
00 Ptg -
09 Ptg[0]
00
PtgNum -
09
PtgNum
7
bit 0x1F
BYTE - ptg
s
1
BYTE - 0x0
bit
reserved0
00
Double - 0x3FF8000000000000
08
value
00 CFParsedFor
09 mulaNoCCE -
rgce2
00 Rgce -
09 rgce
00 Ptg -
09 Ptg[0]
00
PtgNum -
09
PtgNum
7
bit 0x1F
BYTE - ptg
s
1
BYTE - 0x0
bit
reserved0
00
Double - 0x4004000000000000
08
value
Figure 21: Structure of Cf
ct: 0x01 specifies that the conditional formatting rule requires two inputs. The inputs, rgce1 and
rgce2, are evaluated with the comparison function specified in the cp field. If the result of the
evaluation is TRUE, the conditional formatting rule is applied.
cp: 0x01 specifies that the comparison function evaluates to TRUE if the cell value is greater than or
equal to the value of the rgce1 field and less than or equal to the value of the rgce2 field.
cce1: 0x0009 specifies that the size of the rgce1 field is 9 bytes.
cce2: 0x0009 specifies that the size of the rgce2 field is 9 bytes.
930 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbdxf: A DXFN structure that specifies the formatting that is applied if the defined condition
evaluates to TRUE.
rgbdxf.glTopNinch: 0x1 specifies that the properties for the top border of the cell can be updated
and that rgbdxf.dxfbdr.dgTop and rgbdxf.dxfbdr.icvTop are ignored.
rgbdxf.ibitAtrNum: 0x0 specifies that the number format is not part of this structure.
rgbdxf.ibitAtrAlc: 0x0 specifies that alignment information is not a part of this structure.
rgbdxf.ibitAtrBdr: 0x0 specifies that border formatting information is not a part of this structure.
rgbdxf.ibitAtrPat: 0x0 specifies that pattern information is not a part of this structure.
rgbdxf.ibitAtrProt: 0x0 specifies that rotation information is not a part of this structure.
931 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbdxf.iReadingOrderNinch: 0x1 specifies that rgbdxf.dxfalc.iReadingOrder is ignored.
rgbdxf.fIfmtUser: 0x0 specifies that the number format is not a user-defined format string.
rgbdxf.fNewBorder: 0x0 specifies that the border formats apply to all cells in the range.
rgbdxf.dxffntd: A DXFFntD structure that specifies the font information used for formatting.
rgbdxf.dxffntd.cchFont: 0x00 specifies the number of characters in the font name string.
rgbdxf.dxffntd.ich: 0x00000000 specifies that the font formatting is applied starting from the first
character.
rgbdxf.dxffntd.cch: 0x7FFFFFFF specifies that the font formatting applies to 2147483647 characters.
rgce1: A CFParsedFormulaNoCCE structure that specifies the first operand of the comparison.
932 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgce1.rgce.Ptg[0].PtgNum.ptg: 0x1F specifies that this Ptg is a floating point value.
rgce2: A CFParsedFormulaNoCCE structure that specifies the second operand of the comparison.
This example shows a workbook-level defined name, MyName, that points to the cell E4 on the
second sheet. A defined name is specified by a Lbl record, which is a part of the Globals Substream
(not included in this example for brevity). This example includes the ExternSheet record referenced by
the Lbl record, and the SupBook record referenced by the ExternSheet record.
The first record in this example, Lbl, stores the defined name.
933 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fHidden: 0x0 specifies that the defined name is visible in the list of defined names.
fFunc: 0x0 specifies that the defined name does not represent an XLM.
fOB: 0x0 specifies that the defined name does not represent a VBA macro.
fProc: 0x0 specifies that the defined name does not represent a macro.
fCalcExp: 0x0 specifies that the defined name does not represent a function that could return an
array.
fBuiltin: 0x0 specifies that the defined name does not represent a built-in name.
934 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fGrp: 0x00 specifies the function category for the defined name is "All".
fWorkbookParam: 0x0 specifies that this defined name is not a workbook parameter.
chKey: 0x00 specifies there is no shortcut key for the macro represented by the defined name.
cch: 0x06 specifies that there are six characters in the Name field.
cce: 0x0007 specifies that the length of the rgce field is 7 bytes.
itab: 0x0000 specifies that the defined name is not local to a sheet.
rgce: A NameParsedFormula that specifies the formula (section 2.2.2) that represents the defined
name.
rgce.Ptg[0].PtgRef3d.ixti: 0x0000 specifies that this range refers to the sheet specified by the first
XTI element in the ExternSheet record.
rgce.Ptg[0].PtgRef3d.loc.row.rw: 0x0003 specifies that the referenced cell is in row four of the
worksheet.
The next record in this example is an ExternSheet record. This record defines the set of sheets that
are referenced by this workbook. It is included in this example because the ixti field in the Lbl record
points to the XTI structure within this record.
cXTI: 0x0001 specifies that there is one XTI record in the rgXTI array.
rgXTI.xti[0].iSupBook: 0x0000 specifies the reference to the first SupBook record in the global
substream.
935 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgXTI.xti[0].itabFirst: 0x0001 specifies that the first sheet referenced by the defined name is the
second sheet in the workbook (Sheet2). The related BoundSheet8 record is omitted for brevity.
rgXTI.xti[0].itabLast: 0x0001 specifies that the last sheet referenced by the defined name is the
second sheet in the workbook (Sheet2).
The next record in this example, SupBook, stores information about a workbook that is referenced by
this workbook.
ctab: 0x0003 specifies that there are three sheets in the referenced workbook.
cch: 0x0401 specifies that this record defines a self-referencing supporting link.
3.3 Table
This example shows the records that make up a table. The following figure shows a possible
implementation of the table discussed in this example:
The first record in this example is a FeatHdr11 record that appears in the worksheet substream (the
worksheet substream is not included in this example for brevity). This record stores common
information about all the tables on this sheet.
936 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
frt.rt: 0x0871 specifies that this record belongs to a record of type FeatHdr11.
frt.grbitFrt.fFrtRef: 0x0000 specifies that this record does not specify a range of cells.
frt.grbitFrt.fFrtAlert: 0x0000 specifies not to alert the user of possible problems when saving the file
as an earlier version of the file format.
idListNext: 0x00000002 specifies the next identifier to try when assigning a unique identifier to a
new table.
The next record in this example, Feature11, specifies information about this table on this sheet.
14
USHORT - reserved 0x0000
bits
937 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
938 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
939 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Feat11FieldDataItem -
0035
Feat11FieldDataItem[0]
20
DWORD - unused2 0x00000
bits
940 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Feat11FieldDataItem -
0036
Feat11FieldDataItem[1]
20
DWORD - unused2 0x00000
bits
Feat11FieldDataItem -
003A
Feat11FieldDataItem[2]
941 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
20
DWORD - unused2 0x00000
bits
frtRefHeaderU.rt: 0x0872 specifies that this record belongs to a record of type Feature11.
frtRefHeaderU.grbitFrt.fFrtRef: 0x1 specifies that the containing record specifies a range of cells.
frtRefHeaderU.grbitFrt.fFrtAlert: 0x0 specifies not to alert the user of possible problems when
saving as an earlier version of the file format.
frtRefHeaderU.ref8: Specifies a range of cells on the sheet. This refers to the range C4:E7. Because
frt.rt is equal to 0x0872, this field is ignored.
frtRefHeaderU.ref8.rwFirst.rw: 0x0003 specifies the first row in the table on the sheet. This refers
to row four of the sheet.
942 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
frtRefHeaderU.ref8.rwLast: Specifies the last row in the table range.
frtRefHeaderU.ref8.rwLast.rw: 0x0006 specifies the last row in the table on the sheet. This refers
to row seven of the sheet.
frtRefHeaderU.ref8.colFirst.col: 0x0002 specifies the first column in the table on the sheet. This
refers to column C of the sheet.
frtRefHeaderU.ref8.colLast.col: 0x0004 specifies the last column in the table on the sheet. This
refers to column E of the sheet.
isf: 0x0005 specifies that the shared feature type is a table feature.
cref2: 0x0001 specifies the count of Ref8U records within the refs2 field. refs2 contains one Ref8U
record.
cbFeatData: 0x00000000 specifies that the size of the rgbFeat field is calculated using the following
formula:
Size of rgbFeat = record total size in bytes – size of refs2 in bytes – 27 bytes
refs2: Specifies the references to the ranges of cells within the sheet that are affected by the feature.
refs2.ref[0]: The first Ref8U record in the array. It specifies the range C4:E7. This specifies the
range of cells for the table.
refs2.ref[0].rwFirst.rw: 0x0003 specifies that the first row of the range is row four.
refs2.ref[0].rwLast.rw: 0x0006 specifies that the last row of the range is row seven.
refs2.ref[0].colFirst.col: 0x0002 specifies that the first column of the range is column C.
refs2.ref[0].colLast.col: 0x0004 specifies that the last column of the range is column E.
rgbFeat: Specifies any of the possible features for this record. Contains a TableFeatureType record,
as indicated by isf.
rgbFeat.TableFeature.lt: 0x00000000 specifies the type of data source for the table is a range.
rgbFeat.TableFeature.crwHeader: 0x00000001 specifies there is a row at the top of the table that
is used as a header row.
943 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbFeat.TableFeature.rupBuild: This value is not valid, as specified by
rgbFeat.TableFeature.fGoodRupBld.
rgbFeat.TableFeature.fInsertRowInsCells: 0x0 specifies rows are not shifted down because the
insert row is not visible.
rgbFeat.TableFeature.fShownTotalRow: 0x0 specifies the total row is not displayed at the bottom
of the table.
rgbFeat.TableFeature.verXL: 0xB specifies the table was created using Microsoft Office Excel 2003.
944 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbFeat.TableFeature.entryId: 1 specifies the unique identifier for the table. This is ignored
because the lt field is not equal to 0x00000002.
rgbFeat.TableFeature.fieldData.Feat11FieldDataItem[0].cbFmtInsertRow: 0x00000000
specifies that the dxfFmtInsertRow field does not exist.
945 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgbFeat.TableFeature.fieldData.Feat11FieldDataItem[0].strFieldName: Specifies the name of
the column, as provided by the data source.
rgbFeat.TableFeature.fieldData.Feat11FieldDataItem[0].AutoFilter.cbAutoFilter: 0x00000000
specifies that the recAutoFilter field does not exist.
3.4 Filters
This example shows how filters are applied to a range of cells (C4:C8) on a sheet when the
AutoFilter is set to display items that are greater than 70.
The first record in this example is the FilterMode record that appears in a worksheet substream (the
worksheet substream is not included in this example for brevity). This record specifies that the data in
the containing sheet is filtered.
Other records mentioned in this example are the AutoFilterInfo record and AutoFilter record. They
specify the properties of the AutoFilter and define the conditions that are used to filter the data.
The first record in this example, FilterMode, specifies that the data in the containing sheet is filtered.
946 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure
The AutoFilterInfo record specifies the number of columns that have AutoFilter enabled and indicates
the beginning of the collection of AutoFilter records.
Next, the AutoFilter record specifies the criteria that are used to filter the data.
0004 RkNumber - rk
947 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
iEntry: 0x0000 specifies that this AutoFilter applies to the first column in this sheet.
wJoin: 0x0 specifies that filtering conditions specified in doper1 and doper2 conditions are joined by
a logical AND operation when applying the AutoFilter.
doper1.vtValue.rk.fX100: 0x0 specifies that the value in the doper1.vtValue.rk.num field was not
multiplied by 100 when it was saved.
doper1.vtValue.rk.fInt: 0x0 specifies that the value in the doper1.vtValue.rk.num field is 30 most
significant bits of a 64-bit binary floating-point number.
This example shows a workbook where the cell F5 contains an external reference to
[Book1.xls]Sheet1!B3. The example workbook and Book1.xls are in the same folder, and the cell
contents of Sheet1!B3 in the external workbook contains the string "External Cell". The following
figure shows a possible implementation of the external reference discussed in this example:
948 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 33: External reference in this example a sheet
The first record in this example is the Formula record that appears in the global substream (the global
substream is not included in this example for brevity). This record specifies the formula for the cell F5.
The formula is a reference to a cell in an external worksheet.
Other records mentioned in this example are String, SupBook, XCT, CRN and ExternSheet records.
These records specify the external referenced cell as well as the external cell cache that stores the
cached value of the cell.
0002 Rw - rw
949 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
cell: Specifies a cell in this sheet that contains the external reference. The specified cell is F5.
cell.ixfe.ixfe: 0x000F specifies that the cell has the default cell format.
val: Specifies the value to which the formula evaluated. This specifies the value stored in cell F5.
950 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
val.byte1: 0x00 specifies that the value to which this formula is evaluated is a string value. The
string value is stored in the String record following this record.
val.fExprO: 0xFFFF specifies that the value to which this formula evaluated is a Boolean value, an
error value, a string value, or a blank string value and that val.byte2, val.byte3, val.byte4,
val.byte5, and val.byte6 are ignored. val.byte2, val.byte3, val.byte4, val.byte5, and
val.byte6 are omitted from this example for brevity.
fAlwaysCalc: 0x0 specifies that this cell value is not to be calculated during the next recalculation.
fFill: 0x0 specifies that this cell has either a fill alignment or a center-across-selection
alignment.
fShrFmla: 0x0 specifies that the formula (section 2.2.2) is not part of a shared formula.
fClearErrors: 0x0 specifies that the formula is not excluded from formula error checking.
formula.rgce: Specifies the sequence of Ptgs structures. The sequence of Ptgs specify the formula.
formula.rgce.Ptg[0]: The first and only Ptg structure in the sequence. Specifies that there is only
one element in the formula.
formula.rgce.Ptg[0].PtgRef3d.type: 0x2 specifies that the PtgRef3d data type is a single value.
formula.rgce.Ptg[0].PtgRef3d.ixti: 0x0000 specifies the first XTI structure of the rgXTI array in
the ExternSheet record. The first XTI of the rgXTI array specifies the Supbook record that
specifies the target sheet that contains the referenced cell. This Supbook record is the third record
in this example. The ExternSheet record is the seventh record in this example.
The next record in this example, String, specifies the Unicode string value to which the formula
evaluated.
951 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
The next record in this example, Supbook, specifies an external workbook referencing supporting link
and specifies the beginning of a collection of records that specifies the referenced cell (B3) in the
External Workbook (Book1.xls). This record is the first SupBook record in the global substream.
The workbook of the referenced cell (Book1.xls) is specified in the Supbook record. The sheet of the
referenced cell (Sheet1) is specified in the XCT record following this record. The referenced cell (B3) is
specified in the CRN record following the XCT record.
ctab: 0x0003 specifies that there are three sheets in the referenced workbook.
virtPath: Book1.xls specifies the encoded path of the referenced workbook. The length of the string is
10 characters, but the first character is an unprintable Unicode character with a value of 0x01.
rgst: Specifies an array of three sheets contained within the referenced workbook.
rgst.rgst[0]: Sheet1 specifies the name of the first sheet in the referenced workbook.
rgst.rgst[1]: Sheet2 specifies the name of the second sheet in the referenced workbook.
rgst.rgst[2]: Sheet3 specifies the name of the third sheet in the referenced workbook.
The next record in this example, XCT, specifies the beginning of an external cell cache and specifies
the beginning of a collection of CRN records. The collection of CRN records specifies the value of the
cell (B3) in a sheet (Sheet1) in the external cell cache.
952 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
ccrn: 0x0001 specifies that there is one CRN record immediately following this record.
itab: 0x0000 specifies the first element in the rgst field of the SupBook that specifies that the
referenced cell is in the Sheet1 sheet.
The next record in this example, CRN, specifies the value of the referenced cell in the external cell
cache.
colLast: Specifies the column of the last cell that has a value in the external cell cache.
colLast.col: 0x01 specifies that the column of the last cell is column B.
colFirst: Specifies the column of the first cell that has a value in the external cell cache.
colFirst.col: 0x01 specifies that the column of the first cell is column B.
row: Specifies the row index of the cell that has a value in the external cell cache.
crnOper: Specifies an array of cell values in the range specified by colLast, colFirst and row, which
is B3.
953 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.5.6 External References: SupBook 2
The next record in this example, SupBook, specifies a self-referencing supporting link. The self-
referencing supporting link is used when a cell in this workbook refers to a cell in a different sheet in
the same workbook. In this example this record is not used. This is the second SupBook record in the
global substream.
The VirtPath field and rgst field of this record are similar to the corresponding fields of the third
record (SupBook) in this example and are omitted for brevity.
ctab: 0x0003 specifies that there are three sheets in the referenced workbook.
The next record in this example, ExternSheet, specifies a collection of XTI records that specify the
supporting link information.
cXTI: 0x0002 specifies that there are two elements in the rgXTI array.
rgXTI: An array of XTI elements. The number of elements in the array is specified by the cXTI field.
954 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgXTI.xti[0].iSupBook: 0x0000 specifies the reference to the first SupBook record in the global
substream.
rgXTI.xti[0].itabFirst: 0x0000 specifies that the supporting link has a sheet-level scope and
specifies the first sheet, within the referenced workbook, that is in scope. The first sheet in scope
is Sheet1.
rgXTI.xti[0].itabLast: 0x0000 specifies that the supporting link has a sheet-level scope and
specifies the last sheet, within the referenced workbook, that is in scope. The last sheet in scope is
Sheet1.
rgXTI.xti[1]: This is the second XTI element in the array. (The details of the referenced XTI record
are omitted for brevity.)
rgXTI.xti[1].iSupBook: 0x0001 specifies the reference to the second SupBook record in the global
substream.
This example shows a column chart object on a sheet. The set of records that specify the column
chart exist in the chart sheet substream of the file (the chart sheet substream is not included in this
example for brevity). The column chart specified in this example has a single series with three control
points. The following figure shows a possible implementation of the column chart discussed in this
example:
955 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.6.1 Column Chart Object: Chart
The first record in this example is the Chart record. This record specifies the position and dimensions
of the chart area (section 2.2.3.17). The position of the chart area is automatically calculated by the
application and the dimension of the chart is specified by the dx and dy fields.
x: The value of this field is ignored because the fAutoPosition field of the Frame record that follows
this record equals 1.
y: The value of this field is ignored because the fAutoPosition field of the Frame record that follows
this record equals 1.
dx: 0x01493FD0 specifies the width of the chart in points. This field is a fixed point and the width is
calculated using the following formula:
dy: 0x00F0C000 specifies the height of the chart in points. This field is a fixed point and the height is
calculated using the following formula:
The next record in this example, Begin, specifies the beginning of a collection of records that specifies
the chart area (section 2.2.3.17) of the chart.
The next record in this example, Scl, specifies the zoom level of the current view in the window used
to display the sheet. The zoom level of the current view is equal to 1.
The next record in this example, PlotGrowth, specifies the scale factors for font scaling in the plot
area.
(The details of the Begin record, the Scl record, and the PlotGrowth record are omitted from the
example for brevity.)
The next record in this example, Frame, specifies the type, size, and position of the frame around the
column chart. The size of the frame is stored in the Chart record and the position of the frame is
automatically calculated by the application.
956 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
frt: 0x0000 specifies that the frame surrounding the chart element does not have a shadow.
fAutoSize: 0x0000 specifies that the size of the frame is not automatically calculated. The width (dx
field) and height (dy field) of the Chart record are used as the size of the frame.
fAutoPosition: 0x0001 specifies that the position of the frame is automatically calculated by the
application and the x and y fields of the Chart record are ignored.
The next record in this example, LineFormat, specifies the appearance of the lines of the frame.
(Fields in this record that are ignored because fAuto is 0x1 are omitted for brevity.)
fAuto: 0x1 specifies that the contents of the lns, we, icv, and rgb field are ignored and the defaults
specified in the following table are used instead:
957 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Attribute Default Value
Line color (icv) 0x004D
Line color (rgb) 0x004D
fAxisOn: 0x0000 specifies this field is ignored because the previous record is not an AxisLine record
with an id field equal to 0X0000, specifying the frame does not have any axis lines.
The next record in this example, AreaFormat, specifies the patterns and colors used in the filled area
of the column chart.
(Fields in this record that are ignored because fAuto is 0x1 are omitted for brevity.)
fAuto: 0x1 specifies that the fill colors are automatically set by the application.
958 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The next record in this example, End, specifies the end of a collection of records that specifies the
chart area (section 2.2.3.17) of the chart. The details of End record are omitted from the example for
brevity.
The next record in this example, Series, specifies a Series of this chart, the type of data it contains
and the number of data fields that make up this series. The series of this column chart contains three
textual categories (2) and three numerical values. In this example the series of this column chart is
specified by the first Series record in the collection of Series records in the current chart sheet
substream.
Fields in this record that are ignored because this chart group is not of the type bubble chart group,
are omitted for brevity.
sdtX: 0x0003 specifies that the categories (2) contain text information.
Records following this record, and before the next BRAI record, are omitted for brevity.
The next record in this example, BRAI, specifies a reference to cells in a sheet that have values that
specify the name of the series.
959 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
id: 0x00 specifies that the values of the referenced cells specify the name of the series.
rt: 0x02 specifies that the data source is values from a range of cells in a sheet specified by the rgce
field.
fUnlinkedIfmt: 0x0 specifies that the series name maintains the number formatting of the referenced
data.
ifmt: 0x0000 specifies that the number format for the name of the series is automatically
determined by the application.
formula.rgce.Ptg[0].PtgRef3d.type: 0x1 specifies that the value of the ptg field is a reference to a
range.
formula.rgce.Ptg[0].PtgRef3d.ixti: 0x0000 specifies that the name of the series is found on the
sheets referenced by the first XTI in the ExternSheet record.
formula.rgce.Ptg[0].PtgRef3d.loc: Specifies that the coordinates of the referenced cell for the
name of the series refers to cell A2.
960 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
formula.rgce.Ptg[0].PtgRef3d.loc.row.rw: 0x0001 specifies that the referenced cell is in row two.
The next record in this example, SeriesText, specifies the name of this Series. The name of this Series
is Customers.
The next record in this example, BRAI, specifies a reference to data in a sheet that specifies the
values of this series. The values for this series are stored in the range B2:D2.
961 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
id: 0x01 specifies that the referenced data specifies the values of the series.
rt: 0x02 specifies that the data source is values from a range of cells in a sheet specified by the rgce
field.
fUnlinkedIfmt: 0x0 specifies that the series maintains the number formatting of the referenced data.
ifmt: 0x0000 specifies that the number format for the values of the series is automatically
determined by the application.
formula.cce: 0x000B specifies that the length of the rgce field is 11 bytes.
formula.rgce.Ptg[0].PtgArea3d.type: 0x01 specifies that the value of the ptg field is a reference
to a range.
formula.rgce.Ptg[0].PtgArea3d.ixti: 0x0000 specifies the values of the series are found on the
sheet referenced by the first XTI structure in the ExternSheet record.
962 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
formula.rgce.Ptg[0].PtgArea3d.area.rowLast.rw: 0x0001 specifies that row two of the sheet is
the last row of the rectangular range of cells.
The next record in this example, BRAI, specifies a reference to data in a sheet that specifies the
category (2) names of this series. The category (2) names are stored in the range B1:D1.
963 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
id: 0x02 specifies that the referenced data specifies the category (2) name of the series.
rt: 0x02 specifies that the data source is values from a range of cells in a sheet specified by the rgce
field.
fUnlinkedIfmt: 0x0000 specifies that the series maintains the number formatting of the referenced
data.
ifmt: 0x0000 specifies that the number format for the category (2) names of the series is
automatically determined by the application.
formula.cce: 0x000B specifies that the length of the rgce field is 11 bytes.
formula.rgce.Ptg[0].PtgArea3d.type: 0x01 specifies that the data type for the value of the ptg
field is a reference to a range.
formula.rgce.Ptg[0].PtgArea3d.ixti: 0x0000 specifies that the name of the category (2) is found
on the sheet referenced by the first XTI structure in the ExternSheet record.
(Records following this record, and before the next DataFormat record, are omitted for brevity.)
964 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.6.10 Column Chart Object: DataFormat
The next record in this example, DataFormat, specifies the series of this chart to which the formatting
information applies. The formatting information is specified by the Lineformat record and AreaFormat
record following this record. (The Lineformat and AreaFormat records are not included in this example
for brevity.)
xi: 0xFFFF specifies that the LineFormat record and AreaFormat record following this record specify
the format of the series.
yi: 0x0000 specifies that the series of this chart is specified by the first Series record in the collection
of Series records in the current chart sheet substream.
iss: 0x0000 specifies the number of the series based on the ordering in the legend, which is zero.
The next two records in this example, LineFormat and AreaFormat, specify the formatting information
for the series. (The LineFormat record and AreaFormat record are similar to the LineFormat record and
AreaFormat record defined earlier in the example and are omitted for brevity.)
The next record in this example, SerToCrt, specifies the chart that contains the series specified in this
example. The ChartFormat record that specifies this chart is the first ChartFormat record in the chart
sheet subsream.
id: 0x0000 specifies that the chart that contains the series in this example is specified by the first
ChartFormat record in the collection of ChartFormat records in the current chart sheet substream.
(Records following this record, and before the next ShtProps record, are omitted for brevity.)
The next record in this example, ShtProps, specifies the properties of this chart.
965 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fManSerAlloc: 0x0 specifies that the series is not automatically allocated for this chart.
fNotSizeWith: 0x0 specifies not to size this chart with the window.
fAlwaysAutoPlotArea: 0x0 specifies that the default plot area dimension is used for this chart.
mdBlank: 0x00 specifies that empty cells are not plotted on this chart.
The next record in this example, DefaultText, specifies the text elements that are formatted using the
information specified in the Text record that follows this record.
id: 0x0002 specifies that the default formatting of all text in the chart that does not use scalable fonts
is to be set by the Text record following this record.
The next record in this example, Text, specifies the position and appearance of text fields specified in
the preceding DefaultText record.
966 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
The position and size specified by the x field, y field, dx field, and dy field is ignored because this
record is followed by a Pos record. The fShowLabelAndPerc field, fShowPercent field,
fShowBubbleSizes field, fShowLabel field, and dlp field are ignored because this is a column chart.
967 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
at: 0x02 specifies that the horizontal alignment of the text is center-alignment.
vat: 0x02 specifies that the vertical alignment of the text is center-alignment.
fAutoText: 0x0001 specifies that the text value of the text field is automatically generated and has
not been changed.
fGenerated: 0x0001 specifies that the properties of the text field are automatically generated and
was not changed.
icvText.icv: 0x004D specifies that the default chart foreground color is used.
iReadingOrder: 0x0000 specifies that the reading order is based on the context.
(Records following this record, and before the next FontX record, are omitted for brevity.)
The next record in this example, FontX, specifies the font used for text of this chart.
iFont: 0x0005 specifies that the referenced font is the fifth Font record in the chart sheet substream.
(Records following this record, and before the next AxesUsed record, are omitted for brevity.)
The next record in this example, AxesUsed, specifies the number of axis groups on the chart.
cAxes: 0x0001 specifies that this chart contains a single primary axis group.
968 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.6.17 Column Chart Object: AxisParent
The next record in this example, AxisParent, specifies the properties of an axis group and specifies the
beginning of a collection of records as defined by the chart sheet substream that specifies an Axis
Group.
iax: 0x0000 specifies that the Axis Group specified by the records following this record is primary.
Records following this record, and before the next Axis record, are omitted for brevity.
The next record in this example, Axis, specifies properties of an axis and specifies the beginning of a
collection of records as defined by the chart sheet substream that specifies the category (2) axis.
wType: 0x0000 specifies that the axis type is category (2) axis.
(Records following this record, and before the next CatSerRange record, are omitted for brevity.)
The next record in this example, CatSerRange, specifies the properties of the category (2) axis.
969 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
catCross: 0x0001 specifies the category (2) axis is crossed by the value axis at the first category (2).
catLabel: 0x0001 specifies that the number of categories (2) between major tick mark labels is 1.
catMark: 0x0001 specifies that the number of categories (2) between major tick marks is 1.
fBetween: 0x0001 specifies that the value axis crosses the category (2) axis between two major tick
marks.
fMaxCross: 0x0000 specifies that the value axis crosses the category (2) axis at the category
specified by the catCross field.
The next record in this example, Tick, specifies the properties of the major tick marks and minor
tick marks associated with the category (2) axis.
970 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
The rgb field is ignored because the fAUtoCo field is equal to 0x0001. The wBkgMode field is
ignored because the fAutoMode field is equal to 0x0001. The rot field is ignored because the
fAutoRot field is equal to 0x0001.
tktMajor: 0x02 specifies that the location of the major tick marks is outside, which indicates that the
major tick marks are drawn away from the plot area.
tktMinor: 0x00 specifies that no minor tick marks are present on the axis.
fAutoCo: 0x0001 specifies that the text uses an automatically selected foreground color, based on the
display settings of the computer.
fAutoMode: 0x0001 specifies that the background mode is set according to the DefaultText settings
of the chart
fAutoRot: 0x0001 specifies that the text rotation of axis labels is determined automatically.
iReadingOrder: 0x0000 specifies that the reading order of the axis label is determined by the
application.
icv.icv: 0x004D specifies that the foreground color is the default chart foreground color. This is the
window text color in the chart display.
(Records following this record, and before the next ChartFormat record, are omitted for brevity.) The
collection of records includes a collection of record beginning with the Axis record that specifies the
value axis for this chart.
The next record in this example, ChartFormat, specifies properties of this chart group and specifies the
beginning of a collection of records as defined by the chart sheet substream. The collection of records
specifies this chart group. In this example this record is the first ChartFormat record in the collection
of ChartFormat records in the current chart sheet substream.
971 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fVaried: 0x0000 specifies that the color of each data point does not vary.
icrt: 0x0000 specifies that this chart group is at the bottom of the z-order.
The next record in this example, Bar, specifies the attributes of this chart group.
pcGap: 0x0096 specifies that the width of the gap between adjacent categories (2) is 150% of the
data point width. It also specifies that the width of the gap between the categories (2) and the left
and right edges of the plot area is 75% of the data point width.
fTranspose: 0x0000 specifies that the data points and the value axis are vertical.
fStacked: 0x0000 specifies that data points in the same chart group are not stacked.
f100: 0x0000 specifies that data points in the chart group are not displayed as a percentage of the
sum of all data points in the chart group that share the same category (2).
fHasShadow: 0x0000 specifies that none of the data points in the chart group has shadows.
The remaining records following this record, are omitted for brevity.
972 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.7 Pie Chart Sheet
This is an example of a 2D Pie Chart Sheet. This example omits records previously covered in the
column chart object example.
The first record in this example, PrintSize, specifies the printed size of the chart.
printSize: 0x0003 specifies that the printed size of the chart is defined in the Chart record that
follows this record.
The next record in this example, Chart, specifies the beginning of the collection of records for the
chart, and specifies the position and size of the chart area (section 2.2.3.17).
973 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 66: Structure of Chart
x: 0x00000000 specifies that the horizontal position of the upper-left corner of the chart is 0 points.
y: 0x00000000 specifies that the vertical position of the upper-left corner of the chart is 0 points.
The next record in this example, ShtProps, specifies the chart sheet properties.
fManSerAlloc: 0x0 specifies that the data series are not automatically allocated to the series of the
chart.
fNotSizeWith: 0x1 specifies not to size the chart with the window.
fAlwaysAutoPlotArea: 0x0 specifies that the default plot area size is used regardless of the Pos
record information.
The next record in this example, AxesUsed, specifies the value axes used on the chart.
974 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cAxes: 0x0001 specifies that a single primary value axis is present and used on the chart.
The next record in this example, AxisParent, specifies properties of the one axis group on the chart
and specifies the beginning of the collection of records that specifies an axis group.
iax: 0x0000 specifies that this axis group is a primary axis group.
The next record, ChartFormat, specifies properties of a chart group and specifies the beginning of the
collection of records that specifies further properties of that chart group.
fVaried: 0x0001 specifies that the color for each data point, or the color or type for each data
marker varies.
icrt: 0x0000 specifies that the drawing order of the chart group relative to the other chart groups is
the bottom of the z-order.
The next record in this example, Pie, specifies that this is a pie chart group, and specifies attributes of
the chart group.
975 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
anStart: 0x0000 specifies that the starting angle, calculated clockwise from the top of the circle, of
the first data point is 0 degrees.
pcDonut: 0x0000 specifies that the chart group is a pie chart group.
fHasShadow: 0x0 specifies that zero data points in the chart group have shadows.
fShowLdrLines: 0x1 specifies that the leader lines to the data labels are shown. This value is
ignored because zero data labels are present in this example.
The next record in this example, Legend, specifies the location of the legend on the display and its
overall size. The displayed legend contains all the series on the chart. The position and size
information specified in this record is ignored, and the position and size information specified in the
following Pos record is used.
wSpace: 0x01 specifies that there are 40 twips between legend entries.
976 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fAutoPosition: 0x1 specifies that the legend is automatically positioned.
fVert: 0x1 specifies that the layout of the legend entries contain a single column of entries.
fWasDataTable: 0x0 specifies that the chart is not displaying the chart data table.
The next record in this example, Begin, specifies the beginning of the collection of records that
specifies the properties of the legend.
The details of the Begin record have been omitted from the example for brevity.
The next record in this example, Pos, specifies the size and position for the Legend of the plot area.
Fields in this record that are ignored because mdTopLt is 0x0005 and mdBotRt is 0x0002 are
omitted for brevity.
mdTopLt: 0x0005 specifies that the horizontal offset of the upper-left corner for this Legend is
relative to the upper-left corner of the chart area (section 2.2.3.17), measured in SPRC.
mdBotRt: 0x0002, when combined with the mdTopLt value of 0x0005, specifies that the values of
x1 and y1 specify the horizontal and vertical offsets of the upper-left corner of the Legend,
relative to the upper-left corner of the chart area (section 2.2.3.17).
x1: 0x0E47 specifies that the upper-left corner of the Legend is horizontally offset by 3655 SPRC from
the upper-left corner of the chart area (section 2.2.3.17).
y1: 0x0703 specifies that the upper-left corner of the Legend is vertically offset by 1795 SPRC from
the upper-left corner of the chart area (section 2.2.3.17).
977 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.7.10 Pie Chart Sheet: Text
The next record in this example, Text, specifies the position and appearance of text fields that appear
on the chart. The position and size information specified in this record are ignored because this record
is followed by a Pos record.
978 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
at: 0x02 specifies that the horizontal alignment of the text fields that appear in the Legend record is
center-aligned.
vat: 0x02 specifies that the vertical alignment of the text fields that appear in the Legend record is
center-aligned.
fAutoColor: 0x0001 specifies that the foreground text color is determined automatically.
fShowKey: This field is ignored because this AttachedLabel is not a data label.
fShowValue: This field is ignored because this AttachedLabel is not a data label.
fAutoText: 0x0001 specifies that the text value of the text field is automatically generated and has
not been changed.
fGenerated: 0x0001 specifies that the properties of the text field are automatically generated and
have not been changed.
fDeleted: 0x0000 specifies that this text field, which is displayed by default, has been deleted by the
user.
fShowLabelAndPerc: This field is ignored because this AttachedLabel is not a data label.
fShowPercent: This field is ignored because this AttachedLabel is not a data label.
fShowBubbleSizes: This field is ignored because this AttachedLabel is not a data label.
fShowLabel: This field is ignored because this AttachedLabel is not a data label.
icvText.icv: 0x004D specifies that the default chart foreground color is used.
dlp: This field is ignored because this AttachedLabel is not a data label.
iReadingOrder: 0x0000 specifies that the reading order of the text is determined by the
application.
979 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
trot: This field is ignored because this AttachedLabel is not a data label.
The next record in this example, Begin, specifies the beginning of the collection of records that
specifies data labels on a graph object.
The details of the Begin record have been omitted from the example for brevity.
The next record in this example, BRAI, specifies a reference to data in a sheet that is used by a
legend entry.
id: 0x00 specifies that the referenced data is used for the text of a legend entry.
rt: 0x01 specifies that the data source is text or the value contained by the rgce field.
fUnlinkedIfmt: 0x0 specifies that the data uses the same number formatting as the referenced data.
ifmt: 0x0000 specifies that the identifier for number format information is general (automatic).
formula: A ChartParsedFormula that specifies the formula (section 2.2.2) that specifies the
referenced data.
The next two records in this example are both End records. The first End record specifies the end of
the collection of records that specifies data labels on a graph object. The second End record specifies
the end of the collection of records that specifies the legend.
The details of the End records have been omitted from the example for brevity.
The next record in this example, Window2, specifies attributes of the window used to display a sheet
in a workbook.
980 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are ignored because this Window2 record is contained in a chart sheet
substream are omitted for brevity.
fSelected: 0x1 specifies that the sheet tab of the chart sheet is selected.
3.8 Formatting
In this example, cell formatting and number formats are applied to three cells in the sheet:
Cell B3, containing 1.2345, is formatted with the built-in "0.00" number format.
Cell B4, containing 1.2345, is formatted with the custom number format "0.00000".
Cell B5, containing "1.2345", is formatted with a blue foreground color, yellow background color,
and is bold.
The following screenshot shows a possible implementation of the cells discussed in this example:
981 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 77: The formatting in this example within a sheet
This example starts at the first Font record in the Workbook stream related to these cells and ends at
the Number record containing the value for the last cell. Other records in the Workbook stream or
related substreams which are not related to this example are omitted for brevity. The substream of
the workbook related to this example contains five Font records, nine Format records, 24 XF records,
and three Number records. Of these, the example highlights the first and fifth Font record, the last
Format record, the first, sixteenth, seventeenth, and eighteenth XF records, and all three Number
records. Any other records in the substream are skipped in this example.
Each Number record that specifies a cell with a floating-point number corresponds to one of the
three cells in this example. The Number record contains a Cell structure, which in turn contains an
IXFCell structure with an ixfe field containing the index to an XF record in the Globals Substream. The
XF record that specifies formatting properties for a cell contains a FontIndex structure and an IFmt
structure. Those records contain indexes for a Font record and a Format record, respectively. The Font
record specifies font and font formatting information, and the Format record specifies a number
format.
The first record in the example, Font, specifies the font and font formatting information which is used
by cells B3 and B4.
982 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fStrikeOut: 0x0 specifies that the font does not have strikethrough formatting applied.
fShadow: 0x0 specifies that the font does not have a shadow applied.
fCondense: 0x0 specifies that the font is not condensed by compressing spacing between characters.
fExtend: 0x0 specifies that the font is not extended by stretching spacing between characters.
icv: 0x7FFF is an Icv value that specifies that the color of the font is the default foreground color.
bFamily: 0x00 specifies that the font family of the font is not applicable as detailed in the Windows
API LOGFONT structure in [MSDN-FONTS].
bCharSet: 0x00 specifies that that this font belongs to the ANSI character set.
Records following this record, and before the fifth Font record, are omitted for brevity.
The next record in this example, Font, specifies the font and font formatting information which is used
by cell B5.
983 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
icv: 0x000C is an Icv value that specifies that the color of the font is composed of an RGB value with
a red value of 0, a green value of 0, and a blue value of 255, representing the color blue.
Records following this record, and before the ninth Format record, are omitted for brevity.
The next record in this example, Format, specifies the number format which is used by cell B4.
984 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.8.4 Formatting: XF 1
The next record in this example, XF, specifies default formatting properties for a cell and is written
out. It is not referenced in this example.
0014 XF - XF
985 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
ifnt.ifnt: 0x0000 specifies the FontIndex that specifies the cell uses the default font.
ifmt: Specifies the number format and text formatting for the cell.
ifmt.ifmt: 0x0000 specifies an IFmt that specifies general (automatic) formatting for the cell.
fLocked: 0x1 specifies that the cell is set to be locked for user editing when the worksheet is
protected.
fHidden: 0x0 specifies that the cell formula is not hidden when the worksheet is protected.
f123Prefix: 0x0 specifies that the text in the cell is not prefixed by a single quote mark.
Data.alc: 0x0 specifies that the horizontal alignment of the cell is general alignment.
Data.fWrap: 0x0 specifies that the cell text is not line-wrapped within the cell.
Data.alcV: 0x2 specifies that the cell has a bottom vertical alignment.
Data.fJustLast: 0x0 specifies that the cell text is not justify distributed.
Data.trot.trot: 0x00 specifies that the cell text is rotated counterclockwise 0 degrees.
Data.iReadOrder: 0x0 specifies that the reading order of the cell is context reading order.
Data.dgLeft: 0x0 specifies that the logical left border formatting of the cell is no border.
Data.dgRight: 0x0 specifies that the logical right border formatting of the cell is no border.
986 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Data.dgTop: 0x0 specifies that the top border formatting of the cell is no border.
Data.dgBottom: 0x0 specifies that the bottom border formatting of the cell is no border.
Data.icvLeft: 0x00 specifies that the color of the logical left border is not specified.
Data.icvRight: 0x00 specifies that the color of the logical right border is not specified.
Data.grbitDiag: 0x0 specifies that the cell does not have a diagonal border.
Data.icvTop: 0x00 specifies that the color of the top border is not specified.
Data.icvBottom: 0x00 specifies that the color of the bottom border is not specified.
Data.icvDiag: 0x00 specifies that the color of the diagonal border is not specified.
Data.dgDiag: 0x0 specifies that the diagonal border formatting of the cell is no border.
Data.fls: 0x00 specifies that there is no fill pattern for the cell.
Data.icvFore: 0x40 specifies that the foreground color of the fill pattern is the default foreground
color.
Data.icvBack: 0x41 specifies that the background color of the fill pattern is the default background
color.
Records following this record, and before the sixteenth XF record, are omitted for brevity.
3.8.5 Formatting: XF 2
The next record in this example, XF, specifies formatting properties for a cell and is referenced by the
Number record for cell B3.
0014 XF - XF
987 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
988 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
ifmt: Specifies the number format and text formatting for the cell.
ifmt.ifmt: 0x0002 specifies an IFmt value that specifies a number format with two decimals and no
1000s comma.
ixfParent: 0x000 specifies that the cell inherits formatting properties from the first cell style XF
record in the Globals Substream.
Data.fAtrNum: 0x1 specifies that the ifmt field of this XF record is not updated when the
corresponding field of the XF record specified by the ixfParent field of this XF record is changed.
Data.fAtrFnt: 0x0 specifies that the ifnt field of this XF record is updated when the corresponding
field of the XF record specified by the ixfParent field of this XF record is changed.
Data.fAtrAlc: 0x0 specifies that the alc, fWrap, alcV, fJustLast, trot, cIndent, fShrinkToFit, and
iReadOrder fields are updated when the corresponding fields of the XF record specified by the
ixfParent field of this XF record are changed.
Data.fAtrBdr: 0x0 specifies that the dgLeft, dgRight, dgTop, dgBottom, dgDiag, icvLeft,
icvRight, grbitDiag, icvTop, icvBottom, and icvDiag fields are updated when the
corresponding fields of the XF record specified by the ixfParent field of this XF record are
changed.
Data.fAtrPat: 0x0 specifies that the fls, icvFore, and icvBack fields are updated when the
corresponding fields of the XF record specified by the ixfParent field of this XF record are
changed.
Data.fAtrProt: 0x0 specifies that the fLocked and fHidden fields are updated when the
corresponding fields of the XF record specified by the ixfParent field of this XF record are
changed.
Data.fHasXFExt: 0x0 specifies that the information in this XF will not be extended by an XFExt
record.
Data.fsxButton: 0x0 specifies that the XF record is not attached to a pivot field drop-down button.
3.8.6 Formatting: XF 3
The next record in this example, XF, specifies formatting properties for a cell or a cell style and is
referenced by the Number record for cell B4.
0014 XF - XF
989 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
990 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
ifmt: Specifies the number format and text formatting for the cell.
ifmt.ifmt: 0x00A4 specifies the first user-defined Format record illustrated previously. The formatting
string specified by the referenced Format record is "0.00000".
3.8.7 Formatting: XF 4
The next record in this example, XF, specifies formatting properties for a cell or a cell style and is
referenced by the Number record for cell B5.
0014 XF - XF
991 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
992 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
ifnt.ifnt: 0x0005 specifies a FontIndex which specifies the first Font record in the collection of Font
records in the Globals Substream. This Font record is illustrated previously.
Data.fAtrNum: 0x0 specifies that the ifmt field of this XF record is updated when the corresponding
field of the XF record specified by the ixfParent field of this XF record is changed.
Data.fAtrFnt: 0x1 specifies that the ifnt field of this XF record is not updated when the corresponding
field of the XF record specified by the ixfParent field of the containing XF record is changed.
Data.fAtrPat: 0x1 specifies that the fls, icvFore, and icvBack fields are not updated when the
corresponding fields of the XF record specified by the ixfParent field of this XF record are
changed.
Data.icvFore: 0x0D specifies that the foreground color of the fill pattern is field rgColor[5] of the
Palette record in the file. If no Palette record exists, the default value is an RGB value with a red
value of 255, a green value of 255, and a blue value of 0, representing the color yellow.
Data.icvBack: 0x40 specifies that the background color of the fill pattern is the default foreground
color.
Records following this record, and before the next Number record, are omitted for brevity.
The next record in this example, Number, specifies the cell B3, which contains a floating-point
number. This record is the first in the set of Number records in the workbook.
0002 Rw - rw
993 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 85: Structure of Number
cell.ixfe: Specifies the cell XF record in the collection of XF records in the Globals Substream.
cell.ixfe.ixfe: 0x0015 specifies that the cell is formatted according to the first user-defined XF record
in the Globals Substream. This XF is the second XF record in this example.
num: 0x3FF3C083126E978D specifies a 64-bit IEEE-754 floating-point value of 1.2345 as the value of
the cell.
The next record in this example, Number, specifies the cell B4, which contains a floating-point
number.
0002 Rw - rw
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
cell.ixfe: Specifies the cell XF record in the collection of XF records in the Globals Substream.
994 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cell.ixfe.ixfe: 0x0016 specifies that the cell is formatted according to the second user-defined XF
record in the Globals Substream. This XF is the third XF record in this example.
The next record in this example, Number, specifies the cell B5, which contains a floating-point
number.
0002 Rw - rw
Fields in this record that are explained in previous records in this example have been omitted for
brevity.
cell.ixfe: Specifies the cell XF record in the collection of XF records in the Globals Substream.
cell.ixfe.ixfe: 0x0017 specifies that the cell is formatted according to the third user-defined XF record
in the Globals Substream. This XF is the fourth XF record in this example.
3.9 Workbook
This example shows a workbook containing three sheets, named "Sheet1", "Sheet2" and "Sheet3".
"Sheet1" contains the following cell content:
995 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
The workbook example can be broken into two parts. The first part of the example includes records
found in the Globals Substream. These records contain details about the entire workbook through
examples of the following parent records: BOF, RRTabId, BuiltInFnGroupCount, Window1, HideObj,
Date1904, CalcPrecision, BookBool, Font, Format, XF, Style, BoundSheet8, Country, RecalcId, SST,
ExtSST, BookExt, and EOF.
The second part of this example contains the Worksheet substream. These records contain details
about the first sheet through examples of the following parent records: BOF, Index, DefaultRowHeight,
WsBool, Setup, DefColWidth, Dimensions, Row, LabelSst, RK, Formula, DBCell, Window2, Selection,
PhoneticInfo, and EOF.
"Sheet2" and "Sheet3" are empty sheets and their record details are not documented in this example.
This first BOF record begins the Globals Substream and Workbook stream and specifies global
properties and data for a workbook, as well as the sheets in this example workbook.
996 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
vers: 0x0600 specifies that the BIFF version of the file is 1536.
dt: 0x0005 specifies that the substream of records following this BOF record are part of the workbook
stream.
rupYear: 0x07CD specifies 1997 as the year when the file format version was first created.
fWin: 0x1 specifies that the file was last edited on a Windows platform.
fRisc: 0x0 specifies that the file was not last edited on a RISC platform.
fBeta: 0x0 specifies that the file was not last edited by a beta version of the application.
fWinAny: 0x0 specifies that the file has not been subsequently saved.
fMacAny: 0x0 specifies that the file has never been edited on a Macintosh platform.
fBetaAny: 0x0 specifies that the file has never been edited on a beta version of the application.
fRiscAny: 0x0 specifies that the file has never been edited on a RISC platform.
fOOM: 0x0 specifies that the file has never had an out-of-memory failure.
fGlJmp: 0x0 specifies that the file has never had an out-of-memory failure during rendering.
fFontLimit: 0x0 specifies that the file has never reached the 255 font limit.
verXLHigh: 0x3 specifies that the file was not edited in any applications after Office Excel 2003.
verLowestBiff: 0x06 specifies that the files are saved in BIFF version 6.
verLastXLSaved: 0x3 specifies that the file was last saved by Office Excel 2003.
Records following this record, and before the next RRTabId record, are omitted for brevity.
This RRTabId record specifies unique sheet identifiers, each of which is associated with a sheet in the
workbook.
997 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
This BuiltInFnGroupCount record specifies information about the built-in function categories in the
workbook.
count: 0x000E specifies there are 14 built-in function categories in the workbook.
Records following this record, and before the next Window1 record, are omitted for brevity.
This Window1 record specifies attributes of the window used to display the sheet.
998 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
xWn: 0x01E0 specifies that the horizontal position of the window is 480 twips from the logical left
edge of the client area of the window.
yWn: 0x0069 specifies that the vertical position of the window is 105 twips from the top edge of the
client area of the window.
dxWn: 0x4E1B specifies that the width of the window is 19995 twips.
dyWn: 0x3CE1 specifies that the height of the window 15585 twips.
fNoAFDateGroup: 0x0000 specifies that dates are grouped by year, month, and day in the
AutoFilter menu.
itabFirst.itab: 0x0000 specifies that the first tab is the displayed sheet tab.
ctabSel: 0x0001 specifies that one sheet tab is selected in the workbook.
wTabRatio: 0x0258 specifies that the ratio of the width of the sheet tabs to the width of the
horizontal scroll bar is 0.6.
999 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Records following this record, and before the next HideObj record, are omitted for brevity.
This HideObj record specifies how drawing objects appear in a window that contains the workbook.
hideObj: 0x0000 specifies that all drawing objects in the window are shown.
This Date1904 record specifies whether the workbook uses the 1904-based or the 1900-based date
system.
f1904DateSystem: 0x0000 specifies that the workbook uses the 1900 date system.
This CalcPrecision record specifies the calculation precision mode for the workbook.
Records following this record, and before the next BookBool record, are omitted for brevity.
This BookBool record specifies some properties associated with the workbook.
1000 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fNoSaveSup: 0x0000 specifies that external link values are saved in the workbook.
grUpdateLinks: 0x0000 specifies the application prompts users to update external links in the
workbook.
fHideBorderUnselLists: 0x0000 specifies that borders of tables that do not contain the active cell
are not hidden.
This Font record specifies font formatting information and is the first of four in the workbook.
1001 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
dyHeight: 0x00C8 specifies that the height of the font is 200 twips.
fStrikeOut: 0x0 specifies that the font does not have strikethrough formatting applied.
fOutline: 0x0 specifies that the font does not have an outline effect.
fShadow: 0x0 specifies that the font does not have a shadow effect.
icv: 0x7FFF specifies that the color of the font is automatic and matches the window text color.
uls: 0x00 specifies that the font does not have underlining.
bFamily: 0x00 specifies that the font family of the font is not applicable as detailed in the Windows
API LOGFONT structure in [MSDN-FONTS].
bCharSet: 0x00 specifies that this font belongs to the ANSI character set.
The three Font records following this record, and before the next Format record, are omitted for
brevity.
This Format record specifies the number format applied to a number and is the first of eight in the
workbook.
1002 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 98: Structure of Format
The seven Format records following this record, and before the next XF record, are omitted for brevity.
3.9.11 Workbook: XF
This XF record specifies formatting properties for a cell and is the first of 21 XF records in the
workbook.
0014 XF - Xf
1003 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
ifmt.ifmt: 0x0000 specifies that general (automatic) formatting is applied for the cell.
fLocked: 0x1 specifies that this cell has locked protection. Because this workbook example has no
Protect record, this setting does not apply.
fStyle: 0x1 specifies that this record specifies a cell style XF.
f123Prefix: 0x0 specifies that prefix characters are not present in the cell.
ixfParent: 0xFFF specifies that there is no inheritance from a cell style XF.
Data.alc: 0x0 specifies that horizontal alignment for the cell is general alignment.
Data.alcV: 0x2 specifies that vertical alignment for the cell is bottom alignment.
1004 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Data.cIndent: 0x0 specifies that the text indent level is zero.
Data.icvLeft: 0x00 specifies that the logical left border color has not been set.
Data.ivcRight: 0x00 specifies that the logical right border color has not been set.
Data.icvTop: 0x00 specifies that the top border color has not been set.
Data.icvBottom: 0x00 specifies that the bottom border color has not been set.
Data.icvDiag: 0x00 specifies that the diagonal border color has not been set.
Data.dgDiag: 0x0 specifies the line style for the diagonal border is set to no border.
Data.icvFore: 0x40 specifies that the fill pattern uses the default foreground color which is the
window text color.
Data.icvBack: 0x41 specifies that fill pattern uses the default background color which is the default
background color for a cell.
The 20 XF records following this record, and before the next Style record, are omitted for brevity.
This Style record specifies a cell style and is the first of six Style records in the workbook example .
Fields in this record that are ignored are omitted for brevity.
1005 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ixfe: 0x010 specifies the index to the 16th XF record for which these properties apply; this XF record
is omitted from this workbook example for brevity.
fBuiltIn: 0x0001 specifies that this cell uses the built-in cell style.
The records following this record, and before the next BoundSheet8 record, are omitted for brevity.
This BoundSheet8 record specifies basic information about the first sheet in the workbook example,
including the sheet name, hidden state, and type of sheet.
lbPlyPos: 0x000005CA specifies the stream position of the start of the BOF record for the sheet
associated with this BoundSheet8 record. This stream position is the start of the binary record,
which begins with the two-byte record type and two-byte record size information. See the record
overview for more details. The worksheet substream for this sheet is shown later in this workbook
example.
This record is the same as the previous BoundSheet8 record example and specifies basic information
about the second sheet in the workbook example. The fields that contain the same values as the
previous record are omitted for brevity.
1006 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
lbPlyPos: 0x00000785 specifies the stream position of the start of the BOF record for the sheet
associated with this BoundSheet8 record. The worksheet substream for this sheet is omitted for
brevity from the workbook example.
stName: "Sheet2" specifies the unique name of the sheet, which is not case sensitive.
This record is the same as the first BoundSheet8 record example and specifies basic information about
the third sheet in the workbook example. The fields that contain the same values as the first
BoundSheet8 record are omitted for brevity.
lbPlyPos: 0x0000088C specifies the stream position of the start of the BOF record for the sheet
associated with this BoundSheet8 record. The worksheet substream for this sheet is omitted for
brevity from the workbook example.
stName: "Sheet3" specifies the name of the sheet, which is not case sensitive.
iCountryDef: 0x0001 specifies that the locale for the workbook is the United States.
iCountryWinIni: 0x0001 specifies that the system regional setting is United States.
1007 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.9.17 Workbook: RecalcId
This RecalcId record specifies the recalculation engine identifier of the recalculation engine that last
performed a recalculation.
rt: 0x01C1 specifies that the record identifier for this record is 449.
dwBuild: 0x0001BE22 specifies the recalculation engine identifier of the recalculation engine that
performed the last recalculation, which is 114210.
Fields in this record that are ignored because they are optional are omitted for brevity.
cstTotal: 0x00000002 specifies that there are two references in the workbook to the strings in the
shared string table.
cstUnique: 0x00000002 specifies that there are two unique strings in the shared string table.
This ExtSST record specifies the location of strings within the shared string table, specified in the
previous SST record.
1008 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
dsst: 0x0008 specifies the default value for this field as specified by the formula in the ExtSST record.
rgISSTInf: Specifies the location of a set of strings within the SST record.
rgISSTInf.rgISSTInf[0].cbOffset: 0x000C specifies that the zero-based offset into the SST record
is 12.
1009 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are ignored because they have zero values are omitted for brevity.
FrtHeader.rt: 0x0863 is the required value for this field and specifies that this record is contained in
a BookExt record.
FrtHeader.grbitFrt: This structure specifies flags used in the future record header.
FrtHeader.grbitFrt.fFrtRef: 0x0000 specifies that this FrtHeader does not specify a range of cells.
FrtHeader.grbitFrt.fFrtAlert: 0x0000 specifies that the user is not alerted of possible problems
when saving this file without having recognized this record.
fHidePivotList: 0x0 specifies that the PivotTable field list is not hidden for this workbook.
fFilterPrivacy: 0x0 specifies that personal information is not removed from the workbook on save.
fEmbedFactoids: 0x0 specifies that smart tags are not embedded in this workbook on save.
mdFactoidDisplay: 0x0 specifies that the workbook displays smart tags as smart tag actions
buttons and smart tag indicators.
fSavedDuringRecovery: 0x0 specifies that the workbook was not saved during AutoRecover.
fCreatedViaMinimalSave: 0x0 specifies the workbook was not created by a minimal save during
data recovery.
fOpenedViaDataRecovery: 0x0 specifies that the workbook was not opened as a result of data
recovery.
fOpenedViaSafeLoad: 0x0 specifies that the workbook was not opened in safe load mode.
1010 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
grbit1.fShowInkAnnotation: 0x1 specifies that ink comments for the workbook are not displayed.
This EOF record specifies the end of a collection of records as defined by Globals Substream ABNF.
Size Structure
This BOF record specifies the beginning of the worksheet substream and specifies information about
"Sheet1".
1011 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
dt: 0x0010 specifies that the records following this BOF record are part of the worksheet substream.
rupYear: 0x07CD specifies that 1997 was the year when the file format version was first created.
fWin: 0x1 specifies that the file was last edited on a Windows platform.
fRisc: 0x0 specifies that the file was not lasted edited on a RISC platform.
fBeta: 0x0 specifies that the file was not last edited by a beta version of the application.
fWinAny: 0x0 specifies that the file has not been subsequently saved.
fMacAny: 0x0 specifies that the file has never been edited on a Macintosh platform.
fBetaAny: 0x0 specifies that the file has never edited on a beta version of the application.
fRiscAny: 0x0 specifies that the file has never been edited on a RISC platform.
fOOM: 0x0 specifies that the file never had an out-of-memory failure.
fGlJmp: 0x0 specifies that this file has never had an out-of-memory failure during rendering.
fFontLimit: 0x0 specifies that the file has never reached the 255 font limit.
verXLHigh: 0x3 specifies that the file was not edited in any applications after Office Excel 2003.
verLastXLSaved: 0x3 specifies that the file was last saved on Office Excel 2003.
The next record is an Index record that specifies row information and the file locations for all DBCell
records corresponding to each row block in the sheet. This record, combined with the DBCell records,
is used to optimize the lookup of cells in a cell table.
1012 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
rwMic: Specifies the first row that has a cell with data.
rwMic.rw: 0x00000003 specifies that row 4 is the first row with data or formatting.
rwMac: 0x00000007 specifies that row 7 is the last row with data or formatting. This field value
specifies the row after the last row that has data or formatting.
ibXF: 0x00000686 specifies a FilePointer as specified in [MS-OSHARED] section 2.2.1.5 that specifies
the file position of the DefColWidth record in this sheet.
rgibRw.rgibRw[0]: 0x0000073E specifies the file position of the DBCell record. This stream position
is the start of the binary record, which begins with the two-byte record type and two-byte record
size information. See the record overview for more details.
The records following this record, and before the next DefaultRowHeight record, are omitted for
brevity.
The next record is a DefaultRowHeight record that specifies the height of all empty rows in the current
sheet.
fUnsynced: 0x0 specifies that default settings for the row height have not changed.
fDyZero: 0x0 specifies that empty rows do not have a height of zero.
fExAsc: 0x0 specifies that empty rows do not have a thick border style applied to the top border.
fExDsc: 0x0 specifies that empty rows do not have a thick border style applied to the bottom border.
miyRw: 0x00FF specifies 255 twips as the default row height for empty rows.
The next record is a WsBool record that specifies information about a sheet.
1013 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fShowAutoBreaks: 0x0001 specifies that page breaks inserted automatically on the sheet are
visible.
fApplyStyles: 0x0000 specifies not to apply styles in an outline when an outline is applied.
fRowSumsBelow: 0x0001 specifies that summary rows appear below an outline’s detail rows.
fColSumsRight: 0x0001 specifies that summary columns appear on the left if the sheet is displayed
left-to-right or appear on the right if the sheet is displayed right-to-left.
fFitToPage: 0x0000 specifies that printable contents do not have to fit to a single page when the
sheet is printed.
fSyncHoriz: 0x0000 specifies that horizontal scrolling is not synchronized across multiple windows
displaying this sheet.
fSyncVert: 0x0000 specifies that vertical scrolling is not synchronized across multiple windows
displaying this sheet.
fAltExprEval: 0x0000 specifies that the sheet does not use transition formula evaluation.
fAltFormulaEntry: 0x0000 specifies that the sheet does not use transition formula entry.
The records following this record, and before the next Setup record, are omitted for brevity.
The next record is a Setup record that specifies the page-format settings used to print the current
sheet.
1014 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are ignored because fNoPls is 1 are omitted for brevity.
iFitWidth: 0x0001 specifies that the sheet width is fit to one page.
iFitHeight: 0x0001 specifies that the sheet height is fit to one page.
fNoPls: 0x01 specifies that fields iPaperSize, iScale, iRes, iVRes, iCopies, fNoOrient, and
fPortrait data are undefined and ignored.
fNoColor: 0x00 specifies that the workbook is not printed in black and white.
1015 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fDraft: 0x00 specifies that the workbook is not printed using draft quality.
fNotes: 0x00 specifies that cell notes are not printed. The fEndNotes field is not included in this
example for brevity.
fUsePage: 0x00 specifies that no custom starting page number is being used to print. The
iPageStart field is not included in this example for brevity.
iErrors: 0x00 specifies that errors in the cell data are printed as displayed on the sheet.
The next record is a DefColWidth record that specifies the default column width of a sheet.
cchdefColWidth: 0x0008 specifies that the default width of the columns in the sheet is 8 characters.
The next record is a Dimensions record that specifies the minimum and maximum bounds of all cells
on the sheet that contain data or formatting.
rwMic: Specifies the first row in the sheet that contains a cell with data or formatting.
rwMic.rw: 0x00000003 specifies that the first row with data or formatting is row 4.
rwMac: 0x00000007 specifies that that row 7 is the last row with data or formatting. This field value
specifies the row after the last row that has data or formatting.
colMic: Specifies the first column in the sheet that contains a cell with data or formatting.
1016 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colMic.col: 0x0001 specifies that column B is the first column with data or formatting.
colMac: 0x0002 specifies that column B is the last column with data or formatting. This field value
specifies the column after the last column that has data or formatting.
0002 Rw - rw
colMic: 0x0001 specifies that column B is the first column that contains a cell populated with data or
formatting.
colMac: 0x0002 specifies that column B is the last column that contains a cell populated with data or
formatting.
1017 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
miyRw: 0x00FF specifies the row height as 255 twips.
fUnsynced: 0x00 specifies that the row height has not been manually set.
fGhostDirty: 0x00 specifies that the row has not been formatted.
ixfe_val: 0x000F specifies that this row uses the default formatting.
fExAsc: 0x0000 specifies that no cell in the row has a thick top border.
fExDes: 0x0000 specifies that no cell in the row has a thick bottom border.
fPhonetic: 0x0000 specifies that phonetic guide is not enabled for any cell in this row.
This record is another Row record that specifies a single row on a sheet.
0002 Rw - rw
1018 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 118: Structure of Row
Fields in this record that are explained in previous records in this example are omitted for brevity.
This record is another Row record that specifies a single row on a sheet.
0002 Rw - rw
Fields in this record that are explained in previous records in this example are omitted for brevity.
This record is another Row record that specifies a single row on a sheet.
1019 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
0002 Rw - rw
Fields in this record that are explained in previous records in this example are omitted for brevity.
This record is a LabelSst record that specifies a string that is stored in a cell as a reference to the
shared string table.
0002 Rw - rw
1020 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
cell.ixfe: Specifies the index of a cell XF record that describes the formatting properties for the cell.
cell.ixfe.ixfe: 0x000F specifies that this cell uses the default cell format.
isst: 0x00000000 specifies that 0 is the zero-based index into the rgb field of SST, which specifies
that the text for this cell is "Number".
3.9.34 Workbook: RK
This record is an RK record that specifies the numeric data contained in a single cell.
000A RK - Rk
0002 Rw - rw
0004 RkNumber - RK
1021 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rw: Specifies a row in the sheet.
rkrec.ixfe: Specifies the index of a cell XF record that describes the formatting properties for the cell.
rkrec.ixfe.ixfe: 0x000F specifies that this cell uses the default cell format.
rkrec.RK.FX100: 0x0 specifies that the value in the rkrec.RK.num field was not multiplied by 100
when it was saved.
rkrec.RK.FInt: 0x0 specifies that the value in the rkrec.RK.num field is the 30 most significant bits
of a 64-bit binary floating-point number as defined in [IEEE754].
rkrec.RK.num: 0x0FFC0000 specifies the 30 most significant bits of a 64-bit binary floating-point
number as defined in [IEEE754]. The remaining 34 bits are 0, which evaluates to a numeric value
of 1.
This record is a LabelSst record that specifies a string that is stored in a cell as a reference to the
shared string table.
0002 Rw - rw
Fields in this record that are explained in previous records in this example are omitted for brevity.
isst: 0x00000001 specifies that 1 is the zero-based index into the rgb field of SST, which specifies
that the text for this cell is "Formula".
1022 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.9.36 Workbook: Formula
This record is a Formula record that specifies a formula (section 2.2.2) for a cell.
0002 Rw - rw
1023 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
cell.ixfe: Specifies the index of a cell XF record that describes the formatting properties for the cell.
cell.ixfe.ixfe: 0x000F specifies that this cell uses the default cell format.
val: 0x3FF6A09E667F3BCD specifies the floating-point value of 1.4142135623731, which is the value
in the cell as a result of the last calculation.
fAlwaysCalc: 0x0 specifies that the formula does not need to be recalculated.
fFill: 0x0 specifies this cell does not have a fill alignment or a center-across-selection alignment.
fShrFmla: 0x0 specifies that the formula is not part of a shared formula.
1024 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fClearErrors: 0x0 specifies that the formula is not excluded from formula error checking.
chn: Specifies an application-specific cache. This is optionally used and can be ignored.
formula.rgce.Ptg[0].PtgRef.type: 0x2 specifies that this PtgRef uses a value data type.
formula.rgce.Ptg[3].PtgFunc.type: 0x2 specifies that this Ptg uses a value data type.
1025 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.9.37 Workbook: DBCell
This record is a DBCell record that specifies the location of the first row and the first cell record in each
row of the current row block in the workbook stream.
dbRtrw: 0x000000A0 specifies the offset from the file position of this record to the file position of the
first row record.
rgdb: Specifies the file offset to the first cell record in each row.
rgdb.rgdb[0]: 0x003C specifies the file offset in bytes to the first record that specifies a CELL in each
row that is a part of this row block. The starting position of this offset is specified relative to the
file position of the end of the first Row record in the row block
rgdb.rgdb[1]: 0x000E specifies the file offset in bytes to the first record that specifies a CELL in each
row that is a part of this row block. The offset is specified relative to the file position of the CELL
record specified by the previous element in this array.
rgdb.rgdb[2]: 0x000E specifies the file offset in bytes to the first record that specifies a CELL in each
row that is a part of this row block. The offset is specified relative to the file position of the CELL
record specified by the previous element in this array.
rgdb.rgdb[3]: 0x000E specifies the file offset in bytes to the first record that specifies a CELL in each
row that is a part of this row block. The offset is specified relative to the file position of the CELL
record specified by the previous element in this array.
This record is a Window2 record that specifies attributes of the window used to display the sheet.
1026 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fDspRwColRt: 0x1 specifies that this window displays row headings and column headings.
fFrozenRt: 0x0 specifies that the panes in the window are not frozen. The fFrozenNoSplit field is
not included in this example for brevity.
fDspZerosRt: 0x1 specifies that this window displays each cell that has a value of zero as a zero.
fDefaultHdr: 0x1 specifies that the gridlines of this window are drawn in the default foreground
color of the window.
fDspGuts: 0x1 specifies that this window displays the outline state.
fPaged: 0x1 specifies that the sheet is currently being displayed in the window.
1027 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fSLV: 0x0 specifies that the sheet is not in Page Break Preview view.
rwTop.rw: 0x0000 specifies row 1 as the first visible row on the sheet.
colLeft.col: 0x0000 specifies column 1 as the first visible column on the sheet.
icvHdr.icv: 0x0040 specifies that the gridlines of this window are drawn in the default foreground
color of the window.
wScaleSLV: 0x0000 specifies that the zoom level in the Page Break Preview view is the default
zoom level.
wScaleNormal: 0x0000 specifies that the zoom level in the Normal view is the default zoom level.
This record is a Selection record that specifies the selected cells within a sheet.
pnn: 0x03 specifies that a top left pane is the active pane.
rwAct: An RwU that specifies the row number of the active cell.
1028 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colAct: A ColU that specifies the column number of the active cell.
irefAct: 0x0000 specifies an index into the rgref array that specifies the range of cells that contain
the active cell.
cref: 0x0001 specifies that there is 1 range of cells in the rgref array of this record.
rgref: An array of RefU that specifies ranges of selected cells in the sheet.
rgref.rgref[0].rwFirst.rw: 0x0007 specifies that row 8 is the first row in the range.
rgref.rgref[0].rwLast.rw: 0x0007 specifies that row 8 is the last row in the range.
rgref.rgref[0].colFirst.col: 0x01 specifies that column B is the first column in the range.
rgref.rgref[0].colLast.col: 0x01 specifies that column B is the last column in the range.
This record is a PhoneticInfo record that specifies the default format for phonetic strings and the
ranges of cells on the sheet that have visible phonetic strings.
phs: A Phs structure that specifies the default format for phonetic string on the sheet.
phs.ifnt: A FontIndex structure that specifies the font for the string.
phs.phType: 0x0003 specifies that phonetic string can use any type of characters.
1029 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
phs.alcH: 0x0001 specifies that left alignment is used in the phonetic string.
sqref: A SqRef structure that specifies the ranges of cells on the sheet that have visible phonetic
strings.
sqref.cref: 0x0000 specifies the number of elements in rgrefs. The rgrefs field is not included in this
example for brevity.
This record is an EOF record which specifies the end of a collection of records for this worksheet
substream.
Size Structure
The remaining records in this workbook example, two Worksheet substreams, are omitted for
brevity.
3.10 PivotTable
This example shows a PivotTable and associated PivotCache within a workbook. The PivotTable uses
a range of cells (A1:E45) in the "Source Data" sheet as its data source. A CustomerName field and
ProductName field are added to the row area, a Quantity field to the data area, and an OrderDate field
to the page area of this PivotTable. Two dates are selected in the filter for the OrderDate field; the
other dates are filtered out from page area. This example addresses important PivotTable records, and
those records that are relevant to different parts of the PivotTable from the Workbook stream and
Pivot Cache Storage stream.
The following figure shows a possible implementation of the PivotTable discussed in this example.
1030 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Figure 130: Example PivotTable within a sheet
The first record, an SXStreamID, specifies the stream in the PivotCache storage that contains the
PivotCache for this PivotTable.
idstm: 0x0001 specifies the identifier of the stream in the PivotCache storage that contains the
PivotCache for this PivotTable. The stream identifier is a four-character string representation of the
hexadecimal value. In this case the stream identifier is "0001".
The next record, an SXVS, specifies that the type of source data used for this PivotCache is a range.
1031 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
sxvs: 0x0001 specifies that the source data for this PivotTable is a range. The DConRef record that
follows this record specifies the range.
The next record, a DConRef, specifies the range in this workbook that is the source data for this
PivotTable.
ref: A RefU structure that specifies the range of the source data for this PivotTable in the sheet
specified by stFile.
ref.rwFirst: An RwU structure that specifies the first row in the range of the source data for this
PivotTable.
ref.rwFirst.rw: 0x0000 specifies that the range of the source data for this PivotTable begins in row 1
of the sheet specified by stFile.
ref.rwLast: An RwU structure that specifies the last row in the range of the source data for this
PivotTable.
ref.rwLast.rw: 0x002C specifies that the range of the source data for this PivotTable ends in row 45
of the sheet specified by stFile.
ref.colFirst: A ColByteU structure that specifies the first column in the range of the source data for
this PivotTable.
ref.colFirst.col: 0x00 specifies that the range of the source data for this PivotTable begins in the
column A of the sheet specified by stFile.
1032 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ref.colLast: A ColByteU structure that specifies the last column in the range of the source data for
this PivotTable.
ref.colLast.col: 0x04 specifies that the range of the source data for this PivotTable ends in column E
of the sheet specified by stFile.
stFile: A DConFile structure that specifies the name of the worksheet that contains the range of the
source data for this PivotTable.
stFile.stFile: A string, "Source Data", that specifies the name of the worksheet that contains the
range of the source data for this PivotTable.
The next record, SXAddl, specifies additional information for this PivotTable view.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.frtHeaderOld.rt: 0x0864 specifies the record type identifier for this record.
hdr.frtHeaderOld.grbitFrt.fFrtRef: 0x0 specifies that this record does not specify a range of cells.
hdr.frtHeaderOld.grbitFrt.fFrtAlert: 0x0 specifies that the application does not alert the user about
possible problems if the file is saved without the record being recognized.
1033 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
hdr.sxd: 0x00 specifies the type of record contained in the data field of the containing SXAddl record.
This value specifies that the type of this SXAddl record is SXAddl_SXCCache_SXDId.
idCache: 0x00000001 specifies the PivotCache stream that is associated with this SxcCache class.
The next record, SXAddl, specifies additional information for this PivotTable view.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.sxd: 0x02 specifies the type of record contained in the data field of the containing SXAddl record.
See class for more information. This value specifies that the type of this SXAddl record is
SXAddl_SXCCache_SXDVer10Info.
citmGhostMax: 0xFFFFFFFF specifies that the number of unused cache items to allow before
discarding those that are unused is not determined by the file; instead, the application optimizes
the number of unused cache items at run time.
1034 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
bVerCacheLastRefresh: 0x02 specifies the data functionality level with which the PivotCache was
last refreshed.
bVerCacheRefreshableMin: 0x00 specifies the lowest data functionality level with which the
application is allowed to refresh the PivotCache.
numDateCopy: Specifies the date and time when the PivotCache was last refreshed.
The next record in this example, SXAddl, specifies additional information for this PivotTable view.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.sxd: 0xFF specifies the type of record contained in the data field of the containing SXAddl record.
See class for more information. This value specifies that the type of this SXAddl record is
SXAddl_SXCCache_SXDEnd.
The next record in this example, SxView, specifies the top-level PivotTable view information for this
PivotTable.
1035 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
1036 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
ref: A structure that specifies the range (A2:C11) that specifies the location of the PivotTable view.
ref.rwLast.rw: 0x000A specifies the eleventh row (row 11) in the sheet.
rwFirstData: A structure that specifies the first row that contains PivotTable data.
colFirstData: A structure that specifies the first column that contains PivotTable data.
1037 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
colFirstData.col: 0x0002 specifies the third column (column C) in the sheet.
iCache: 0x0000 specifies the index of the PivotCache for this PivotTable, which is the first stream in
the _SX_DB_CUR storage.
sxaxis4Data: A structure that specifies the default axis for data fields. Only the sxaxisRow and
sxaxisCol bits of the structure are shown, as the rest of the bits are always 0.
sxaxis4Data.sxaxisRw: 0x0001 specifies that the row axis is the default axis for data fields.
ipos4Data: 0xFFFF (-1) specifies that the data field is in the default position.
cDim: 0x0005 specifies that there are five fields in the database.
cDimRw: 0x0002 specifies that there are two fields on the row axis.
cDimCol: 0x0000 specifies that there are no fields on the column axis.
cDimPg: 0x0001 specifies that there is one field on the page axis.
cDimData: 0x0001 specifies that there is one field on the data axis.
cRw: 0x0007 specifies that there are seven pivot lines in the row area of this PivotTable view.
cCol: 0x0001 specifies that there is one pivot line in the column area of this PivotTable view.
fRwGrand: 0x0001 specifies that this PivotTable view contains grand totals for rows.
fColGrand: 0x0001 specifies that this PivotTable view contains grand totals for columns.
fAtrNum: 0x0000 specifies that this PivotTable does not have AutoFormat applied for numbers.
fAtrFnt: 0x0000 specifies that this PivotTable does not have AutoFormat applied for fonts.
fAtrAlc: 0x0000 specifies that this PivotTable does not have AutoFormat applied for alignment.
fAtrBdr: 0x0000 specifies that this PivotTable does not have AutoFormat applied for borders.
fAtrPat: 0x0000 specifies that this PivotTable does not have AutoFormat applied for patterns.
fAtrProc: 0x0000 specifies that this PivotTable has AutoFormat applied for width and height.
itblAutoFmt: XL8_ITBLCLASSIC1 specifies that this PivotTable is using the "Classic" style of
AutoFormat.
cchDataName: 0x0004 specifies that the string in stData has four characters.
stData: Specifies that the name of the data pivot field is "Data".
1038 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.8 PivotTable: Sxvd 1
The next record in this example, Sxvd, specifies the first pivot field ("CustomerName") in the row axis.
sxaxis: Specifies the PivotTable axis to which this pivot field belongs.
sxaxis.sxaxisRw: 0x1 specifies that this pivot field refers to the row axis.
sxaxis.sxaxisCol: 0x0 specifies that this pivot field does not refer to the column axis.
sxaxis.sxaxisPage: 0x0 specifies that this pivot field does not refer to the page axis.
sxaxis.sxaxisData: 0x0 specifies that this pivot field does not refer to the value axis.
1039 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cSub: 0x0001 specifies that one subtotal function is used for this pivot field.
fSum: 0x0 specifies that the sum subtotal function is not displayed.
fCounta: 0x0 specifies that the count subtotal function is not displayed.
fAverage: 0x0 specifies that the average subtotal function is not displayed.
fMax: 0x0 specifies that the max subtotal function is not displayed.
fMin: 0x0 specifies that the min subtotal function is not displayed.
fProduct: 0x0 specifies that the sum subtotal function is not displayed.
fCount: 0x0 specifies that the count numbers subtotal function is not displayed.
fStdev: 0x0 specifies that the standard deviation subtotal function is not displayed.
fStdevp: 0x0 specifies that the standard deviation population subtotal function is not displayed.
fVariance: 0x0 specifies that the variance subtotal function is not displayed.
fVariancep: 0x0 specifies that the variance population subtotal function is not displayed.
cItm: 0x0006 specifies that there are six pivot items for this pivot field.
cchName: 0xFFFF specifies that the caption of this pivot field is NULL, which means that the name is
inherited from the associated cache field instead.
The next record in this example, SXVI, specifies the first pivot item ("Antonio Moreno Taquería") of
this pivot field ("CustomerName"). This item is filtered out and not visible in the PivotTable report.
itmType: 0x0000 specifies that the pivot item is a regular data value.
1040 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fHideDetail: 0x0 specifies that the pivot item is not collapsed (see Collapsing).
fFormula: 0x0 specifies that the pivot item is not a calculated item.
fMissing: 0x0 specifies that the pivot item exists in the data source.
iCache: This field specifies a cache item in the cache field that is associated with this pivot field
("CustomerName"). The index 0x01 specifies the second SXString ("Antonio Moreno Taquería") in
the collection following the SXFDB with stFieldName="CustomerName".
cchName: 0xFFFF specifies that this pivot item does not have a caption.
The next record in this example, SXVI, specifies the pivot item "Island Trading" in the PivotTable view.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
itmType: 0x0000 specifies that this pivot item is a regular data value.
fHideDetail: 0x0 specifies that this pivot item is not collapsed (see Collapsing).
fFormula: 0x0 specifies that this pivot item is not a calculated item.
fMissing: 0x0 specifies that this pivot item exists in the data source.
iCache: The index 0x03 specifies the fourth SXString ("Island Trading") in the collection following the
SXFDB with stFieldName="CustomerName".
The next record in this example, SXVI, specifies the pivot item "Richter Supermarkt" in the PivotTable
view.
1041 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fHideDetail: 0x1 specifies that the pivot item is collapsed (see Collapsing).
The next record in this example, SXVI, specifies the Total row in the PivotTable view.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
iCache: 0xFFFF specifies that the pivot item does not refer to any cache item.
1042 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.13 PivotTable: SXVDEx 1
The next record in this example, SXVDEx, specifies the extended information about this
("CustomerName") pivot field.
1043 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fShowAllItems: 0x0 specifies that all pivot items in the PivotTable view are not displayed.
fDragToRow: 0x1 specifies that the pivot field can be dragged to the row axis.
fDragToColumn: 0x1 specifies that the pivot field can be placed on the column axis.
fDragToPage: 0x1 specifies that the pivot field can be dragged to the page axis.
fDragToHide: 0x1 specifies that the pivot field can be removed from the PivotTable view.
fNotDragToData: 0x0 specifies that the pivot field can be dragged to the data axis.
fServerBased: 0x0 is required because the corresponding cache field is not server-based.
fAutoSort: 0x0 specifies that AutoSort is not enabled for this pivot field.
fAscendSort: 0x1 specifies that AutoSort order is set to ascending, and if AutoSort is enabled, this
pivot field is sorted in ascending order.
fAutoShow: 0x0 specifies that AutoShow is not enabled on this pivot field.
fTopAutoShow: 0x1 specifies that AutoShow is set to show top 10 values rather than bottom 10
values. If AutoShow is enabled, this PivotTable view uses top 10 values for AutoShow (filter).
fCalculatedField: 0x0 specifies that this pivot field is not a calculated field.
fPageBreaksBetweenItems: 0x0 specifies that a page break is not set between different pivot
items in the PivotTable view during printing.
fHideNewItems: 0x0 specifies that new pivot items that are added to the data source are displayed
automatically in the PivotTable view when the PivotTable is refreshed.
fOutline: 0x0 specifies that this pivot field is not displayed in outline format.
fInsertBlankRow: 0x0 specifies that a blank line is not inserted between different pivot items in the
PivotTable view.
fSubtotalAtTop: 0x0 specifies that subtotals are displayed at the bottom of the list of pivot items for
this pivot field.
citmAutoShow: 0x0A specifies that 10 pivot items are set to display for the top n AutoShow (filter).
isxdiAutoShow: 0xFFFF specifies that AutoShow is not enabled for this pivot field.
subName: Specifies the name of the aggregate function used to calculate this pivot field's subtotals.
The next record in this example, Sxvd, specifies the pageField ("OrderDate") of this PivotTable view.
1044 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
sxaxis: This field specifies the PivotTable axis upon which this pivot field exists.
sxaxis.sxaxisRw: 0x0 specifies that this pivot field does not refer to the row axis.
sxaxis.sxaxisCol: 0x0 specifies that this pivot field does not refer to the column axis.
sxaxis.sxaxisPage: 0x1 specifies that this pivot field refers to the page axis.
sxaxis.sxaxisData: 0x0 specifies that this pivot field does not refer to the data axis.
cItm: 0x0015 specifies that this pivot field contains 21 pivot items.
1045 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.15 PivotTable: SXVI 5
The next record in this example, SXVI, specifies the first pivot item (5/6/1997) of this page field
("OrderDate"). This pivot item is filtered out and not displayed in the PivotTable view.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fHidden: 0x1 specifies that this pivot item is hidden (filtered out).
The next record in this example, SXVI, specifies the second pivot item (11/28/1997) of this page field
("OrderDate").
1046 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fHidden: 0x1 specifies that the pivot item is hidden. Because this pivot item is one of the items
showing in the filter in the page area but is not actually displayed in the report, it is marked as
hidden.
The next record in this example, SXVI, specifies the third pivot item (12/23/1997) of this page field
("OrderDate").
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
The next record in this example, SXVDEx, specifies extended information about this pivot field
("OrderDate").
1047 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
ifmt.ifmt: 0x000E specifies that the format of this pivot item is the built-in format mm-dd-yy.
The next record in this example, Sxvd, specifies the second field in the row axis, "ProductName".
1048 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
cItm: 0x0007 specifies that this pivot field has seven pivot items.
The next record in this example, Sxvd, specifies the pivot field "UnitPrice", which is not in the
PivotTable view.
1049 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
sxaxis: Specifies the PivotTable axis that this pivot field belongs to.
sxaxis.sxaxisRw: 0x0 specifies that this pivot field does not refer to the row axis.
sxaxis.sxaxisCol: 0x0 specifies that this pivot field does not refer to the column axis.
sxaxis.sxaxisPage: 0x0 specifies that this pivot field does not refer to the page axis.
sxaxis.sxaxisData: 0x0 specifies that this pivot field does not refer to the data axis.
1050 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cItm: cItm: 0x0000 specifies that there are no pivot items for this pivot field. This is because this
pivot field is a numeric field, and cache items do not need to be stored for numeric fields.
Records following this record, and before the next SXVDEx record, are omitted for brevity.
The next record in this example, SXVDEx, specifies extended information about this pivot field
("UnitPrice").
1051 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fShowAllItems: 0x0 specifies that pivot items that do not currently exist in the source data are not
displayed.
fDragToRow: 0x1 specifies that this pivot field can be placed on the row axis of this PivotTable view.
fDragToColumn: 0x1 specifies that this pivot field can be placed on the column axis of this PivotTable
view.
fDragToPage: 0x1 specifies that this pivot field can be dragged to the page axis of this PivotTable
view.
fDragToHide: 0x1 specifies that this pivot field can be removed from the PivotTable view.
fNotDragToData: 0x0 specifies that this pivot field can be placed on the data axis of this PivotTable
view.
fCalculatedField: 0x0 specifies that this pivot field is not a calculated field.
fOutline: 0x0 specifies that this pivot field is not displayed in outline format.
ifmt.ifmt: 0x002C specifies that this field has the _($* #,##0.00_);_($* (#,##0.00);_($* "-
"??_);_(@_) number format applied.
The next record in this example, Sxvd, specifies the data field ("Quantity") in the PivotTable view.
1052 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
sxaxis: This field specifies the PivotTable axis that this pivot field is on.
sxaxis.sxaxisRw: 0x0 specifies that this pivot field does not refer to the row axis.
sxaxis.sxaxisCol: 0x0 specifies that this pivot field does not refer to the column axis.
sxaxis.sxaxisPage: 0x0 specifies that this pivot field does not refer to the page axis.
sxaxis.sxaxisData: 0x1 specifies that this pivot field refers to the data axis.
cItm: 0x0000 specifies that there are no pivot items for this pivot field. This is because this pivot field
is a numeric field, and cache items do not need to be stored for numeric fields.
Records following this record, and before the next SXVDEx record, are omitted for brevity.
The next record in this example, SXVDEx, specifies the extended information about this pivot field
("Quantity").
1053 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
ifmt: A field that specifies the number format of this pivot field.
1054 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.24 PivotTable: SxIvd
The next record in this example, SxIvd, specifies an array of references to pivot fields on the row axis.
Because cDimRw is 2 and cDimCol is 0 for the parent SxView, this contains an array of rows.
rgSxivd.SxIvdRw[0]: A field that specifies a reference to a pivot field on the row axis.
rgSxivd.SxIvdRw[1]: A field that specifies a reference to a pivot field on the row axis.
The next record in this example, SXPI, specifies an array of SXPI_Item (information about the
PivotTable page item) structures that specify the pivot items on the page axis of this PivotTable. There
is one item in the array because the cDimPg field of the SxView record for the PivotTable view is 1.
rgsxpi.SXPI_Item[0].isxvi: 0x7FFD specifies that all pivot items are used by the "OrderDate" pivot
field.
1055 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgsxpi.SXPI_Item[0].idObj: 0x001 which specifies the object identifier of the Obj record with the
page item drop-down arrow.
The next record in this example, SXDI, specifies the data item "Quantity" for this PivotTable view.
isxvdData: A field that specifies a pivot field in the form of an index in the collection of pivot fields
specified by SXFDB. The value 0x04 specifies the fifth pivot field, "Quantity".
df: 0x0000 specifies that this data item is to be displayed as its raw value with no calculation applied.
cchName: 0x000F specifies that the length of this data item is 15 characters.
Because the cRw and cCol fields of the SxView record are greater than zero, this example contains
two SXLI records. This first SXLI specifies the pivot lines for the row area.
1056 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
1057 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
1058 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
1059 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields that appear in several SXLIItem structures with the same values are omitted for brevity.
rgsxli: A field that contains an array of SXLIItem structures, which specify the pivot lines present in
this PivotTable.
rgsxli.SXLIItem[0]: Specifies the first pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[0].cSic: 0x0000 specifies that no pivot items in the rgisxvi array are identical to
the first pivot items in the previous pivot line item in this record.
rgsxli.SXLIItem[0].itmType: 0x0000 specifies that the pivot item is a regular data value.
1060 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgsxli.SXLIItem[0].isxviMac: 0x0002 specifies that this pivot line contains two pivot items.
rgsxli.SXLIItem[0].fMultiDataName: 0x0 specifies that the data field name is used for the total.
rgsxli.SXLIItem[0].iData: 0x00 specifies that the data item for this line item is "Quantity" (the only
data item in this PivotTable).
rgsxli.SXLIItem[0].fSbt: 0x0 specifies that this pivot item does not represent a subtotal.
rgsxli.SXLIItem[0].fBlock: 0x0 specifies that this pivot item is not a block total.
rgsxli.SXLIItem[0].fGrand: 0x0 specifies that this pivot item is not a grand total.
rgsxli.SXLIItem[0].fMultiDataOnAxis: 0x0 specifies that this pivot line does not contain multiple
data fields.
rgsxli.SXLIItem[0].rgisxvi.isxvi[0]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[0], specifies a pivot item index. 0x0002 specifies
the third pivot item (SXVI) within this Sxvd ("CustomerName") record. The referenced pivot item
contains an index which refers to the fourth cache item (SXString) of the corresponding cache field
("CustomerName"). The fourth cache item within this cache field is "Island Trading".
rgsxli.SXLIItem[0].rgisxvi.isxvi[1]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[1], specifies a pivot item index. 0x0002 specifies
the third pivot item (SXVI) within this Sxvd ("ProductName"). The referenced pivot item contains
an index which refers to the fourth cache item (SXString) of the corresponding cache field
("ProductName "). The fourth cache item within this cache field is "Ipoh Coffee".
rgsxli.SXLIItem[1]: Specifies the second pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[1].isxviMac: 0x0001 specifies that this pivot line contains one item.
rgsxli.SXLIItem[2]: Specifies the third pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[2].rgisxvi.isxvi[0]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[0], specifies a pivot item index. 0x0003 specifies
the fourth pivot item (SXVI) within this Sxvd ("CustomerName"). The referenced pivot item
contains an index which refers to the fifth cache item (SXString) of the corresponding cache field
("CustomerName"). The first cache item within this cache field is "Königlich Essen".
rgsxli.SXLIItem[2].rgisxvi.isxvi[1]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[1], specifies a pivot item index. 0x0000 specifies
the first pivot item (SXVI) within this Sxvd ("ProductName") record. The referenced pivot item
contains an index which refers to the first cache item (SXString) of the corresponding cache field
("ProductName"). The first cache item within this cache field is "Geitost".
rgsxli.SXLIItem[3]: Specifies the fourth pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[3].cSic: 0x0001 specifies that one pivot item in the rgisxvi array is identical to the
first pivot item in the previous pivot line item in this record.
1061 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
rgsxli.SXLIItem[3].rgisxvi.isxvi[0]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[0], specifies a pivot item index. 0x0003 specifies
the fourth pivot item (SXVI) within this Sxvd ("CustomerName") record. The referenced pivot item
contains an index which refers to the fifth cache item (SXString) of the corresponding cache field
("CustomerName"). The fifth cache item within this cache field is "Königlich Essen".
rgsxli.SXLIItem[3].rgisxvi.isxvi[1]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[1], specifies a pivot item index. 0x0003 specifies
the fourth pivot item (SXVI) within this Sxvd ("ProductName") record. The referenced pivot item
contains an index which refers to the third cache item (SXString) of the corresponding cache field
("ProductName"). The third cache item within this cache field is "Perth Pasties".
The next pivot line is similar to the earlier subtotal pivot line and is not described here.
rgsxli.SXLIItem[5]: Specifies the sixth pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[5].rgisxvi.isxvi[0]: A field that specifies a pivot item index, because the SxIvd
record with the same index, rgSxivd.SxIvdRw[0], specifies a pivot item index. 0x0004 specifies
the fourth pivot item (SXVI) within this Sxvd ("CustomerName") record. The referenced pivot item
contains an index which refers to the third cache item (SXString) of the corresponding cache field
("ProductName"). The third cache item within this cache field is "Richter Supermarkt".
rgsxli.SXLIItem[6]: Specifies the seventh pivot line and its pivot items in the row axis.
rgsxli.SXLIItem[6].rgisxvi.isxvi[0]: This field has the value 0x0000 because this pivot item is a
grand total (fGrand=1).
rgsxli.SXLIItem[6].rgisxvi.isxvi[1]: This field has the value 0x0000 because this pivot item is a
grand total (fGrand=1).
This second SXLI record specifies the pivot line item structures for the column axis. The size of this
array (one item) is determined by the cCol field of the SxView record.
1062 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
All values of this record are 0 because there is no field or any item in column axis. Because of this,
none of the fields are described in this section.
The next record in this example, SXEx, specifies additional properties of this PivotTable view.
1063 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
cchErrorString: 0xFFFF specifies that a custom string displayed in cells that contain errors does not
exist.
cchNullString: 0xFFFF specifies that a custom string displayed in cells that contain NULL values does
not exist.
cchTag: 0xFFFF specifies that a custom string saved with this PivotTable view does not exist.
crwPage: Specifies the number of rows in the page area of the PivotTable view.
crwPage.drw: 0x0001 specifies that this PivotTable view contains one row on the page axis.
ccolPage: Specifies the number of columns in the page area in the PivotTable view.
ccolPage.dcol: 0x0001 specifies that this PivotTable view contains one column on the page axis.
fAcrossPageLay: 0x0 specifies that multiple pivot fields on the page axis will be displayed in the
page area from the top to the bottom first, as fields are added, before moving to another column.
cWrapPage: 0x00 specifies that pivot fields in the page area do not wrap, as specified by
fAcrossPageLay.
fEnableWizard: 0x1 specifies that the application displays a user interface to interact with the
PivotTable view.
fEnableDrilldown: 0x1 specifies that details can be shown for cells in the data area.
fEnableFieldDialog: 0x1 specifies that a user interface for setting properties of a pivot field can be
displayed.
1064 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
fPreserveFormatting: 0x1 specifies that formatting is preserved when the PivotTable view is
recalculated.
fMergeLabels: 0x0 specifies that empty cells adjacent to the cells displaying pivot item captions of
pivot fields on the row axis and column axis of this PivotTable view are not merged into a single
cell.
fDisplayErrorString: 0x0 specifies that the PivotTable view does not display a custom error string in
cells that contain errors.
fDisplayNullString: 0x1 specifies that the PivotTable view displays a custom string in cells that
contain NULL values.
fSubtotalHiddenPageItems: 0x0 specifies that hidden pivot items, as specified by SXVI records with
the fHidden field equal to 1, of a pivot field on the page axis with the isxvi field of the
corresponding SXPI_Item structure equal to 0x7FFD, are filtered out when calculating the
PivotTable view.
cchPageFieldStyle: 0xFFFF specifies that no style is applied in the page area of the PivotTable view.
cchTableStyle: 0xFFFF specifies that no style is applied in the body of the PivotTable view.
cchVacateStyle: 0xFFFF specifies that no style is applied to cells that become empty when the
PivotTable view is recalculated.
The next record in this example, QsiSXTag, specifies the name and refresh information for this
PivotTable.
1065 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
fEnableRefresh: 0x1 specifies that the PivotTable is to be refreshed with data from an external data
source.
dwQsiFuture.fNoStencil: 0x0 specifies that the drawing of large drop zones is enabled for this
PivotTable viewthat has no data fields.
dwQsiFuture.fHideTotAnnotation: 0x1 specifies that annotation for the total in this OLAP
PivotTable view is hidden.
dwQsiFuture.fIncludeEmptyRw: 0x0 specifies that empty rows from an OLAP data source are not
shown in this PivotTable view.
dwQsiFuture.fIncludeEmptyCol: 0x0 specifies that empty columns from an OLAP data source are
not shown in this PivotTable view.
verSxLastUpdated: 0x02 specifies the data functionality level that this PivotTable was last refreshed
with.
verSxUpdatableMin: 0x00 specifies the minimum version of the application that can refresh this
PivotTable.
1066 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.31 PivotTable: SXViewEx9
QsiSXTag The next record in this example, SXViewEx9, specifies extensions to the PivotTable view.
fFrtAlert: 0x0000 specifies that features of this PivotTable are supported in earlier versions of the
BIFF.
fPrintTitles: 0x00000000 specifies that print titles for the worksheet are not set based on the
PivotTable report.
fLineMode: 0x00000000 specifies that no pivot field is in outline mode. See subtotaling for more
information.
fRepeatItemsOnEachPrintedPage: 0x00000001 specifies that pivot item captions on the row axis
will be repeated at the top of each printed page for pivot fields in tabular form.
The next record in this example, SxAddl, specifies additional information for a PivotTable view and
PivotCache.
1067 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.sxd: 0x00 specifies the type of record contained in the data field of the containing SXAddl record.
This value specifies that the type of this SXAddl record is SXAddl_SXCCache_SXDId.
The next record in this example, SxAddl, specifies additional information for a PivotTable view and
PivotCache.
1068 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.sxd: 0x02 specifies the type of record contained in the data field of the containing SXAddl record.
See class for more information. This value specifies that the type of this SXAddl record is
SXAddl_SXCView_SXDVer10Info.
bVerSxMacro: 0x01 specifies the data functionality level with which this PivotTable was created.
fDisplayImmediateItems: 0x1 specifies that pivot items are displayed in the PivotTable view even
when there is no pivot field on the data axis.
fEnableDataEd: 0x0 specifies the user is not allowed to change values in the data axis of the
PivotTable view.
fReenterOnLoadOnce: 0x0 specifies that this PivotTable view will not refresh the next time the
workbook is opened.
fPageMultipleItemLabel: 0x1 specifies that OLAP calculated members are hidden in the PivotTable
view.
1069 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.34 PivotTable: SxAddl 6
The next record in this example, SxAddl, specifies additional information for a PivotTable view and
PivotCache. In this record, the data.hdr.sxd field specifies that this is the last record of an SxAddl
record collection.
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
hdr: An SXAddlHdr structure that specifies header information for this SXAddl record.
hdr.sxd: 0xFF specifies the type of record contained in the data field of the containing SXAddl record.
See class for more information. This value specifies that the type of this SXAddl record is
SXAddl_SXCView_SXDEnd.
The next record in this example, SXDB, specifies some of the PivotCache properties for the PivotTable
in this example. This SXDB record marks the beginning of the set of records in the stream associated
with this PivotTable that appear in the Pivot Cache storage (_SX_DB_CUR).
1070 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
crdbdb: 0x0000002C specifies that there are a total of 44 records in the source data of this
PivotCache.
idstm: 0x0001 specifies the identifier of the stream in the PivotCache storage that contains the
PivotCache for this PivotTable. The stream identifier is a four-character string representation of the
hexadecimal value. In this case the stream identifier is "0001". This field is equal to the idstm
field of SXStreamID.
fSaveData: 0x1 specifies that cache records exist for this PivotCache.
fInvalid: 0x0 specifies that the cache does not need to be refreshed before the next recalculation.
fOptimizeCache: 0x0 specifies that the cache is not optimized for reduced memory usage.
cfdbdb: 0x0005 specifies that there are five base cache fields in the source data.
cfdbTot: 0x0005 specifies that there are a sum total of five base, grouped, and calculated fields in the
cache. The value of this field is the same as the cfdbdb field because there are no grouped or
calculated fields.
crdbUsed: 0x0006 specifies that there are six records in use from the source data in the PivotTable
view as a result of the filtering in the page area.
cchWho: 0x000A specifies the length (10) of the following rgb string.
rgb: "John Smith" specifies the name of the user who last refreshed the PivotTable.
1071 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
3.10.36 PivotTable: SXDBEx
The next record in this example, SXDBEx, specifies additional PivotCache properties.
numDate: A DateAsNum structure that specifies the PivotCache was last refreshed on 5/28/2008.
cSxFormula: 0x00000000 specifies that there are no SXFormula records for this PivotCache.
The next records in this example are a series of SXFDB and related records that specify the cache
fields and their contents. This first SXFDB record specifies details of the CustomerName cache field in
the PivotCache. In this example, this cache field is displayed in the row axis of the PivotTable.
1072 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are ignored because fHasParent is 0 are omitted for brevity.
fAllAtoms: 0x1 specifies that the source data for this cache field is cached. It is cached because the
CustomerName cache field is displayed in the PivotTable as the first row field.
fSomeUnhashed: 0x0 specifies that all source data is cached in the PivotCache.
fUsed: 0x0 specifies that no calculated cache fields are used in the PivotTable.
fHasParent: 0x0 specifies that this cache field does not have a parent cache field.
fRangeGroup: 0x0 specifies that this cache field is not grouped by range grouping, as specified in
Grouping.
fNumField: 0x0 specifies that the cache items in this cache field do not contain numeric data.
fTextEtcField: 0x1 specifies that the cache items in this cache field contain text values.
fnumMinMaxValid: 0x0 specifies that a valid minimum or maximum value is not computed for this
cache field.
fShortIitms: 0x0 specifies that this cache field does not contain more than 255 cache items.
fNonDates: 0x1 specifies that the cache items in this cache field contain values that are neither time
nor date values.
fDateInField: 0x0 specifies that none of the cache items in this cache field contain a time or date
value.
fServerBased: 0x0 specifies that this cache field is not a server-based field, as specified in Source
Data.
fCantGetUniqueItems: 0x0 specifies that it is possible to retrieve a list of unique items for this
cache field.
csxoper: 0x0000 specifies that there are zero cache item values in this cache field that are based on
child cache fields.
cisxoper: 0x0000 specifies that there are zero values in the child cache fields of this cache field.
catm: 0x0005 specifies that there are five items in the cache item collection for this cache field.
1073 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
stFieldName: "CustomerName" specifies the name of this cache field.
The following record, SXFDBType, is not included in this example because the sxvs field of the SXVS
record in this example is 1.
After the cache field is specified, a series of records follow it that specify the cache items in the
CustomerName cache field. In this example, the next record is an SXString record, which specifies a
string cache item. This cache item is not displayed in the PivotTable view.
cch: 0x0017 specifies the length (23) of the cache item string.
segment: "Great Lakes Food Market" specifies the value of the cache item.
The next record in this example, SXString, specifies a string cache item in the CustomerName cache
field. This cache item does not appear in the PivotTable view.
cch: 0x0017 specifies the length (23) of the cache item string.
segment: "Antonio Moreno Taquería" specifies the value of the cache item.
This record is followed by 1 additional SXString record that is omitted for brevity.
The next record in this example, SXString, specifies a string cache item in the CustomerName cache
field. This record is included in this example because it is displayed in the PivotTable view.
1074 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
cch: 0x000E specifies the length (14) of the cache item string.
Records following this record, and before the next SXFDB record, are omitted for brevity.
The next record in this example, SXFDB, specifies the OrderDate cache field in the PivotCache. This
cache field is displayed in the page axis of the PivotTable.
1075 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fAllAtoms: 0x1 specifies that the source data for this cache field is cached. It is cached because the
OrderDate cache field is displayed in the PivotTable as the first page field.
fNonDates: 0x0 specifies that the cache items in this cache field are date or time values.
fDateInField: 0x1 specifies that at least one cache item in this cache field is a date or time value.
catm: 0x0014 specifies that there are 20 items in the cache item collection for this cache field.
Records following this record, and before the next SXDtr record, are omitted for brevity.
The next record in this example, SXDtr, specifies a date cache item in the OrderDate cache field. This
cache item is filtered out in the PivotTable view.
yr: 0x07CD specifies the year value (1997) of the cache item.
mon: 0x0005 specifies the month value (5) of the cache item.
dom: 0x06 specifies the day of the month value (6) of the cache item.
hr: 0x00 specifies the hour value (0) of the cache item.
min: 0x00 specifies the minute value (0) of the cache item.
sec: 0x00 specifies the second value (0) of the cache item.
This record is followed by 15 additional SXDtr records that are omitted for brevity.
The next record in this example, SXDtr, specifies a date cache item in the OrderDate page field that is
not filtered in the PivotTable view.
1076 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
yr: 0x07CD specifies the year value (1997) of the cache item.
mon: 0x000C specifies the month value (12) of the cache item.
dom: 0x17 specifies the day of the month value (23) of the cache item.
Records following this record, and before the next SXFDB record, are omitted for brevity.
The next record in this example, SXFDB, specifies the ProductName cache field in the PivotCache. This
cache field is displayed in the row axis of the PivotTable.
1077 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fAllAtoms: 0x1 specifies that the source data for this cache field is cached. It is cached because the
ProductName cache field is displayed in the PivotTable as the first row field.
fNumField: 0x0 specifies that the cache items in this cache field do not contain numeric data.
fTextEtcField: 0x1 specifies that the cache items in this cache field contain text values.
catm: 0x0006 specifies that there are six items in the cache item collection for this cache field. The
number of items in the cache field was affected in this case by the filtering on the page field.
Records following this record, and before the next SXFDB record, are omitted for brevity.
The next record in this example, SXFDB, specifies the UnitPrice cache field in the PivotCache. This
cache field does not appear on any PivotTable axis in the PivotTable.
1078 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fAllAtoms: 0x1 specifies that the source data for this cache field is cached. Though this cache field is
not displayed on any areas of the PivotTable, its source data is cached because it was displayed in
the PivotTable at some point.
fNumField: 0x1 specifies that the cache items in this cache field contain numeric data.
catm: 0x0007 specifies that there are seven items in the cache item collection for this cache field.
Records following this record, and before the next SXNum record, are omitted for brevity.
The next record in this example, SXNum, specifies a floating-point number cache item in the
UnitPrice cache field that is not in the PivotTable view.
1079 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Records following this record, and before the next SXFDB record, are omitted for brevity.
The next record in this example, SXFDB, specifies the Quantity cache field in the PivotCache. This
cache field appears in the data axis of the PivotTable.
1080 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
Fields in this record that are explained in previous record descriptions in this example are omitted for
brevity.
fAllAtoms: 0x0 specifies that the source data for this cache field is not cached. Though this cache
field is displayed in the PivotTable, its source data is not cached because the cache field is
displayed in the data area.
fNumField: 0x1 specifies that the cache items in this cache field contain numeric data.
Records following this record, and before the next SXDBB record, are omitted for brevity.
The next records in this example are a series of SXDBB and SXNum records that specify the cache
records for this PivotCache. This first SXDBB specifies the first cache record.
blob.blob[0]: 0x00 specifies the index of the first cache item (Great Lakes Food Market) within the
collection of cache items of the first cache field (CustomerName).
blob.blob[1]: 0x00 specifies the index of the first cache item (5/6/1997) within the collection of
cache items of the second cache field (OrderDate).
blob.blob[2]: 0x00 specifies the index of the first cache item (Geitost) within the collection of cache
items of the third cache field (ProductName).
blob.blob[3]: 0x00 specifies the index of the first cache item (2.5) within the collection of cache
items of the fourth cache field (UnitPrice).
The next record in this example, SXNum, specifies the floating-point number value for the Quantity
cache field in the cache record specified by the previous SXDBB.
1081 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Size Structure Value
num: 0x4020000000000000 specifies that the floating-point number value of this cache item is 8.
This record is followed by 35 additional pairs of SXDBB and SXNum records that are omitted for
brevity.
The next record in this example, SXDBB, specifies a cache record that is displayed within the
PivotTable view.
blob.blob[0]: 0x04 specifies the index of the fifth cache item (Königlich Essen) within the collection
of cache items of the first cache field (CustomerName).
blob.blob[1]: 0x11 specifies the index of the eighteenth cache item (12/26/1997) within the
collection of cache items of the second cache field (OrderDate).
blob.blob[2]: 0x00 specifies the index of the first cache item (Geitost) within the collection of cache
items of the third cache field (ProductName).
blob.blob[3]: 0x00 specifies the index of the seventh cache item (2.5) within the collection of cache
items of the fourth cache field (UnitPrice).
The next record in this example, SXNum, specifies the floating-point number value for the Quantity
cache field in the cache record specified by the previous SXDBB.
num: 0x4037000000000000 specifies that the floating-point number value of this cache item is 23.
1082 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Records following this record, and before the next EOF record, are omitted for brevity.
The next record in this example, EOF, specifies the end of the collection of records for this PivotCache.
Size Structure
1083 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
4 Security Considerations
The password verifier features available in the file format (see Password Verifier Algorithm) are used
to prevent accidental modification, rather than being used as security features. It is possible to
remove the passwords by removing the records containing the verifier values.
The translation of passwords from a double-byte Unicode string to a new character string in the ANSI
code page of the current system converts any Unicode character that cannot be mapped to the ANSI
code page of the current system to the 0x3F character in that code page (as described in [ECMA-376]
part 4, 3.2.29). Replacing these characters with 0x3F when the hash is verified will generate positive
hash value matches. In certain locales this can be a significant portion of the everyday character set.
When a file in this format is saved with obfuscation or encryption (see Encryption), there are two
primary security considerations. First, only certain storages and streams are encoded during
encryption (see Encryption). Second, for the records that are encrypted, the record type and size are
not encrypted in the BIFF streams. Therefore, the list of records present in the file can be read from
the file without actually decrypting it. Further security considerations regarding the file encryption
algorithms are described in [MS-OFFCRYPTO] section 4.1.3.
1084 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
5 Appendix A: Product Behavior
The information in this specification is applicable to the following Microsoft products or supplemental
software. References to product versions include updates to those products.
Microsoft Excel 97
Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base
(KB) number appears with a product name, the behavior changed in that update. The new behavior
also applies to subsequent updates unless otherwise specified. If a product edition appears with the
product version, behavior is different in that product edition.
Unless otherwise specified, any statement of optional behavior in this specification that is prescribed
using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the
SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the
product does not follow the prescription.
<1> Section 2.1.7.15: Excel 2002, Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013
can write, load, and process the Signatures Stream in a file. Excel 97, Excel 2000 can load a file with a
Signatures Stream but ignores it.
<2> Section 2.1.7.20.1: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010 will write those records at the
end of the substream (section 2.1.3) in which they were encountered during load, in the order in
which they were encountered.
<3> Section 2.1.7.20.2: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013 will write those
records at the end of the substream (section 2.1.3) in which they were encountered during load, in
the order in which they were encountered.
<4> Section 2.1.7.20.2: If a Continue record (section 2.4.58) is needed in the MSODRAWING rule
(section 2.1.7.20.2), Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013 can write out
an MsoDrawing record (section 2.4.170) instead of the first Continue record (section 2.4.58).
<5> Section 2.1.7.20.3: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013 will write those
records at the end of the substream (section 2.1.3) in which they were encountered during load, in
the order in which they were encountered.
1085 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<7> Section 2.1.7.20.4: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010 will write those records at the
end of the substream (section 2.1.3) in which they were encountered during load, in the order in
which they were encountered.
<8> Section 2.1.7.20.5: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010 will write those records at the
end of the substream (section 2.1.3) in which they were encountered during load, in the order in
which they were encountered.
<9> Section 2.1.7.20.6: When saving unsupported future records (section 2.1.6), Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013 will write those
records at the end of the substream (section 2.1.3) in which they were encountered during load, in
the order in which they were encountered.
<10> Section 2.1.7.20.6: Office Excel 2007, Excel 2010, and Excel 2013 can save out a CELLTABLE
without a Row record (section 2.4.221).
<11> Section 2.1.7.20.6: If a Continue record (section 2.4.58) is needed in the MSODRAWING
rule (section 2.1.7.20.2), Office Excel 2003, Office Excel 2007, Excel 2010, and Excel 2013 can write
out an MsoDrawing record (section 2.4.170) instead of the first Continue record.
<12> Section 2.1.7.21: Only Office Excel 2007 and Excel 2010 can write the XML Signatures
storage. Only Office Excel 2007 and Excel 2010 can load and process a file with a XML Signatures
storage; Excel 97, Excel 2000, Excel 2002, Office Excel 2003 can load a file with a XML Signatures
storage but ignore it.
<13> Section 2.2.3.11: Graph Component for Excel 97, Graph Component for Excel 2000, Graph
Component for Excel 2002, Graph Component for Office Excel 2003, Graph Component for Office Excel
2007, and Graph Component for Excel 2010 can create files that do not conform to these rules.
<14> Section 2.2.3.11: Graph Component for Excel 97, Graph Component for Excel 2000, Graph
Component for Excel 2002, Graph Component for Office Excel 2003, Graph Component for Office Excel
2007, and Graph Component for Excel 2010 can create files that do not conform to these rules.
<15> Section 2.2.3.11: Graph Component for Excel 97, Graph Component for Excel 2000, Graph
Component for Excel 2002, Graph Component for Office Excel 2003, Graph Component for Office Excel
2007, and Graph Component for Excel 2010 can create files that do not conform to these rules.
<16> Section 2.2.3.11: Graph Component for Excel 97, Graph Component for Excel 2000, Graph
Component for Excel 2002, Graph Component for Office Excel 2003, Graph Component for Office Excel
2007, and Graph Component for Excel 2010 can create files that do not conform to these rules.
<17> Section 2.2.3.11: Graph Component for Excel 97, Graph Component for Excel 2000, Graph
Component for Excel 2002, Graph Component for Office Excel 2003, Graph Component for Office Excel
2007, and Graph Component for Excel 2010 can create files that do not conform to these rules.
<18> Section 2.2.4.3: Office Excel 2007 and Excel 2010 save metadata records when cells contain
formulas referencing cube functions. However, this metadata does not remain associated with the
cells and is only recorded for the purpose of load and calculation optimization.
<19> Section 2.2.9: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 warn the user when they enter passwords that contain characters other than alphanumeric
characters or punctuation symbols.
<20> Section 2.2.10: In Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 the maximum
password length is 15 characters. In Office Excel 2007 and Excel 2010 the maximum password length
is 255 characters.
<21> Section 2.2.10: Only Excel 2002 and Office Excel 2003 will save files with XOR obfuscation.
1086 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<22> Section 2.2.10: Only Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010 will load
and save files with RC4 CryptoAPI encryption.
<23> Section 2.4.3: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 write a value for this field but ignore it on load.
<24> Section 2.4.3: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 write a value for this field but ignore it on load.
<25> Section 2.4.9: When the base unit is not days, and the data is near the base value of the date
system specified by the Date1904 record (section 2.4.77), catMin value can underflow and get
saved as a large number.
<26> Section 2.4.9: When the base unit is not days, and the data is near the maximum value of the
date system specified by the Date1904 record (section 2.4.77), catMax value can overflow and get
saved as a small number.
<28> Section 2.4.21: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, Excel
2010, and Excel 2013 set the value to 0 on creation, and change it to 1 in subsequent loading and
saving.
<44> Section 2.4.22: Office Excel 2003, Office Excel 2007, and Excel 2010 will prompt the user in
this case.
<45> Section 2.4.22: This behavior does not apply to Office Excel 2007 and Excel 2010.
<46> Section 2.4.30: Specifies either Excel 97, Excel 2000, Excel 2002, or Office Excel 2003.
<47> Section 2.4.30: Specifies either Office Excel 2007 or Excel 2010.
1087 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<48> Section 2.4.45: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save negative values, but at load time the negative values are corrected to 0.
<49> Section 2.4.45: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save negative values, but at load time the negative values are corrected to 0.
<50> Section 2.4.45: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save negative values, but at load time the negative values are corrected to 0.
<51> Section 2.4.45: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save negative values, but at load time the negative values are corrected to 0.
<52> Section 2.4.46: Office Excel 2007 and Excel 2010 can save values greater than or equal to 0
and less than or equal to 200. In Office Excel 2007 and Excel 2010 the view angle is determined by
dividing this value by a factor of 2.
<53> Section 2.4.46: Office Excel 2007 and Excel 2010 can save values less than 5.
<54> Section 2.4.46: Office Excel 2007 and Excel 2010 can save values greater than 500.
<55> Section 2.4.46: Office Excel 2007 and Excel 2010 ignores this bit and will set it back to zero if
the file is resaved.
<57> Section 2.4.49: Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, Excel 2010, or
Excel 2013
<72> Section 2.4.54: Specifies Office Excel 2003, Excel 2002, Excel 2000, or Excel 97.
<73> Section 2.4.54: Specifies Office Excel 2003, Excel 2002, Excel 2000, or Excel 97.
<74> Section 2.4.54: Specifies Office Excel 2003, Excel 2002, Excel 2000, or Excel 97.
<75> Section 2.4.74: Office Excel 2007 and Excel 2010 can save values greater than 254.
1088 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<76> Section 2.4.74: Though the maximum zero-based series number is 254, Office Excel 2007 and
Excel 2010 can save values greater than 254.
<77> Section 2.4.91: This structure is not loaded or saved by Office Excel 2007 and Excel 2010.
<78> Section 2.4.97: Office Excel 2003 , Excel 2002, Excel 2000, and Excel 97 can save out 0 for
this field. In these cases, if the xfprops field specifies a solid fill pattern as part of the formatting
properties, the pattern's color is stored in the background color instead of the foreground color.
<79> Section 2.4.102: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 write out this record on save.
<80> Section 2.4.102: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 do not ignore this record.
<82> Section 2.4.105: Specifies Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel
2007, or Excel 2010.
<83> Section 2.4.107: Excel 97 can saves out a different number of elements.
<84> Section 2.4.109: This record is ignored in Office Excel 2007, and Excel 2010.
<85> Section 2.4.110: This record is ignored in Office Excel 2007 and Excel 2010.
<86> Section 2.4.117: This value is 0x0001 for files created using Office Excel 2007 and Excel 2010.
<87> Section 2.4.122: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save out 0 for certain fonts.
<88> Section 2.4.122: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can also write out the value 0 to specify a black font, or the value 72 to specify the
automatic color for a control.
<89> Section 2.4.122: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can also write out values 0 and 100 through 1000 (inclusive).
<90> Section 2.4.122: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save values greater than 5.
<91> Section 2.4.126: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save values of 383 to 392.
<94> Section 2.4.131: If two consecutive GelFrame records appear, the second GelFrame is a
continuation of the first.
<96> Section 2.4.133: Office Excel 2007 and Excel 2010 uses this GUID to determine if the VBA
project needs to be recompiled on load by comparing the GUID in the file to the GUID built into the
application. If the value is 0x0, the VBA project needs to be recompiled on load.
<97> Section 2.4.150: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save any value from 0 to 0xFF.
<98> Section 2.4.154: This structure is not loaded or saved by Office Excel 2007 and Excel 2010
1089 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<99> Section 2.4.159: This structure is not loaded or saved by Office Excel 2007 and Excel 2010.
<100> Section 2.4.191: If the value of the wPassword field of the Password record in the Globals
Substream is not 0x0000, Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 encrypt the document as specified in [MS-OFFCRYPTO], section 2.3. If an encryption
password is not specified or the workbook or sheet is only protected, the document is encrypted with
the default password of "\x56\x65\x6C\x76\x65\x74\x53\x77\x65\x61\x74\x73\x68\x6F\x70".
<101> Section 2.4.196: Excel 97 and Excel 2000 do not save this field as part of the record.
<102> Section 2.4.196: Excel 97 and Excel 2000 do not save this field as part of the record.
<103> Section 2.4.196: Excel 97 and Excel 2000 do not save this field as part of the record.
<104> Section 2.4.206: If the value of the protPwdRev field of the Prot4RevPass record is not
0x0000, Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010
encrypt the document as specified in [MS-OFFCRYPTO], section 2.3. If an encryption password is not
specified or the workbook or sheet is only protected, the document is encrypted with the default
password of "\x56\x65\x6C\x76\x65\x74\x53\x77\x65\x61\x74\x73\x68\x6F\x70".
<105> Section 2.4.208: In the case of Excel 97 this bit specifies whether the query table adjusts
column width after refresh. If this bit is set to 1 and the fPreserveFmt field in the corresponding
dwQsiFuture field of the QsiSXTag is set to 1 then the column width is not adjusted after refresh.
<113> Section 2.4.216: This structure is not loaded or saved by Office Excel 2007 or Excel 2010.
<114> Section 2.4.218: This record was introduced in Office Excel 2007 as a future record type.
Consequently, it is preserved in BIFF8 format, but ignored by Office Excel 2003, Excel 2002, Excel
2000, and Excel 97.
<115> Section 2.4.241: If the workbook contains more than 4112 sheets, then Excel 97, Excel
2000, Excel 2002, Office Excel 2003, Office Excel 2007, and Excel 2010 can save a file in which any
record that references a sheet identifier can reference the wrong sheet.
<116> Section 2.4.248: Office Excel 2007 and Excel 2010 will save at most 512 RefU in the rgref
array of a Selection record. Office Excel 2003, Excel 2002, Excel 2000, and Excel 97 will save at most
1025 RefU in the rgref array of a Selection record.
<117> Section 2.4.258: This record was introduced in Office Excel 2007 as a Future Record Type.
Consequently, it is preserved in BIFF8 format, but ignored by Office Excel 2003, Excel 2002, Excel
2000, and Excel 97.
<118> Section 2.4.258: This XML stream is ignored by Office Excel 2003, Excel 2002, Excel 2000,
and Excel 97.
<119> Section 2.4.259: Saved only by Office Excel 2007 and Excel 2010.
1090 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<120> Section 2.4.267: Excel 97
<127> Section 2.4.269: Excel 2010, Office Excel 2007, Office Excel 2003, Excel 2002, Excel 2000,
and Excel 97 save out an XLUnicodeString structure with 0 characters.
<128> Section 2.4.273.9: Excel 2000 has a maximum value of 8000. Excel 2002 and Office Excel
2003 have a maximum value of 32500. Values greater than these are treated as these maximums by
these applications.
<129> Section 2.4.273.108: In certain circumstances Office Excel 2003, Excel 2002, and Excel 2000
can save out a higher value.
<130> Section 2.4.281: Office Excel 2007 and Excel 2010 can save out wbe with a value of 0x2B
<131> Section 2.4.310: Excel 97 does not create this field and ignores it if present.
<132> Section 2.4.324: Excel can write numbers larger than 4000 due to rounding while editing
small charts.
<133> Section 2.4.324: Excel can write numbers larger than 4000 due to rounding while editing
small charts.
<134> Section 2.4.324: Excel can write numbers larger than 4000 due to rounding while editing
small charts.
<135> Section 2.4.324: Excel can write numbers larger than 4000 due to rounding while editing
small charts.
<136> Section 2.4.325: This record was introduced in Office Excel 2007 as a Future Record Type.
Consequently, it is preserved in BIFF8 format, but ignored by Office Excel 2003, Excel 2002, Excel
2000, and Excel 97.
<137> Section 2.4.326: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save value 123820, which also indicates default theme.
<138> Section 2.4.329: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 also use the value "2" to specify justify low alignment. Justify low occurs when Arabic
kashida justification is applied to the text. Justify low lengthens kashidas slightly.
<139> Section 2.4.329: Justified alignment is not supported in Office Excel 2007 and Excel 2010 and
is treated as middle alignment.
<140> Section 2.4.329: Excel 97 – East Asian version, Excel 2000 – East Asian version, Excel 2002 –
East Asian version, Office Excel 2003 – East Asian version, or Office Excel 2007 – East Asian version,
or Excel 2010 – East Asian version.
<141> Section 2.4.335: Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 do not set this bit to
1.
1091 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<142> Section 2.4.337: Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 can save out a
value of 0x0001, indicating that natural language formulas are enabled. This feature is deprecated in
Office Excel 2007 and Excel 2010.
<143> Section 2.4.344: Stream does not exist in Excel 97, Excel 2000, Excel 2002, Office Excel
2003, Office Excel 2007, or Excel 2010.
<144> Section 2.4.346: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 truncate wScaleSLV into a byte when saving.
<145> Section 2.4.346: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 truncate wScaleNormal into a byte when saving.
<146> Section 2.4.353: If the Transition Navigation Keys option is turned on, the set of prefix
characters is single quote, double quote, caret, and backslash, which indicate left-alignment, right-
alignment, center-alignment, and fill alignment, respectively. If the Transition Navigation Keys option
is turned off, the only possible prefix character is single quote, which has no alignment significance
but indicates (like all prefix characters) that the cell contents are to be treated as a string literal.
<147> Section 2.4.353: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save 0 in this field when fStyle equals 1.
<148> Section 2.5.4: Can be 0 if year is equal to 1900 and month is equal to 1 and the calendar is
Gregorian.
<149> Section 2.5.9: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save XL8_ITBLJAPAN2, XL8_ITBLJAPAN3, XL8_ITBLJAPAN4, and XL8_ITBLNONE_JPN
as 0x0000, 0x0001, 0x0002, and 0x0003. In this case, values 0x0000 through 0x0010 are saved as
0x0004 through 0x0014.
<150> Section 2.5.10: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save bBoolErr with an error value instead of a Boolean value when fError is 0x00.
<151> Section 2.5.16: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 save out 0xFF.
<152> Section 2.5.20: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 also save out 0 to specify a black background.
<153> Section 2.5.21: The Alpha channel value in the LongRGBA structure is ignored and set to 0xFF
(opaque).
<154> Section 2.5.27: If Office Excel 2007 or Excel 2010 save different values for cp in the CFEx and
CF records, then the value in CFEx takes precedence over the value in CF.
<155> Section 2.5.32: Office Excel 2007 and Excel 2010 will not apply any coloring to a cell when its
CFVO value falls outside of the range of the interpolation curve and fClamp is not set.
<157> Section 2.5.60: Specifies Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, or
Excel 2010.
<160> Section 2.5.63: The following table shows the maximum data functionality levels that different
application versions support:
1092 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Value Maximum data functionality level for
4 Excel 2010
<161> Section 2.5.63: In Excel 97, Excel 2000, Excel 2002, and Office Excel 2003, the values of
some data functionality level fields might not reflect the correct data functionality level.
<162> Section 2.5.65: In the 1900 date system, Excel 97, Excel 2000, Excel 2002, Office Excel
2003, Office Excel 2007, and Excel 2010 treat the year 1900 as though it was a leap year. That is, the
value 59 corresponds to February 28, and the value 61 corresponds to March 1, allowing the (non-
existent) date February 29 to have the value 60.
<163> Section 2.5.91: Office Excel 2007 and Excel 2010 can saves a value greater than 15 and less
than 255.
<164> Section 2.5.113: This value is only possible in the context of a Feature12 record, and cannot
be written by Office Excel 2003.
<165> Section 2.5.113: Office Excel 2003 does not save the totalFmla field; fLoadTotalFmla is 0.
<166> Section 2.5.118: This structure only exists in the context of a Feature12 record, and cannot
be written by Office Excel 2003.
<167> Section 2.5.127: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can write out values 0x13 through 0x24.
<168> Section 2.5.129: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save out values 511 through 1022.
<169> Section 2.5.129: These 4 default structures are saved out as identical Font structures. They
are placeholders for their respective font formatting properties.
<170> Section 2.5.130: This value is ignored in Office Excel 2007 and Excel 2010.
<171> Section 2.5.134: The Feature11 and Feature12 records set the ref8.rwFirst, ref8.rwLast,
ref8.colFirst, and ref8.colLast fields even if fFrtRef is 0.
<172> Section 2.5.143: Excel 97, Excel 2000, Excel 2002, and Office Excel 2003 all write out a value
of 0 for this field and ignore it on load.
<173> Section 2.5.162: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can write out Icv values 0x0000 and 0x0001. Office Excel 2007 and Excel 2010 can also
writes out Icv values that are greater than or equal to 0x0002 and less than or equal to 0x0007.
<174> Section 2.5.164: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can writes out Icv values greater than or equal to 0x01 and less than or equal to 0x07, or
the value 0x48, which specifies the system color for text in windows.
<175> Section 2.5.165: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can write values greater than or equal to 0x017F and less than or equal to 0x0188, but
they will not be loaded.
1093 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
<176> Section 2.5.198.18: In Office Excel 2007 and Excel 2010, natural language formulas are
transformed into A1 references.
<177> Section 2.5.198.23: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007,
and Excel 2010 can write out an rgce which contain PtgArray.
<178> Section 2.5.198.104: Excel 97, Excel 2000, Excel 2002 and Office Excel 2003 write out these
Ptgs. Office Excel 2007 and Excel 2010 convert these Ptgs to equivalent PtgAreas or PtgAreaErrs on
load and never introduces these Ptgs.
<179> Section 2.5.203: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 expect the cbKey field in the PictFmlaKey structure to be an even value.
<180> Section 2.5.244: ltExternalData is only read and saved by Office Excel 2007 and Excel 2010.
<181> Section 2.5.248: Excel 97, Excel 2000, Excel 2002, Office Excel 2003, Office Excel 2007, and
Excel 2010 can save out 0 for certain fonts.
<182> Section 2.5.248: Office Excel 2003, Office Excel 2007, and Excel 2010 can also write out 0.
<183> Section 2.5.266: Office Excel 2003 has unique table identifiers per sheet rather than per
workbook. On load, Office Excel 2007 and Excel 2010 reassigns new identifiers if identical ones exist
within a same workbook.
<184> Section 2.5.266: Set to 0x1 in case of Web-based data provider list data source for
worksheets created using Office Excel 2003.
<185> Section 2.5.266: Office Excel 2007 and Excel 2010 will only write out the value of 1 for this
field.
<186> Section 2.5.266: Office Excel 2003 saves 0xB, Office Excel 2007 saves 0xC, Excel 2010 saves
0xE.
<187> Section 2.5.266: Office Excel 2003, Office Excel 2007, and Excel 2010 do not ignore this field.
<188> Section 2.5.272: For files last saved in East Asian versions of the application, lastRun can be
a Run instead of a TxoLastRun.
<190> Section 2.5.314: Office Excel 2007 and Excel 2010 can save values larger than 500.
<191> Section 2.5.342: Under certain circumstances, Excel 97, Excel 2000, Excel 2002, Office Excel
2003, Office Excel 2007, and Excel 2010 persist these values.
<192> Section 2.5.344: Office Excel 2003, Office Excel 2007, and Excel 2010 can save a value of -1
on the itabLast field for either a workbook-level or a sheet-level reference to an external workbook if
an Information Rights Management (IRM) authorization failure occurred during a refresh of that
workbook's data.
<193> Section 2.6.2: Web-only view is only used by Excel 97, Excel 2000, Excel 2002, and Office
Excel 2003.
1094 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
6 Change Tracking
No table of changes is available. The document is either new or has had no changes since its last
release.
1095 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
7 Index
A C
1096 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
attached label 102 encryption (password to open) 164
axis 88 external connections 162
axis group 86 external references 160
chart 85 formulas 80
chart data cache 84 metadata 103
chart group 90 password verifier algorithm 163
chart sheet 83 PivotTables 106
data label 94 shared feature 168
data point 94 shared workbooks 165
data table 101 styles 157
error bar 100 CondDataValue 621
legend 91 CondFmt 242
pivot chart 86 CondFmt12 242
series 93 CondFmtStructure 621
SPRC 103 Conditional Formatting example 924
trendline 100 Conditional formatting: CF example 926
ClrtClient 238 Conditional formatting: CondFmt example 924
CodeName 239 Connection files 162
CodePage 239 Connection name 162
Col 616 ConnGrbitDbt 622
Col_NegativeOne 616 ConnGrbitDbtAdo 622
Col12 617 ConnGrbitDbtOledb 623
Col256U 617 ConnGrbitDbtWeb 624
ColByte 617 Continue 243
ColByteU 618 Continue_SxaddlSxString 431
ColElfU 618 ContinueBigName 243
ColInfo 240 ContinueFrt 244
Collection of records 57 ContinueFrt11 244
ColorICV 618 ContinueFrt12 245
ColorTheme 619 Control stream 59
ColRelNegU 619 Control tokens 82
ColRelU 620 ControlInfo 625
ColSlco8U 620 Country 245
ColU 620 CrErr 247
Column Chart Object example 955 CRN 247
Column chart object: AreaFormat example 958 CrtLayout12 248
Column chart object: AxesUsed example 968 CrtLayout12A 250
Column chart object: Axis example 969 CrtLayout12Mode 625
Column chart object: AxisParent example 969 CrtLine 252
Column chart object: Bar example 972 CrtLink 253
Column chart object: BRAI 1 example 959 CrtMlFrt 253
Column chart object: BRAI 2 example 961 CrtMlFrtContinue 254
Column chart object: BRAI 3 example 963 CTB 920
Column chart object: CatSerRange example 969 CTBS 919
Column chart object: Chart example 956 CTBWRAPPER 919
Column chart object: ChartFormat example 971 CUsr 254
Column chart object: DataFormat example 965
Column chart object: DefaultText example 966 D
Column chart object: FontX example 968
Column chart object: Frame example 956 DAO recordset connections 163
Column chart object: LineFormat example 957 Dat 254
Column chart object: Series example 959 data functionality level 117
Column chart object: SeriesText example 961 Data label 94
Column chart object: SerToCrt example 965 Data point 94
Column chart object: ShtProps example 965 Data spaces storage 59
Column chart object: Text example 966 Data table 101
Column chart object: Tick example 970 DataFormat 255
Colx 621 DataFunctionalityLevel 626
Compat12 241 DataLabExt (section 2.4.75 255, section 2.4.76 256)
Component object stream 58 DataSourceType 626
Compound file 56 Date1904 257
CompressPictures 241 DateAsNum 626
Conceptual overview 79 DateUnit 626
cell table 79 DBCell 257
charts 82 DbOrParamQry 258
1097 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
DbQuery 258 Bold structure 594
DbQueryExt 260 BookBool record 214
DCol 627 BookExt record 215
DColByteU 627 BookExt_Conditional11 structure 594
DCon 262 BookExt_Conditional12 structure 594
DConBin 264 Boolean structure 595
DConFile 627 BoolErr record 216
DConn 265 BopPop record 216
DConName 270 BopPopCustom record 218
DConnConnectionOleDb 628 BorderStyle structure 595
DConnConnectionWeb 629 BottomMargin record 219
DConnId 629 BoundSheet8 record 220
DConnParamBinding 630 BRAI record 221
DConnParamBindingValByte 630 BuiltInFnGroupCount record 222
DConnParamBindingValInt 630 BuiltInStyle structure 596
DConnParamBindingValString 630 CachedDiskHeader structure 596
DConnParamBindingValType 631 CalcCount record 223
DConnParameter 631 CalcDelta record 223
DConnStringSequence 632 CalcIter record 223
DConnUnicodeStringSegmented 632 CalcMode record 223
DConRef 271 CalcPrecision record 224
DDE data item 161 CalcRefMode record 224
DDE data source 161 CalcSaveRecalc record 224
DefaultRowHeight 272 CatLab record 225
DefaultText 272 CatSerRange record 225
DefColWidth 273 CbUsr record 227
Defined Name example 933 Cch255 structure 597
Defined name: ExternSheet example 935 Cell structure 597
Defined name: Lbl example 933 CellParsedFormula structure 725
Defined name: SupBook example 936 CellWatch record 227
Details CellXF structure 597
AddinUdf structure 587 Cetab structure 725
AF12CellIcon structure 587 CF record 228
AF12Criteria structure 588 CF12 record 229
AF12DateInfo structure 588 CFColor structure 601
AFDOper structure 589 CFDatabar structure 601
AFDOperBoolErr structure 590 CFEx record 232
AFDOperRk structure 591 CFExAveragesTemplateParams structure 603
AFDOperStr structure 591 CFExDateTemplateParams structure 603
AlRuns record 191 CFExDefaultTemplateParams structure 604
Application data for VtHyperlink algorithm 923 CFExFilterParams structure 604
Area record 191 CFExNonCF12 structure 605
AreaFormat record 192 CFExTemplateParams structure 607
Array record 197 CFExTextTemplateParams structure 608
ArrayParsedFormula structure 724 CFFilter structure 608
AttachedLabel record 198 CFFlag structure 609
AutoFilter record 199 CFGradient structure 610
AutoFilter12 record 201 CFGradientInterpItem structure 610
AutoFilterInfo record 204 CFGradientItem structure 611
AutoFmt8 structure 592 CFMStateItem structure 612
AxcExt record 204 CFMultistate structure 612
AxesUsed record 207 CFParsedFormula structure 754
Axis record 207 CFParsedFormulaNoCCE structure 754
AxisLine record 208 CFrtId structure 613
AxisParent record 209 CFT structure 614
Backup record 209 CFVO structure 615
Bar record 209 CFVOParsedFormula structure 754
BCUsrs record 210 Chart record 233
Begin record 210 Chart3d record 234
BErr structure 724 Chart3DBarShape record 236
Bes structure 593 ChartFormat record 236
BigName record 211 ChartFrtInfo record 237
BkHim record 211 ChartNumNillable structure 616
Blank record 212 ChartParsedFormula structure 755
BOF record 212 ClrtClient record 238
1098 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
CodeName record 239 DColByteU structure 627
CodePage record 239 DCon record 262
Col structure 616 DConBin record 264
Col_NegativeOne structure 616 DConFile structure 627
Col12 structure 617 DConn record 265
Col256U structure 617 DConName record 270
ColByte structure 617 DConnConnectionOleDb structure 628
ColByteU structure 618 DConnConnectionWeb structure 629
ColElfU structure 618 DConnId structure 629
ColInfo record 240 DConnParamBinding structure 630
ColorICV structure 618 DConnParamBindingValByte structure 630
ColorTheme structure 619 DConnParamBindingValInt structure 630
ColRelNegU structure 619 DConnParamBindingValString structure 630
ColRelU structure 620 DConnParamBindingValType structure 631
ColSlco8U structure 620 DConnParameter structure 631
ColU structure 620 DConnStringSequence structure 632
Colx structure 621 DConnUnicodeStringSegmented structure 632
Compat12 record 241 DConRef record 271
component object stream 58 DefaultRowHeight record 272
CompressPictures record 241 DefaultText record 272
CondDataValue structure 621 DefColWidth record 273
CondFmt record 242 Dimensions record 273
CondFmt12 record 242 DJoin structure 633
CondFmtStructure structure 621 DocRoute record 274
ConnGrbitDbt structure 622 document summary information stream 59
ConnGrbitDbtAdo structure 622 DropBar record 276
ConnGrbitDbtOledb structure 623 DropDownObjIds record 277
ConnGrbitDbtWeb structure 624 DRw structure 633
Continue record 243 DRwByteU structure 633
Continue_SxaddlSxString record 431 DSF record 277
ContinueBigName record 243 Duce structure 633
ContinueFrt record 244 DuceRadical structure 634
ContinueFrt11 record 244 DuceStacked structure 635
ContinueFrt12 record 245 Ducr structure 635
control stream 59 DucrConditionalLbl structure 636
ControlInfo structure 625 DucrConditionalNoLbl structure 637
Country record 245 Dv record 277
CrErr record 247 DVal record 280
CRN record 247 DVParsedFormula structure 755
CrtLayout12 record 248 DwQsiFuture structure 637
CrtLayout12A record 250 DXF record 281
CrtLayout12Mode structure 625 DXFALC structure 638
CrtLine record 252 DXFBdr structure 639
CrtLink record 253 DXFFntD structure 640
CrtMlFrt record 253 DXFId structure 641
CrtMlFrtContinue record 254 DXFN structure 641
CTB XCB structure 920 DXFN12 structure 644
CTBS XCB structure 919 DXFN12List structure 645
CTBWRAPPER XCB structure 919 DXFN12NoCB structure 645
CUsr record 254 DXFNum structure 645
Dat record 254 DXFNumIFmt structure 646
data spaces storage 59 DXFNumUsr structure 646
DataFormat record 255 DXFPat structure 646
DataFunctionalityLevel structure 626 DXFProt structure 647
DataLabExt record (section 2.4.75 255, section DxGCol record 282
2.4.76 256) embedding storage 59
DataSourceType structure 626 encryption stream 59
Date1904 record 257 End record 282
DateAsNum structure 626 EndBlock record 282
DateUnit structure 626 EndObject record 284
DBCell record 257 EnhancedProtection structure 647
DbOrParamQry record 258 EntExU2 record 285
DbQuery record 258 EOF record 285
DbQueryExt record 260 Excel9File record 285
DCol structure 627 ExternDdeLinkNoOper structure 648
1099 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ExternDocName structure 648 FrtRefHeaderNoGrbit structure 681
ExternName record 285 FrtRefHeaderU structure 681
ExternOleDdeLink structure 649 FrtWrapper record 311
ExternSheet record 287 Ftab structure 759
ExtNameParsedFormula structure 756 FtCbls structure 682
ExtProp structure 649 FtCblsData structure 682
ExtPtgArea3D structure 757 FtCf structure 683
ExtPtgAreaErr3D structure 757 FtCmo structure 683
ExtPtgErr structure 757 FtEdoData structure 686
ExtPtgRef3D structure 758 FtGboData structure 687
ExtPtgRefErr3D structure 758 FtGmo structure 687
ExtRst structure 650 FtLbsData structure 688
ExtSheetPair structure 758 FtMacro structure 690
ExtSST record 288 FtNts structure 691
ExtString record 288 FtPictFmla structure 691
FactoidData structure 651 FtPioGrbit structure 692
Fbi record 289 FtRbo structure 694
Fbi2 record 290 FtSbs structure 695
Feat record 291 FullColorExt structure 696
Feat11CellStruct structure 651 GelFrame record 312
Feat11FdaAutoFilter structure 651 GradStop structure 696
Feat11FieldDataItem structure 652 GridSet record 314
Feat11Fmla structure 659 GUIDTypeLib record 314
Feat11RgInvalidCells structure 659 Guts record 314
Feat11RgSharepointIdChange structure 659 HCenter record 315
Feat11RgSharepointIdDel structure 660 Header record 315
Feat11TotalFmla structure 660 HeaderFooter record 319
Feat11WSSListInfo structure 660 HFPicture record 320
Feat11XMap structure 663 HiddenMemberSet structure 697
Feat11XMapEntry structure 663 HideObj record 322
Feat11XMapEntry2 structure 664 HideObjEnum structure 697
FeatFormulaErr2 structure 664 HLink record 322
FeatHdr record 292 HLinkTooltip record 322
FeatHdr11 record 293 HorizAlign structure 698
FeatProtection structure 664 HorizontalPageBreaks record 323
FeatSmartTag structure 665 HorzBrk structure 698
Feature11 record 293 Icv structure 698
Feature12 record 295 IcvChart structure 702
FFErrorCheck structure 666 IcvFont structure 702
FileLock record 295 IcvXF structure 702
FilePass record 296 IFmt structure 702
FileSharing record 297 IFmtRecord record 323
FillPattern structure 666 Ilel structure 786
FillStylePropertiesForShapePropsStreamChecksum Index record 323
structure 667 InterfaceEnd record 324
FilterMode record 297 InterfaceHdr record 324
FnGroupName record 297
FnGrp12 record 297 InteriorColorPropertiesForShapePropsStreamChe
Font record 298 cksum structure 703
FontIndex structure 677 Intl record 324
FontInfo structure 677 ISSTInf structure 704
FontScheme structure 678 IXFCell structure 704
FontX record 300 KPIProp structure 704
Footer record 301 KPISets structure 705
ForceFullCalculation record 301 Label record 325
Format record 302 LabelSst record 325
FormatRun structure 678 Lbl record 325
Formula record 309 LbsDropData structure 705
FormulaValue structure 678 LeftMargin record 328
Frame record 310 Legend record 328
FrtFlags structure 679 LegendException record 329
FrtFontList record 311 Lel record 330
FrtHeader structure 680 LEMMode structure 706
FrtHeaderOld structure 680 Line record 330
FrtRefHeader structure 680 LineFormat record 331
1100 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
LinePropertiesForShapePropsStreamChecksum Pane record 353
structure 707 PaneType structure 722
link storage 59 ParameterParsedFormula structure 788
list data stream 60 ParamQry record 354
List12 record 332 PARAMQRY_Fixed structure 723
List12BlockLevel structure 708 Password record 354
List12DisplayName structure 710 PBT structure 832
List12TableStyleClientInfo structure 711 PhoneticInfo record 355
ListParsedArrayFormula structure 787 PhRuns structure 833
ListParsedFormula structure 787 Phs structure 833
LongRGB structure 711 PicF record 355
LongRGBA structure 712 PictFmlaEmbedInfo structure 834
LPr record 333 PictFmlaKey structure 834
LPWideString structure 712 Pie record 356
LRng record 334 PieFormat record 357
MarkerFormat record 334 pivot cache storage 65
MDB record 336 PivotChartBits record 357
MDir structure 712 PivotCompProp structure 835
MDTInfo record 336 PivotParsedFormula structure 789
MDTInfoIndex structure 713 PlotArea record 358
MDXKPI record 338 PlotGrowth record 358
MDXProp record 339 Pls record 358
MDXSet record 339 PLV record 359
MDXStr record 340 Pos record 359
MDXStrIndex structure 713 PositionMode structure 835
MDXTuple record 341 PrintGrid record 361
MergeCells record 341 PrintRowCol record 361
Mms record 342 PrintSize record 362
MOper structure 713 Prot4Rev record 362
MsoDrawing record 342 Prot4RevPass record 363
MsoDrawingGroup record 342 Protect record 363
MsoDrawingSelection record 343 protected content stream 65
MTRSettings record 343 Ptg structure 789
MulBlank record 344 PtgAdd structure 792
MulRk record 344 PtgArea structure 792
NameCmt record 345 PtgArea3d structure 793
NameFnGrp12 record 346 PtgAreaErr structure 793
NameParsedFormula structure 787 PtgAreaErr3d structure (section 2.5.198.30 794,
NamePublish record 347 section 2.5.198.31 794)
NilChartNum structure 714 PtgArray structure 795
Note record 347 PtgAttrBaxcel structure 795
NoteRR structure 714 PtgAttrChoose structure 796
NoteSh structure 715 PtgAttrGoto structure 796
Number record 348 PtgAttrIf structure 797
Obj record 348 PtgAttrSemi structure 797
ObjectLink record 351 PtgAttrSpace structure 797
ObjectParsedFormula structure 788 PtgAttrSpaceSemi structure 798
ObjFmla structure (section 2.5.187 716, section PtgAttrSpaceType structure 798
2.5.188 717) PtgAttrSum structure 799
ObjLinkFmla structure 717 PtgBool structure 799
ObjProtect record 351 PtgConcat structure 799
ObNoMacros record 352 PtgDataType structure 799
ObProj record 352 PtgDiv structure 800
ODBCType structure 718 PtgElfCol structure 800
Office data store storage 64 PtgElfColS structure 800
Office toolbars stream 64 PtgElfColSV structure 801
OfficeArtClientAnchorChart structure 718 PtgElfColV structure 801
OfficeArtClientAnchorHF structure 719 PtgElfLel structure 801
OfficeArtClientAnchorSheet structure 720 PtgElfRadical structure 802
OfficeArtClientData structure 721 PtgElfRadicalLel structure 802
OfficeArtClientTextbox structure 722 PtgElfRadicalS structure 803
OLE stream 65 PtgElfRw structure 803
OleDbConn record 352 PtgElfRwV structure 804
OleObjectSize record 353 PtgEq structure 804
Palette record 353 PtgErr structure 804
1101 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
PtgExp structure 804 Rgce structure 823
PtgExtraArray structure 805 RgceArea structure 826
PtgExtraElf structure 805 RgceAreaRel structure 827
PtgExtraMem structure 806 RgceElfLoc structure 827
PtgFunc structure 806 RgceElfLocExtra structure 828
PtgFuncVar structure 806 RgceLoc structure 828
PtgGe structure 807 RgceLoc8 structure 828
PtgGt structure 807 RgceLocRel structure 828
PtgInt structure 807 RichTextStream record 374
PtgIsect structure 808 RichTextStreamChecksumData structure 839
PtgLe structure 808 RichTextStreamChecksumFontInformation
PtgLt structure 808 structure 841
PtgMemArea structure 808
PtgMemErr structure 809 RichTextStreamChecksumFontInformationArrayI
PtgMemFunc structure 809 tem structure 843
PtgMemNoMem structure 810 RightMargin record 376
PtgMissArg structure 810 RK record 376
PtgMul structure 810 RkNumber structure 843
PtgName structure 811 RkRec structure 844
PtgNameX structure 811 Row record 377
PtgNe structure 812 RPHSSub structure 844
PtgNum structure 812 RRAutoFmt record 378
PtgParen structure 812 RRD structure 845
PtgPercent structure 813 RRDChgCell record 379
PtgPower structure 813 RRDConflict record 383
PtgRange structure 813 RRDDefName record 384
PtgRef structure 813 RRDDefNameFlags structure 845
PtgRef3d structure 814 RRDHead record 386
PtgRefErr structure 814 RRDInfo record 388
PtgRefErr3d structure 815 RRDInsDel record 389
PtgRefN structure 815 RRDInsDelBegin record 390
PtgStr structure 815 RRDInsDelEnd record 390
PtgSub structure 816 RRDMove record 390
PtgSxName structure 816 RRDMoveBegin record 391
PtgTbl structure 816 RRDMoveEnd record 391
PtgUminus structure 817 RRDRenSheet record 391
PtgUnion structure 817 RRDRstEtxp record 392
PtgUplus structure 817 RRDTQSIF record 393
Qsi record 363 RRDUserView record 394
Qsif record 366 RRFormat record 395
Qsir record 367 RRInsertSh record 395
QsiSXTag record 369 RRLoc structure 847
Radar record 371 RRSort record 396
RadarArea record 371 RRTabId record 397
ReadingOrder structure 835 RTDEItem structure 847
RealTimeData record 372 RTDOper structure 847
RecalcId record 373 RTDOperStr structure 848
RecipName record 373 Run structure 848
Ref structure 836 Rw structure 848
Ref8 structure 836 Rw12 structure 849
Ref8U structure 837 RwLongU structure 849
Ref8U2007 structure 837 RwU structure 849
RefreshAll record 374 Rwx structure 849
RefU structure 838 SBaseRef record 397
RevExtern structure 818 Scatter record 398
revision stream 65 SCENARIO record 399
RevisionType structure 838 ScenarioProtect record 400
RevItab structure 818 ScenMan record 400
RevLblName structure 819 Scl record 401
RevName structure 820 Script structure 850
RevNamePly structure 821 SD_SetSortOrder structure 850
RevNameTabid structure 821 SDContainer structure 850
RevSheetName structure 821 SecurityDescriptor structure 851
RFX structure 839 Selection record 401
RgbExtra structure 822 SerAr structure 829
1102 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SerAuxErrBar record 402 SXAddl_SXCCacheField_SXDPropName record 439
SerAuxTrend record 403 SXAddl_SXCCacheField_SXDSxrmitmCount record
SerBool structure 829 439
SerErr structure 830 SXAddl_SXCCacheItem_SXDEnd record 440
SerFmt record 404 SXAddl_SXCCacheItem_SXDId record 440
Series record 405 SXAddl_SXCCacheItem_SXDItmMpMapCount
SeriesList record 406 record 440
SeriesText record 406 SXAddl_SXCCacheItem_SXDItmMpropMap record
SerNil structure 830 441
SerNum structure 830 SXAddl_SXCCacheItem_SXDSxrmitmDisp record
SerParent record 406 441
SerStr structure 831 SXAddl_SXCField_SXDEnd record 442
SerToCrt record 407 SXAddl_SXCField_SXDId record 442
Setup record 407 SXAddl_SXCField_SXDVer10Info record 442
ShapePropsStream record 412 SXAddl_SXCField12_SXDAutoshow record 443
ShapePropsStreamChecksumData structure 851 SXAddl_SXCField12_SXDEnd record 443
SharedFeatureType structure 852 SXAddl_SXCField12_SXDId record 444
SharedParsedFormula structure 831 SXAddl_SXCField12_SXDISXTH record 444
SheetExt record 413 SXAddl_SXCField12_SXDMemberCaption record
SheetExtOptional structure 853 445
ShortDTR structure 854 SXAddl_SXCField12_SXDVer12Info record 445
ShortXLUnicodeString structure 854 SXAddl_SXCField12_SXDVerUpdInv record 446
ShrFmla record 414 SXAddl_SXCGroup_SXDEnd record 446
ShtProps record 414 SXAddl_SXCGroup_SXDGrpInfo record 447
signatures stream 66 SXAddl_SXCGroup_SXDId record 448
SIIndex record 415 SXAddl_SXCGroup_SXDMember record 448
SLCO8 structure 855 SXAddl_SXCGrpLevel_SXDEnd record 449
Sort record 416 SXAddl_SXCGrpLevel_SXDGrpLevelInfo record 449
SortCond12 structure 855 SXAddl_SXCGrpLevel_SXDId record 450
SortData record 417 SXAddl_SXCHierarchy_SXDDisplayFolder record
SortItem structure 856 450
SourceType structure 857 SXAddl_SXCHierarchy_SXDEnd record 451
SQElfFlags structure 857 SXAddl_SXCHierarchy_SXDFilterMember record
SqRef structure 857 451
SqRefU structure 858 SXAddl_SXCHierarchy_SXDFilterMember12 record
SST record 419 452
StartBlock record 420 SXAddl_SXCHierarchy_SXDIconSet record 453
StartObject record 425 SXAddl_SXCHierarchy_SXDId record 453
String record 426 SXAddl_SXCHierarchy_SXDInfo12 record 454
structure 694 SXAddl_SXCHierarchy_SXDKPIGoal record 455
Stxp structure 858 SXAddl_SXCHierarchy_SXDKPIStatus record 455
Style record 426 SXAddl_SXCHierarchy_SXDKPITime record 455
StyleExt record 427 SXAddl_SXCHierarchy_SXDKPITrend record 456
StyleXF structure 859 SXAddl_SXCHierarchy_SXDKPIValue record 456
summary information stream 66 SXAddl_SXCHierarchy_SXDKPIWeight record 457
SupBook record 428 SXAddl_SXCHierarchy_SXDMeasureGrp record 457
Surf record 430 SXAddl_SXCHierarchy_SXDParentKPI record 458
SXAddl record 431 SXAddl_SXCHierarchy_SXDProperty record 458
SXAddl_SXCAutoSort_SXDEnd record 432 SXAddl_SXCHierarchy_SXDSXSetParentUnique
SXAddl_SXCAutoSort_SXDId record 432 record 460
SXAddl_SXCCache_SXDEnd record 433 SXAddl_SXCHierarchy_SXDUserCaption record 460
SXAddl_SXCCache_SXDId record 433 SXAddl_SXCHierarchy_SXDVerUpdInv record 460
SXAddl_SXCCache_SXDInfo12 record 433 SXAddl_SXCQsi_SXDEnd record 461
SXAddl_SXCCache_SXDInvRefreshReal record 434 SXAddl_SXCQsi_SXDId record 461
SXAddl_SXCCache_SXDVer10Info record 434 SXAddl_SXCQuery_SXDEnd record 461
SXAddl_SXCCache_SXDVerSXMacro record 435 SXAddl_SXCQuery_SXDReconnCond record 462
SXAddl_SXCCache_SXDVerUpdInv record 436 SXAddl_SXCQuery_SXDSrcConnFile record 463
SXAddl_SXCCacheField_SXDCaption record 436 SXAddl_SXCQuery_SXDSrcDataFile record 463
SXAddl_SXCCacheField_SXDEnd record 436 SXAddl_SXCQuery_SXDXMLSource record 463
SXAddl_SXCCacheField_SXDId record 437 SXAddl_SXCSXCondFmt_SXDEnd record 464
SXAddl_SXCCacheField_SXDIfdbMempropMap SXAddl_SXCSXCondFmt_SXDSXCondFmt record
record 437 464
SXAddl_SXCCacheField_SXDIfdbMpMapCount SXAddl_SXCSXCondFmts_SXDEnd record 465
record 438 SXAddl_SXCSXCondFmts_SXDId record 466
SXAddl_SXCCacheField_SXDProperty record 438 SXAddl_SXCSXDH_SXDEnd record 466
1103 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXAddl_SXCSXDH_SXDId record 467 SxInt record 506
SXAddl_SXCSXDH_SXDSxdh record 467 SxIsxoper record 507
SXAddl_SXCSXfilt_SXDEnd record 468 SxItm record 507
SXAddl_SXCSXfilt_SXDId record 469 SxIvd record 508
SXAddl_SXCSXfilt_SXDSXfilt record 469 SxIvdCol structure 867
SXAddl_SXCSXfilt_SXDSXItm record 470 SxIvdRw structure 867
SXAddl_SXCSXFilter12_SXDCaption record 471 SXLI record 509
SXAddl_SXCSXFilter12_SXDEnd record 472 SXLIItem structure 867
SXAddl_SXCSXFilter12_SXDId record 472 SxName record 509
SXAddl_SXCSXFilter12_SXDSXFilter record 472 SxNil record 510
SXAddl_SXCSXFilter12_SXDSXFilterDesc record SXNum record 510
474 SXPair record 510
SXAddl_SXCSXFilter12_SXDSXFilterValue1 record SXPI record 511
474 SXPI_Item structure 870
SXAddl_SXCSXFilter12_SXDSXFilterValue2 record SXPIEx record 512
474 SXRng record 512
SXAddl_SXCSXFilter12_SXDXlsFilter record 475 SxRule record 514
SXAddl_SXCSXFilter12_SXDXlsFilterValue1 record SxSelect record 516
475 SXStreamID record 518
SXAddl_SXCSXFilter12_SXDXlsFilterValue2 record SXString record 518
476 SXTbl record 518
SXAddl_SXCSXFilters12_SXDEnd record 476 SxTbpg record 519
SXAddl_SXCSXFilters12_SXDId record 477 SXTBRGIITM record 520
SXAddl_SXCSXMg_SXDEnd record 477 SXTH record 520
SXAddl_SXCSXMg_SXDId record 477 Sxvd record 523
SXAddl_SXCSXMg_SXDUserCaption record 478 SXVDEx record 527
SXAddl_SXCSXMgs_SXDEnd record 478 SXVDEx_Opt structure 870
SXAddl_SXCSXMgs_SXDId record 478 SXVDTEx record 530
SXAddl_SXCSXMgs_SXDMGrpSXDHMap record 479 SXVI record 531
SXAddl_SXCSXrule_SXDEnd record 480 SxView record 533
SXAddl_SXCSXrule_SXDId record 480 SxView9Save structure 871
SXAddl_SXCSXrule_SXDSXrule record 480 SxViewEx record 535
SXAddl_SXCView_SXDCalcMember record 483 SxViewEx9 record 536
SXAddl_SXCView_SXDCalcMemString record 485 SxViewLink record 537
SXAddl_SXCView_SXDCompactColHdr record 485 SXVIFlags structure 871
SXAddl_SXCView_SXDCompactRwHdr record 486 SXVS record 538
SXAddl_SXCView_SXDEnd record 486 Sync record 538
SXAddl_SXCView_SXDId record 487 TabId structure 872
SXAddl_SXCView_SXDSXPIIvmb record 487 TabIndex structure 872
SXAddl_SXCView_SXDTableStyleClient record 488 Table record 538
SXAddl_SXCView_SXDVer10Info record 488 TableFeatureType structure 872
SXAddl_SXCView_SXDVer12Info record 490 TableStyle record 540
SXAddl_SXCView_SXDVerUpdInv record 492 TableStyleElement record 541
SxAddl_SXDEnd structure 861 TableStyles record 544
SxAddl_SXDVerUpdInv structure 861 Tag_Fn_MDX structure 876
SxAddl_SXString structure 861 TBC XCB structure 921
SXAddlHdr structure 862 TBCCmd XCB structure 922
SXAxis structure 862 Template record 545
SxBool record 493 Text record 545
SXDB record 493 TextPropsStream record 550
SXDBB record 494 TextPropsStreamChecksumData structure 877
SXDBEx record 494 Theme record 552
SXDI record 495 Tick record 552
SXDtr record 497 Top10FT structure 879
SxDXF record 497 TopMargin record 555
SxErr record 498 Ts structure 879
SXEx record 498 TxO record 556
SXEZDoper structure 862 TxOLastRun structure 879
SXFDB record 501 TxORuns structure 880
SXFDBType record 504 TxtQry record 558
SxFilt record 504 TxtWf structure 880
SxFmla record 505 Uncalced record 560
SxFormat record 506 Underline structure 881
SxFormula record 506 Units record 560
SxFT structure 863 user names stream 67
1104 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
UserBView record 560 XmlTkFormatCodeFrt structure 906
UserSViewBegin record 564 XmlTkHeader structure 906
UserSViewBegin_Chart record 567 XmlTkHeightPercent structure 906
UserSViewEnd record 569 XmlTkLogBaseFrt structure 907
UsesELFs record 569 XmlTkMajorUnitFrt structure 907
UsrChk record 569 XmlTkMajorUnitTypeFrt structure 907
UsrExcl record 570 XmlTkMaxFrt structure 908
UsrInfo record 571 XmlTkMinFrt structure 908
ValueRange record 571 XmlTkMinorUnitFrt structure 909
VBA storage 67 XmlTkMinorUnitTypeFrt structure 909
VCenter record 574 XmlTkNoMultiLvlLbl structure 910
VertAlign structure 881 XmlTkOverlay structure 910
VertBrk structure 881 XmlTkPerspectiveFrt structure 911
VerticalPageBreaks record 574 XmlTkPieComboFrom12Frt structure 911
viewer content stream 67 XmlTkRAngAxOffFrt structure 911
VirtualPath structure 881 XmlTkRotXFrt structure 912
WebPub record 574 XmlTkRotYFrt structure 912
WebPubString structure 883 XmlTkShowDLblsOverMax structure 912
Window1 record 577 XmlTkSpb structure 913
Window2 record 578 XmlTkStart structure 913
WinProtect record 580 XmlTkStartSurface structure 913
WOpt record 581 XmlTkString structure 914
workbook stream 67 XmlTkStyle structure 914
WriteAccess record 582 XmlTkSymbolFrt structure 914
WriteProtect record 583 XmlTkThemeOverride structure 915
WsBool record 583 XmlTkTickLabelPositionFrt structure 915
XColorType structure 884 XmlTkTickLabelSkipFrt structure 916
XCT record 584 XmlTkTickMarkSkipFrt structure 916
XF record 584 XmlTkToken structure 916
XFCRC record 585 XmlTkTpb structure 917
XFExt record 585 Xnum structure 917
XFExtGradient structure 884 XORObfuscation structure 917
XFExtNoFRT structure 885 XTI structure 917
XFIndex structure 885 XtiIndexstructure 832
XFProp structure 887 YMult record 586
XFPropBorder structure 889 Differential formatting (DXFs) 158
XFPropColor structure 889 Dimensions 273
XFPropGradient structure 890 Display tokens 82
XFPropGradientStop structure 891 DJoin 633
XFProps structure 891 DocRoute 274
XFPropTextRotation structure 892 Document summary information stream 59
XLNameUnicodeString structure 892 DropBar 276
XlsFilter_Criteria structure 893 DropDownObjIds 277
XlsFilter_Top10 structure 894 DRw 633
XLUnicodeRichExtendedString structure 895 DRwByteU 633
XLUnicodeString structure 896 DSF 277
XLUnicodeStringMin2 structure 897 Duce 633
XLUnicodeStringNoCch structure 897 DuceRadical 634
XLUnicodeStringSegmented structure 897 DuceStacked 635
XLUnicodeStringSegmentedRTD structure 898 Ducr 635
XLUnicodeStringSegmentedSXAddl structure 898 DucrConditionalLbl 636
XML signatures storage 75 DucrConditionalNoLbl 637
XML stream 75 Dv 277
XmlTkBackWallThicknessFrt structure 899 DVal 280
XmlTkBaseTimeUnitFrt structure 899 DVParsedFormula 755
XmlTkBlob structure 900 DwQsiFuture 637
XmlTkBool structure 900 DXF 281
XmlTkChain structure 901 DXFALC 638
XmlTkColorMappingOverride structure 903 DXFBdr 639
XmlTkDispBlanksAsFrt structure 903 DXFFntD 640
XmlTkDouble structure 904 DXFId 641
XmlTkDWord structure 904 DXFN 641
XmlTkEnd structure 905 DXFN12 644
XmlTkEndSurface structure 905 DXFN12List 645
XmlTkFloorThicknessFrt structure 905 DXFN12NoCB 645
1105 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
DXFNum 645 formatting: Font 2 983
DXFNumIFmt 646 formatting: Format 984
DXFNumUsr 646 formatting: Number 1 993
DXFPat 646 formatting: Number 2 994
DXFProt 647 formatting: Number 3 995
DXFs (differential formatting) 158 formatting: XF 1 985
DxGCol 282 formatting: XF 2 987
formatting: XF 3 989
E formatting: XF 4 991
Pie Chart Sheet 973
Embedding storage 59 pie chart sheet: AxesUsed 974
Encryption (password to open) 164 pie chart sheet: AxisParent 975
Encryption stream 59 pie chart sheet: BRAI 980
End 282 pie chart sheet: Chart 973
EndBlock 282 pie chart sheet: ChartFormat 975
EndObject 284 pie chart sheet: Legend 976
EnhancedProtection 647 pie chart sheet: Pie 975
EntExU2 285 pie chart sheet: Pos 977
EOF 285 pie chart sheet: PrintSize 973
Error bar 100 pie chart sheet: ShtProps 974
Examples 924 pie chart sheet: Text 978
Column Chart Object 955 pie chart sheet: Window2 980
column chart object: AreaFormat 958 PivotTable 1030
column chart object: AxesUsed 968 PivotTable: DConRef 1032
column chart object: Axis 969 PivotTable: EOF 1083
column chart object: AxisParent 969 PivotTable: QsiSXTag 1065
column chart object: Bar 972 PivotTable: SXAddl 1 1033
column chart object: BRAI 1 959 PivotTable: SXAddl 2 1034
column chart object: BRAI 2 961 PivotTable: SXAddl 3 1035
column chart object: BRAI 3 963 PivotTable: SxAddl 4 1067
column chart object: CatSerRange 969 PivotTable: SxAddl 5 1068
column chart object: Chart 956 PivotTable: SxAddl 6 1070
column chart object: ChartFormat 971 PivotTable: SXDB 1070
column chart object: DataFormat 965 PivotTable: SXDBB 1 1081
column chart object: DefaultText 966 PivotTable: SXDBB 2 1082
column chart object: FontX 968 PivotTable: SXDBEx 1072
column chart object: Frame 956 PivotTable: SXDI 1056
column chart object: LineFormat 957 PivotTable: SXDtr 1 1076
column chart object: Series 959 PivotTable: SXDtr 2 1076
column chart object: SeriesText 961 PivotTable: SXEx 1063
column chart object: SerToCrt 965 PivotTable: SXFDB 1 1072
column chart object: ShtProps 965 PivotTable: SXFDB 2 1075
column chart object: Text 966 PivotTable: SXFDB 3 1077
column chart object: Tick 970 PivotTable: SXFDB 4 1078
Conditional Formatting 924 PivotTable: SXFDB 5 1080
conditional formatting: CF 926 PivotTable: SxIvd 1055
conditional formatting: CondFmt 924 PivotTable: SXLI 1 1056
Defined Name 933 PivotTable: SXLI 2 1062
defined name: ExternSheet 935 PivotTable: SXNum 1 1079
defined name: Lbl 933 PivotTable: SXNum 2 1081
defined name: SupBook 936 PivotTable: SXNum 3 1082
External References 948 PivotTable: SXPI 1055
external references: CRN 953 PivotTable: SXStreamID 1031
external references: ExternSheet 954 PivotTable: SXString 1 1074
external references: Formula 949 PivotTable: SXString 2 1074
external references: String 951 PivotTable: SXString 3 1074
external references: SupBook 1 952 PivotTable: Sxvd 1 1039
external references: SupBook 2 954 PivotTable: Sxvd 2 1044
external references: XCT 952 PivotTable: Sxvd 3 1048
Filters 946 PivotTable: Sxvd 4 1049
filters: AutoFilter 947 PivotTable: Sxvd 5 1052
filters: AutoFilterInfo 947 PivotTable: SXVDEx 1 1043
filters: FilterMode 946 PivotTable: SXVDEx 2 1047
Formatting 981 PivotTable: SXVDEx 3 1051
formatting: Font 1 982 PivotTable: SXVDEx 4 1053
1106 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
PivotTable: SXVI 1 1040 web connections 163
PivotTable: SXVI 2 1041 External defined name 161
PivotTable: SXVI 3 1041 External reference consumers 160
PivotTable: SXVI 4 1042 External references 160
PivotTable: SXVI 5 1046 DDE data item 161
PivotTable: SXVI 6 1046 DDE data source 161
PivotTable: SXVI 7 1047 external cell cache 161
PivotTable: SxView 1035 external defined name 161
PivotTable: SXViewEx9 1067 external reference consumers 160
PivotTable: SXVS 1031 external workbook 161
Table 936 OLE data item 161
table: Feathdr11 936 OLE data source 161
table: Feature11 937 supporting link 160
Workbook 995 External References example 948
workbook: BOF 1 996 External references: CRN example 953
workbook: BookBool 1000 External references: ExternSheet example 954
workbook: BookExt 1009 External references: Formula example 949
workbook: BoundSheet8 1 1006 External references: String example 951
workbook: BoundSheet8 2 1006 External references: SupBook 1 example 952
workbook: BoundSheet8 3 1007 External references: SupBook 2 example 954
workbook: BuiltInFnGroupCount 998 External references: XCT example 952
workbook: CalcPrecision 1000 External workbook 161
workbook: Country 1007 ExternDdeLinkNoOper 648
workbook: Date1904 1000 ExternDocName 648
workbook: DBCell 1026 ExternName 285
workbook: DefaultRowHeight 1013 ExternOleDdeLink 649
workbook: DefColWidth 1016 ExternSheet 287
workbook: Dimensions 1016 ExtNameParsedFormula 756
workbook: EOF 1 1011 ExtProp 649
workbook: EOF 2 (section 3.9.22 1011, section ExtPtgArea3D 757
3.9.41 1030) ExtPtgAreaErr3D 757
workbook: ExtSST 1008 ExtPtgErr 757
workbook: Font 1001 ExtPtgRef3D 758
workbook: Format 1002 ExtPtgRefErr3D 758
workbook: Formula 1023 ExtRst 650
workbook: HideObj 1000 ExtSheetPair 758
workbook: Index 1012 ExtSST 288
workbook: LabelSst 1 1020 ExtString 288
workbook: LabelSst 2 1022
workbook: PhoneticInfo 1029 F
workbook: RecalcId 1008
workbook: RK 1021 FactoidData 651
workbook: Row 1 1017 Fbi 289
workbook: Row 2 1018 Fbi2 290
workbook: Row 3 1019 Feat 291
workbook: Row 4 1019 Feat11CellStruct 651
workbook: RRTabId 997 Feat11FdaAutoFilter 651
workbook: Selection 1028 Feat11FieldDataItem 652
workbook: Setup 1014 Feat11Fmla 659
workbook: SST 1008 Feat11RgInvalidCells 659
workbook: Style 1005 Feat11RgSharepointIdChange 659
workbook: Window1 998 Feat11RgSharepointIdDel 660
workbook: Window2 1026 Feat11TotalFmla 660
workbook: WsBool 1013 Feat11WSSListInfo 660
workbook: XF 1003 Feat11XMap 663
Excel9File 285 Feat11XMapEntry 663
External cell cache 161 Feat11XMapEntry2 664
External connections 162 FeatFormulaErr2 664
ADO recordset connections 163 FeatHdr 292
connection files 162 FeatHdr11 293
connection name 162 FeatProtection 664
DAO recordset connections 163 FeatSmartTag 665
ODBC connections 163 Feature11 293
OLE DB connections 162 Feature12 295
text import connections 163 FFErrorCheck 666
1107 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Fields - vendor-extensible 55 Formatting: XF 2 example 987
File storage Formatting: XF 3 example 989
data spaces 59 Formatting: XF 4 example 991
embedding 59 Formula 309
link 59 Formula elements 82
Office data store 64 Formulas 80
pivot cache 65 control tokens 82
VBA 67 display tokens 82
XML signatures 75 Formula elements 82
File streams Mem tokens 82
component object 58 operand tokens 81
control 59 operator tokens 81
document summary information 59 FormulaValue 678
encryption 59 Frame 310
list data 60 FrtFlags 679
Office toolbars 64 FrtFontList 311
OLE 65 FrtHeader 680
protected content 65 FrtHeaderOld 680
revision 65 FrtRefHeader 680
signatures 66 FrtRefHeaderNoGrbit 681
summary information 66 FrtRefHeaderU 681
user names 67 FrtWrapper 311
viewer content 67 Ftab 759
workbook 67 FtCbls 682
XML 75 FtCblsData 682
File structure 56 FtCf 683
collection of records 57 FtCmo 683
compound file 56 FtEdoData 686
future record 57 FtGboData 687
record 56 FtGmo 687
storages 58 FtLbsData 688
stream 56 FtMacro 690
streams 58 FtNts 691
substream 56 FtPictFmla 691
FileLock 295 FtPioGrbit 692
FilePass 296 FtRbo 694
FileSharing 297 FtSbs 695
FillPattern 666 FullColorExt 696
FillStylePropertiesForShapePropsStreamChecksum Future record 57
667 chart 58
FilterMode 297 PivotTable 58
Filters example 946
Filters: AutoFilter example 947 G
Filters: AutoFilterInfo example 947
Filters: FilterMode example 946 GelFrame 312
FnGroupName 297 Glossary 28
FnGrp12 297 GradStop 696
Font 298 GridSet 314
FontIndex 677 GUIDTypeLib 314
FontInfo 677 Guts 314
FontScheme 678
FontX 300 H
Footer 301
ForceFullCalculation 301 HCenter 315
Format 302 Header 315
Format conflicts 159 HeaderFooter 319
FormatRun 678 HFPicture 320
Formatting example 981 HiddenMemberSet 697
Formatting: Font 1 example 982 HideObj 322
Formatting: Font 2 example 983 HideObjEnum 697
Formatting: Format example 984 HLink 322
Formatting: Number 1 example 993 HLinkTooltip 322
Formatting: Number 2 example 994 HorizAlign 698
Formatting: Number 3 example 995 HorizontalPageBreaks 323
Formatting: XF 1 example 985 HorzBrk 698
1108 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
MDX metadata 105
I MDXKPI 338
MDXProp 339
Icv 698 MDXSet 339
IcvChart 702 MDXStr 340
IcvFont 702 MDXStrIndex 713
IcvXF 702 MDXTuple 341
IFmt 702 Mem tokens 82
IFmtRecord 323 MergeCells 341
Ilel 786 Metadata 103
Implementer - security considerations 1084 cell metadata 104
Implementer – security considerations 1084 MDX metadata 105
Index 323 Metadata block 105
Informative references 52 metadata types 104
Insertion/deletion of rows/columns revision 167 value metadata 104
InterfaceEnd 324 Metadata block 105
InterfaceHdr 324 Metadata types 104
InteriorColorPropertiesForShapePropsStreamChecksu Mms 342
m 703 MOper 713
Intl 324 Move cells revision 168
Introduction 28 MsoDrawing 342
ISSTInf 704 MsoDrawingGroup 342
IXFCell 704 MsoDrawingSelection 343
MTRSettings 343
K MulBlank 344
MulRk 344
KPIProp 704
KPISets 705 N
L NameCmt 345
NameFnGrp12 346
Label 325 NameParsedFormula 787
LabelSst 325 NamePublish 347
Lbl 325 NilChartNum 714
LbsDropData 705 Normative references 51
LeftMargin 328 Note 347
Legend (section 2.2.3.8 91, section 2.4.152 328) NoteRR 714
LegendException 329 NoteSh 715
Lel 330 Number 348
LEMMode 706
Line 330 O
LineFormat 331
LinePropertiesForShapePropsStreamChecksum 707 Obj 348
Link storage 59 ObjectLink 351
List data stream 60 ObjectParsedFormula 788
List12 332 ObjFmla (section 2.5.187 716, section 2.5.188 717)
List12BlockLevel 708 ObjLinkFmla 717
List12DisplayName 710 ObjProtect 351
List12TableStyleClientInfo 711 ObNoMacros 352
ListParsedArrayFormula 787 ObProj 352
ListParsedFormula 787 ODBC connections 163
Localization 54 ODBCType 718
LongRGB 711 Office data store storage 64
LongRGBA 712 Office toolbars stream 64
LPr 333 OfficeArtClientAnchorChart 718
LPWideString 712 OfficeArtClientAnchorHF 719
LRng 334 OfficeArtClientAnchorSheet 720
OfficeArtClientData 721
M OfficeArtClientTextbox 722
OLE data item 161
MarkerFormat 334 OLE data source 161
MDB 336 OLE DB connections 162
MDir 712 OLE stream 65
MDTInfo 336 OleDbConn 352
MDTInfoIndex 713 OleObjectSize 353
1109 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Operand tokens 81 PtgElfColV 801
Operator tokens 81 PtgElfLel 801
Organization of this documentation 53 PtgElfRadical 802
Overview PtgElfRadicalLel 802
byte ordering 53 PtgElfRadicalS 803
organization of this documentation 53 PtgElfRw 803
Overview (synopsis) 53 PtgElfRwV 804
PtgEq 804
P PtgErr 804
PtgExp 804
Palette 353 PtgExtraArray 805
Pane 353 PtgExtraElf 805
PaneType 722 PtgExtraMem 806
ParameterParsedFormula 788 PtgFunc 806
ParamQry 354 PtgFuncVar 806
PARAMQRY_Fixed 723 PtgGe 807
Parsed expressions PtgGt 807
ArrayParsedFormula 724 PtgInt 807
BErr 724 PtgIsect 808
CellParsedFormula 725 PtgLe 808
Cetab 725 PtgLt 808
CFParsedFormula 754 PtgMemArea 808
CFParsedFormulaNoCCE 754 PtgMemErr 809
CFVOParsedFormula 754 PtgMemFunc 809
ChartParsedFormula 755 PtgMemNoMem 810
DVParsedFormula 755 PtgMissArg 810
ExtNameParsedFormula 756 PtgMul 810
ExtPtgArea3D 757 PtgName 811
ExtPtgAreaErr3D 757 PtgNameX 811
ExtPtgErr 757 PtgNe 812
ExtPtgRef3D 758 PtgNum 812
ExtPtgRefErr3D 758 PtgParen 812
ExtSheetPair structure 758 PtgPercent 813
Ftab 759 PtgPower 813
Ilel 786 PtgRange 813
ListParsedArrayFormula 787 PtgRef 813
ListParsedFormula 787 PtgRef3d 814
NameParsedFormula 787 PtgRefErr 814
ObjectParsedFormula 788 PtgRefErr3d 815
ParameterParsedFormula 788 PtgRefN 815
PivotParsedFormula 789 PtgStr 815
Ptg 789 PtgSub 816
PtgAdd 792 PtgSxName 816
PtgArea 792 PtgTbl 816
PtgArea3d 793 PtgUminus 817
PtgAreaErr 793 PtgUnion 817
PtgAreaErr3d (section 2.5.198.30 794, section PtgUplus 817
2.5.198.31 794) RevExtern 818
PtgArray 795 RevItab 818
PtgAttrBaxcel 795 RevLblName 819
PtgAttrChoose 796 RevName 820
PtgAttrGoto 796 RevNamePly 821
PtgAttrIf structure 797 RevNameTabid 821
PtgAttrSemi 797 RevSheetName 821
PtgAttrSpace 797 RgbExtra 822
PtgAttrSpaceSemi 798 Rgce 823
PtgAttrSpaceType 798 RgceArea 826
PtgAttrSum 799 RgceAreaRel 827
PtgBool 799 RgceElfLoc 827
PtgConcat 799 RgceElfLocExtra 828
PtgDataType 799 RgceLoc 828
PtgDiv 800 RgceLoc8 828
PtgElfCol 800 RgceLocRel 828
PtgElfColS 800 SerAr 829
PtgElfColSV 801 SerBool 829
1110 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SerErr 830 PivotTable: SXNum 1 example 1079
SerNil 830 PivotTable: SXNum 2 example 1081
SerNum 830 PivotTable: SXNum 3 example 1082
SerStr 831 PivotTable: SXPI example 1055
SharedParsedFormula 831 PivotTable: SXStreamID example 1031
XtiIndex 832 PivotTable: SXString 1 example 1074
Password 354 PivotTable: SXString 3 example 1074
password verifier algorithm 163 PivotTable: SXString21 example 1074
PBT 832 PivotTable: Sxvd 1 example 1039
PhoneticInfo 355 PivotTable: Sxvd 2 example 1044
PhRuns 833 PivotTable: Sxvd 3 example 1048
Phs 833 PivotTable: Sxvd 4 example 1049
PicF 355 PivotTable: Sxvd 5 example 1052
PictFmlaEmbedInfo 834 PivotTable: SXVDEx 1 example 1043
PictFmlaKey 834 PivotTable: SXVDEx 2 example 1047
Pie 356 PivotTable: SXVDEx 3 example 1051
Pie Chart Sheet example 973 PivotTable: SXVDEx 4 example 1053
Pie chart sheet: AxesUsed example 974 PivotTable: SXVI 1 example 1040
Pie chart sheet: AxisParent example 975 PivotTable: SXVI 2 example 1041
Pie chart sheet: BRAI example 980 PivotTable: SXVI 3 example 1041
Pie chart sheet: Chart example 973 PivotTable: SXVI 4 example 1042
Pie chart sheet: ChartFormat example 975 PivotTable: SXVI 5 example 1046
Pie chart sheet: Legend example 976 PivotTable: SXVI 6 example 1046
Pie chart sheet: Pie example 975 PivotTable: SXVI 7 example 1047
Pie chart sheet: Pos example 977 PivotTable: SxView example 1035
Pie chart sheet: PrintSize example 973 PivotTable: SXViewEx9 example 1067
Pie chart sheet: ShtProps example 974 PivotTable: SXVS example 1031
Pie chart sheet: Text example 978 PivotTables 106
Pie chart sheet: Window2 example 980 data functionality level 117
PieFormat 357 PivotCache 117
Pivot cache storage 65 PivotTable records 107
Pivot chart 86 PivotTable view 134
PivotCache 117 PlotArea 358
PivotChartBits 357 PlotGrowth 358
PivotCompProp 835 Pls 358
PivotParsedFormula 789 PLV 359
PivotTable 58 Pos 359
PivotTable example 1030 PositionMode 835
PivotTable records 107 PrintGrid 361
PivotTable view 134 PrintRowCol 361
PivotTable: DConRef example 1032 PrintSize 362
PivotTable: EOF example 1083 Product behavior 1085
PivotTable: QsiSXTag example 1065 Prot4Rev 362
PivotTable: SXAddl 1 example 1033 Prot4RevPass 363
PivotTable: SXAddl 2 example 1034 Protect 363
PivotTable: SXAddl 3 example 1035 Protected content stream 65
PivotTable: SxAddl 4 example 1067 Ptg 789
PivotTable: SxAddl 5 example 1068 PtgAdd 792
PivotTable: SxAddl 6 example 1070 PtgArea 792
PivotTable: SXDB example 1070 PtgArea3d 793
PivotTable: SXDBB 1 example 1081 PtgAreaErr 793
PivotTable: SXDBB 2 example 1082 PtgAreaErr3d (section 2.5.198.30 794, section
PivotTable: SXDBEx example 1072 2.5.198.31 794)
PivotTable: SXDI example 1056 PtgArray 795
PivotTable: SXDtr 1 example 1076 PtgAttrBaxcel 795
PivotTable: SXDtr 2 example 1076 PtgAttrChoose 796
PivotTable: SXEx example 1063 PtgAttrGoto 796
PivotTable: SXFDB 1 example 1072 PtgAttrIf 797
PivotTable: SXFDB 2 example 1075 PtgAttrSemi 797
PivotTable: SXFDB 3 example 1077 PtgAttrSpace 797
PivotTable: SXFDB 4 example 1078 PtgAttrSpaceSemi 798
PivotTable: SXFDB 5 example 1080 PtgAttrSpaceType 798
PivotTable: SxIvd example 1055 PtgAttrSum 799
PivotTable: SXLI 1 example 1056 PtgBool 799
PivotTable: SXLI 2 example 1062 PtgConcat 799
1111 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
PtgDataType 799 RealTimeData 372
PtgDiv 800 RecalcId 373
PtgElfCol 800 RecipName 373
PtgElfColS 800 Record 56
PtgElfColSV 801 Record enumeration 168
PtgElfColV 801 by name 169
PtgElfLel 801 by number 180
PtgElfRadical 802 Records
PtgElfRadicalLel 802 AlRuns 191
PtgElfRadicalS 803 Area 191
PtgElfRw 803 AreaFormat 192
PtgElfRwV 804 Array 197
PtgEq 804 AttachedLabel 198
PtgErr 804 AutoFilter 199
PtgExp 804 AutoFilter12 201
PtgExtraArray 805 AutoFilterInfo 204
PtgExtraElf 805 AxcExt 204
PtgExtraMem 806 AxesUsed 207
PtgFunc 806 Axis 207
PtgFuncVar 806 AxisLine 208
PtgGe 807 AxisParent 209
PtgGt 807 Backup 209
PtgInt 807 Bar 209
PtgIsect 808 BCUsrs 210
PtgLe 808 Begin 210
PtgLt 808 BigName 211
PtgMemArea 808 BkHim 211
PtgMemErr 809 Blank 212
PtgMemFunc 809 BOF 212
PtgMemNoMem 810 BookBool 214
PtgMissArg 810 BookExt 215
PtgMul 810 BoolErr 216
PtgName 811 BopPop 216
PtgNameX 811 BopPopCustom 218
PtgNe 812 BottomMargin 219
PtgNum 812 BoundSheet8 220
PtgParen 812 BRAI 221
PtgPercent 813 BuiltInFnGroupCount 222
PtgPower 813 CalcCount 223
PtgRange 813 CalcDelta 223
PtgRef 813 CalcIter 223
PtgRef3d 814 CalcMode 223
PtgRefErr 814 CalcPrecision 224
PtgRefErr3d 815 CalcRefMode 224
PtgRefN 815 CalcSaveRecalc 224
PtgStr 815 CatLab 225
PtgSub 816 CatSerRange 225
PtgSxName 816 CbUsr 227
PtgTbl 816 CellWatch 227
PtgUminus 817 CF 228
PtgUnion 817 CF12 229
PtgUplus 817 CFEx 232
Chart 233
Q Chart3d 234
Chart3DBarShape 236
Qsi 363 ChartFormat 236
Qsif 366 ChartFrtInfo 237
Qsir 367 ClrtClient 238
QsiSXTag 369 CodeName 239
CodePage 239
R ColInfo 240
Compat12 241
Radar 371 CompressPictures 241
RadarArea 371 CondFmt 242
ReadingOrder 835 CondFmt12 242
1112 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Continue 243 Font 298
Continue_SxaddlSxString 431 FontX 300
ContinueBigName 243 Footer 301
ContinueFrt 244 ForceFullCalculation 301
ContinueFrt11 244 Format 302
ContinueFrt12 245 Formula 309
Country 245 Frame 310
CrErr 247 FrtFontList 311
CRN 247 FrtWrapper 311
CrtLayout12 248 GelFrame 312
CrtLayout12A 250 GridSet 314
CrtLine 252 GUIDTypeLib 314
CrtLink 253 Guts 314
CrtMlFrt 253 HCenter 315
CrtMlFrtContinue 254 Header 315
CUsr 254 HeaderFooter 319
Dat 254 HFPicture 320
DataFormat 255 HideObj 322
DataLabExt 255 HLink 322
DataLabExtContents 256 HLinkTooltip 322
Date1904 257 HorizontalPageBreaks 323
DBCell 257 IFmtRecord 323
DbOrParamQry 258 Index 323
DbQuery 258 InterfaceEnd 324
DbQueryExt 260 InterfaceHdr 324
DCon 262 Intl 324
DConBin 264 Label 325
DConn 265 LabelSst 325
DConName 270 Lbl 325
DConRef 271 LeftMargin 328
DefaultRowHeight 272 Legend 328
DefaultText 272 LegendException 329
DefColWidth 273 Lel 330
Dimensions 273 Line 330
DocRoute 274 LineFormat 331
DropBar 276 List12 332
DropDownObjIds 277 LPr 333
DSF 277 LRng 334
Dv 277 MarkerFormat 334
DVal 280 MDB 336
DXF 281 MDTInfo 336
DxGCol 282 MDXKPI 338
End 282 MDXProp 339
EndBlock 282 MDXSet 339
EndObject 284 MDXStr 340
EntExU2 285 MDXTuple 341
EOF 285 MergeCells 341
Excel9File 285 Mms 342
ExternName 285 MsoDrawing 342
ExternSheet 287 MsoDrawingGroup 342
ExtSST 288 MsoDrawingSelection 343
ExtString 288 MTRSettings 343
Fbi 289 MulBlank 344
Fbi2 290 MulRk 344
Feat 291 NameCmt 345
FeatHdr 292 NameFnGrp12 346
FeatHdr11 293 NamePublish 347
Feature11 293 Note 347
Feature12 295 Number 348
FileLock 295 Obj 348
FilePass 296 ObjectLink 351
FileSharing 297 ObjProtect 351
FilterMode 297 ObNoMacros 352
FnGroupName 297 ObProj 352
FnGrp12 297 OleDbConn 352
1113 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
OleObjectSize 353 Series 405
Palette 353 SeriesList 406
Pane 353 SeriesText 406
ParamQry 354 SerParent 406
Password 354 SerToCrt 407
PhoneticInfo 355 Setup 407
PicF 355 ShapePropsStream 412
Pie 356 SheetExt 413
PieFormat 357 ShrFmla 414
PivotChartBits 357 ShtProps 414
PlotArea 358 SIIndex 415
PlotGrowth 358 Sort 416
Pls 358 SortData 417
PLV 359 SST 419
Pos 359 StartBlock 420
PrintGrid 361 StartObject 425
PrintRowCol 361 String 426
PrintSize 362 Style 426
Prot4Rev 362 StyleExt 427
Prot4RevPass 363 SupBook 428
Protect 363 Surf 430
Qsi 363 SXAddl 431
Qsif 366 SXAddl_SXCAutoSort_SXDEnd 432
Qsir 367 SXAddl_SXCAutoSort_SXDId 432
QsiSXTag 369 SXAddl_SXCCache_SXDEnd 433
Radar 371 SXAddl_SXCCache_SXDId 433
RadarArea 371 SXAddl_SXCCache_SXDInfo12 433
RealTimeData 372 SXAddl_SXCCache_SXDInvRefreshReal 434
RecalcId 373 SXAddl_SXCCache_SXDVer10Info 434
RecipName 373 SXAddl_SXCCache_SXDVerSXMacro 435
RefreshAll 374 SXAddl_SXCCache_SXDVerUpdInv 436
RichTextStream 374 SXAddl_SXCCacheField_SXDCaption 436
RightMargin 376 SXAddl_SXCCacheField_SXDEnd 436
RK 376 SXAddl_SXCCacheField_SXDId 437
Row 377 SXAddl_SXCCacheField_SXDIfdbMempropMap 437
RRAutoFmt 378 SXAddl_SXCCacheField_SXDIfdbMpMapCount 438
RRDChgCell 379 SXAddl_SXCCacheField_SXDProperty 438
RRDConflict 383 SXAddl_SXCCacheField_SXDPropName 439
RRDDefName 384 SXAddl_SXCCacheField_SXDSxrmitmCount 439
RRDHead 386 SXAddl_SXCCacheItem_SXDEnd 440
RRDInfo 388 SXAddl_SXCCacheItem_SXDId 440
RRDInsDel 389 SXAddl_SXCCacheItem_SXDItmMpMapCount 440
RRDInsDelBegin 390 SXAddl_SXCCacheItem_SXDItmMpropMap 441
RRDInsDelEnd 390 SXAddl_SXCCacheItem_SXDSxrmitmDisp 441
RRDMove 390 SXAddl_SXCField_SXDEnd 442
RRDMoveBegin 391 SXAddl_SXCField_SXDId 442
RRDMoveEnd 391 SXAddl_SXCField_SXDVer10Info 442
RRDRenSheet 391 SXAddl_SXCField12_SXDAutoshow 443
RRDRstEtxp 392 SXAddl_SXCField12_SXDEnd 443
RRDTQSIF 393 SXAddl_SXCField12_SXDId 444
RRDUserView 394 SXAddl_SXCField12_SXDISXTH 444
RRFormat 395 SXAddl_SXCField12_SXDMemberCaption 445
RRInsertSh 395 SXAddl_SXCField12_SXDVer12Info 445
RRSort 396 SXAddl_SXCField12_SXDVerUpdInv 446
RRTabId 397 SXAddl_SXCGroup_SXDEnd 446
SBaseRef 397 SXAddl_SXCGroup_SXDGrpInfo 447
Scatter 398 SXAddl_SXCGroup_SXDId 448
SCENARIO 399 SXAddl_SXCGroup_SXDMember 448
ScenarioProtect 400 SXAddl_SXCGrpLevel_SXDEnd 449
ScenMan 400 SXAddl_SXCGrpLevel_SXDGrpLevelInfo 449
Scl 401 SXAddl_SXCGrpLevel_SXDId 450
Selection 401 SXAddl_SXCHierarchy_SXDDisplayFolder 450
SerAuxErrBar 402 SXAddl_SXCHierarchy_SXDEnd 451
SerAuxTrend 403 SXAddl_SXCHierarchy_SXDFilterMember 451
SerFmt 404 SXAddl_SXCHierarchy_SXDFilterMember12 452
1114 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXAddl_SXCHierarchy_SXDIconSet 453 SxBool 493
SXAddl_SXCHierarchy_SXDId 453 SXDB 493
SXAddl_SXCHierarchy_SXDInfo12 454 SXDBB 494
SXAddl_SXCHierarchy_SXDKPIGoal 455 SXDBEx 494
SXAddl_SXCHierarchy_SXDKPIStatus 455 SXDI 495
SXAddl_SXCHierarchy_SXDKPITime 455 SXDtr 497
SXAddl_SXCHierarchy_SXDKPITrend 456 SxDXF 497
SXAddl_SXCHierarchy_SXDKPIValue 456 SxErr 498
SXAddl_SXCHierarchy_SXDKPIWeight 457 SXEx 498
SXAddl_SXCHierarchy_SXDMeasureGrp 457 SXFDB 501
SXAddl_SXCHierarchy_SXDParentKPI 458 SXFDBType 504
SXAddl_SXCHierarchy_SXDProperty 458 SxFilt 504
SXAddl_SXCHierarchy_SXDSXSetParentUnique 460 SxFmla 505
SXAddl_SXCHierarchy_SXDUserCaption 460 SxFormat 506
SXAddl_SXCHierarchy_SXDVerUpdInv 460 SxFormula 506
SXAddl_SXCQsi_SXDEnd 461 SxInt 506
SXAddl_SXCQsi_SXDId 461 SxIsxoper 507
SXAddl_SXCQuery_SXDEnd 461 SxItm 507
SXAddl_SXCQuery_SXDReconnCond 462 SxIvd 508
SXAddl_SXCQuery_SXDSrcConnFile 463 SXLI 509
SXAddl_SXCQuery_SXDSrcDataFile 463 SxName 509
SXAddl_SXCQuery_SXDXMLSource 463 SxNil 510
SXAddl_SXCSXCondFmt_SXDEnd 464 SXNum 510
SXAddl_SXCSXCondFmt_SXDSXCondFmt 464 SXPair 510
SXAddl_SXCSXCondFmts_SXDEnd 465 SXPI 511
SXAddl_SXCSXCondFmts_SXDId 466 SXPIEx 512
SXAddl_SXCSXDH_SXDEnd 466 SXRng 512
SXAddl_SXCSXDH_SXDId 467 SxRule 514
SXAddl_SXCSXDH_SXDSxdh 467 SxSelect 516
SXAddl_SXCSXfilt_SXDEnd 468 SXStreamID 518
SXAddl_SXCSXfilt_SXDId 469 SXString 518
SXAddl_SXCSXfilt_SXDSXfilt 469 SXTbl 518
SXAddl_SXCSXfilt_SXDSXItm 470 SxTbpg 519
SXAddl_SXCSXFilter12_SXDCaption 471 SXTBRGIITM 520
SXAddl_SXCSXFilter12_SXDEnd 472 SXTH 520
SXAddl_SXCSXFilter12_SXDId 472 Sxvd 523
SXAddl_SXCSXFilter12_SXDSXFilter 472 SXVDEx 527
SXAddl_SXCSXFilter12_SXDSXFilterDesc 474 SXVDTEx 530
SXAddl_SXCSXFilter12_SXDSXFilterValue1 474 SXVI 531
SXAddl_SXCSXFilter12_SXDSXFilterValue2 474 SxView 533
SXAddl_SXCSXFilter12_SXDXlsFilter 475 SxViewEx 535
SXAddl_SXCSXFilter12_SXDXlsFilterValue1 475 SxViewEx9 536
SXAddl_SXCSXFilter12_SXDXlsFilterValue2 476 SxViewLink 537
SXAddl_SXCSXFilters12_SXDEnd 476 SXVS 538
SXAddl_SXCSXFilters12_SXDId 477 Sync 538
SXAddl_SXCSXMg_SXDEnd 477 Table 538
SXAddl_SXCSXMg_SXDId 477 TableStyle 540
SXAddl_SXCSXMg_SXDUserCaption 478 TableStyleElement 541
SXAddl_SXCSXMgs_SXDEnd 478 TableStyles 544
SXAddl_SXCSXMgs_SXDId 478 Template 545
SXAddl_SXCSXMgs_SXDMGrpSXDHMap 479 Text 545
SXAddl_SXCSXrule_SXDEnd 480 TextPropsStream 550
SXAddl_SXCSXrule_SXDId 480 Theme 552
SXAddl_SXCSXrule_SXDSXrule 480 Tick 552
SXAddl_SXCView_SXDCalcMember 483 TopMargin 555
SXAddl_SXCView_SXDCalcMemString 485 TxO 556
SXAddl_SXCView_SXDCompactColHdr 485 TxtQry 558
SXAddl_SXCView_SXDCompactRwHdr 486 Uncalced 560
SXAddl_SXCView_SXDEnd 486 Units 560
SXAddl_SXCView_SXDId 487 UserBView 560
SXAddl_SXCView_SXDSXPIIvmb 487 UserSViewBegin 564
SXAddl_SXCView_SXDTableStyleClient 488 UserSViewBegin_Chart 567
SXAddl_SXCView_SXDVer10Info 488 UserSViewEnd 569
SXAddl_SXCView_SXDVer12Info 490 UsesELFs 569
SXAddl_SXCView_SXDVerUpdInv 492 UsrChk 569
1115 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
UsrExcl 570 RRDDefNameFlags 845
UsrInfo 571 RRDHead 386
ValueRange 571 RRDInfo 388
VCenter 574 RRDInsDel 389
VerticalPageBreaks 574 RRDInsDelBegin 390
WebPub 574 RRDInsDelEnd 390
Window1 577 RRDMove 390
Window2 578 RRDMoveBegin 391
WinProtect 580 RRDMoveEnd 391
WOpt 581 RRDRenSheet 391
WriteAccess 582 RRDRstEtxp 392
WriteProtect 583 RRDTQSIF 393
WsBool 583 RRDUserView 394
XCT 584 RRFormat 395
XF 584 RRInsertSh 395
XFCRC 585 RRLoc 847
XFExt 585 RRSort 396
YMult 586 RRTabId 397
Ref 836 RTDEItem 847
Ref8 836 RTDOper 847
Ref8U 837 RTDOperStr 848
Ref8U2007 837 Run 848
References 51 Rw 848
informative 52 Rw12 849
normative 51 RwLongU 849
RefreshAll 374 RwU 849
RefU 838 Rwx 849
Relationship to protocols and other structures 54
RevExtern 818 S
Revision logs 167
Revision records 167 SBaseRef 397
Revision stream 65 Scatter 398
RevisionType 838 SCENARIO 399
RevItab 818 ScenarioProtect 400
RevLblName 819 ScenMan 400
RevName 820 Scl 401
RevNamePly 821 Script 850
RevNameTabid 821 SD_SetSortOrder 850
RevSheetName 821 SDContainer 850
RFX 839 Security - implementer considerations 1084
RgbExtra 822 Security – implementer considerations 1084
Rgce 823 Security considerations
RgceArea 826 encryption (password to open) 164
RgceAreaRel 827 password verifier algorithm 163
RgceElfLoc 827 SecurityDescriptor 851
RgceElfLocExtra 828 Selection 401
RgceLoc 828 SerAr 829
RgceLoc8 828 SerAuxErrBar 402
RgceLocRel 828 SerAuxTrend 403
RichTextStream 374 SerBool 829
RichTextStreamChecksumData 839 SerErr 830
RichTextStreamChecksumFontInformation 841 SerFmt 404
RichTextStreamChecksumFontInformationArrayItem Series (section 2.2.3.9 93, section 2.4.252 405)
843 SeriesList 406
RightMargin 376 SeriesText 406
RK 376 SerNil 830
RkNumber 843 SerNum 830
RkRec 844 SerParent 406
Row 377 SerStr 831
RPHSSub 844 SerToCrt 407
RRAutoFmt 378 Setup 407
RRD 845 ShapePropsStream 412
RRDChgCell 379 ShapePropsStreamChecksumData 851
RRDConflict 383 Shared feature 168
RRDDefName 384 Shared workbooks 165
1116 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
change cells revision 168 CFExDefaultTemplateParams 604
insertion/deletion of rows/columns revision 167 CFExFilterParams 604
move cells revision 168 CFExNonCF12 605
revision logs 167 CFExTemplateParams 607
revision records 167 CFExTextTemplateParams 608
sort map 168 CFFilter 608
user log 167 CFFlag 609
SharedFeatureType 852 CFGradient 610
SharedParsedFormula 831 CFGradientInterpItem 610
SheetExt 413 CFGradientItem 611
SheetExtOptional 853 CFMStateItem 612
ShortDTR 854 CFMultistate 612
ShortXLUnicodeString 854 CFParsedFormula 754
ShrFmla 414 CFParsedFormulaNoCCE 754
ShtProps 414 CFrtId 613
Signatures stream 66 CFT 614
SIIndex 415 CFVO 615
SLCO8 855 CFVOParsedFormula 754
Sort 416 ChartNumNillable 616
sort map 168 ChartParsedFormula 755
SortCond12 855 Col 616
SortData 417 Col_NegativeOne 616
SortItem 856 Col12 617
SourceType 857 Col256U 617
SPRC 103 ColByte 617
SQElfFlags 857 ColByteU 618
SqRef 857 ColElfU 618
SqRefU 858 ColorICV 618
SST 419 ColorTheme 619
StartBlock 420 ColRelNegU 619
StartObject 425 ColRelU 620
Storages 58 ColSlco8U 620
Stream 56 ColU 620
Streams 58 Colx 621
document summary information 59 conceptual overview 79
String 426 CondDataValue 621
Structures CondFmtStructure 621
AddinUdf 587 ConnGrbitDbt 622
AF12CellIcon 587 ConnGrbitDbtAdo 622
AF12Criteria 588 ConnGrbitDbtOledb 623
AF12DateInfo 588 ConnGrbitDbtWeb 624
AFDOper 589 ControlInfo 625
AFDOperBoolErr 590 CrtLayout12Mode 625
AFDOperRk 591 DataFunctionalityLevel 626
AFDOperStr 591 DataSourceType 626
ArrayParsedFormula 724 DateAsNum 626
AutoFmt8 592 DateUnit 626
BErr 724 DCol 627
Bes 593 DColByteU 627
Bold 594 DConFile 627
BookExt_Conditional11 594 DConnConnectionOleDb 628
BookExt_Conditional12 594 DConnConnectionWeb 629
Boolean 595 DConnId 629
BorderStyle 595 DConnParamBinding 630
BuiltInStyle 596 DConnParamBindingValByte 630
CachedDiskHeader 596 DConnParamBindingValInt 630
Cch255 597 DConnParamBindingValString 630
Cell 597 DConnParamBindingValType 631
CellParsedFormula 725 DConnParameter 631
CellXF 597 DConnStringSequence 632
Cetab 725 DConnUnicodeStringSegmented 632
CFColor 601 DJoin 633
CFDatabar 601 DRw 633
CFExAveragesTemplateParams 603 DRwByteU 633
CFExDateTemplateParams 603 Duce 633
1117 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
DuceRadical 634 Ftab 759
DuceStacked 635 FtCbls 682
Ducr 635 FtCblsData 682
DucrConditionalLbl 636 FtCf 683
DucrConditionalNoLbl 637 FtCmo 683
DVParsedFormula 755 FtEdoData 686
DwQsiFuture 637 FtGboData 687
DXFALC 638 FtGmo 687
DXFBdr 639 FtLbsData 688
DXFFntD 640 FtMacro 690
DXFId 641 FtNts 691
DXFN 641 FtPictFmla 691
DXFN12 644 FtPioGrbit 692
DXFN12List 645 FtRbo 694
DXFN12NoCB 645 FtRboData 694
DXFNum 645 FtSbs 695
DXFNumIFmt 646 FullColorExt 696
DXFNumUsr 646 GradStop 696
DXFPat 646 HiddenMemberSet 697
DXFProt 647 HideObjEnum 697
EnhancedProtection 647 HorizAlign 698
ExternDdeLinkNoOper 648 HorzBrk 698
ExternDocName 648 Icv 698
ExternOleDdeLink 649 IcvChart 702
ExtNameParsedFormula 756 IcvFont 702
ExtProp 649 IcvXF 702
ExtPtgArea3D 757 IFmt 702
ExtPtgAreaErr3D 757 Ilel 786
ExtPtgErr 757
ExtPtgRef3D 758 InteriorColorPropertiesForShapePropsStreamChe
ExtPtgRefErr3D 758 cksum 703
ExtRst 650 ISSTInf 704
ExtSheetPair 758 IXFCell 704
FactoidData 651 KPIProp 704
Feat11CellStruct 651 KPISets 705
Feat11FdaAutoFilter 651 LbsDropData 705
Feat11FieldDataItem 652 LEMMode 706
Feat11Fmla 659 LinePropertiesForShapePropsStreamChecksum 707
Feat11RgInvalidCells 659 List12BlockLevel 708
Feat11RgSharepointIdChange 659 List12DisplayName 710
Feat11RgSharepointIdDel 660 List12TableStyleClientInfo 711
Feat11TotalFmla 660 ListParsedArrayFormula 787
Feat11WSSListInfo 660 ListParsedFormula 787
Feat11XMap 663 LongRGB 711
Feat11XMapEntry 663 LongRGBA 712
Feat11XMapEntry2 664 LPWideString 712
FeatFormulaErr2 664 MDir 712
FeatProtection 664 MDTInfoIndex 713
FeatSmartTag 665 MDXStrIndex 713
FFErrorCheck 666 MOper 713
file structure 56 NameParsedFormula 787
FillPattern 666 NilChartNum 714
FillStylePropertiesForShapePropsStreamChecksum NoteRR 714
667 NoteSh 715
FontIndex 677 ObjectParsedFormula 788
FontInfo 677 ObjFmla (section 2.5.187 716, section 2.5.188
FontScheme 678 717)
FormatRun 678 ObjLinkFmla 717
FormulaValue 678 ODBCType 718
FrtFlags 679 OfficeArtClientAnchorChart 718
FrtHeader 680 OfficeArtClientAnchorHF 719
FrtHeaderOld 680 OfficeArtClientAnchorSheet 720
FrtRefHeader 680 OfficeArtClientData 721
FrtRefHeaderNoGrbit 681 OfficeArtClientTextbox 722
FrtRefHeaderU 681 PaneType 722
1118 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
ParameterParsedFormula 788 PtgParen 812
PARAMQRY_Fixed 723 PtgPercent 813
PBT 832 PtgPower 813
PhRuns 833 PtgRange 813
Phs 833 PtgRef 813
PictFmlaEmbedInfo 834 PtgRef3d 814
PictFmlaKey 834 PtgRefErr 814
PivotCompProp 835 PtgRefErr3d 815
PivotParsedFormula 789 PtgRefN 815
PositionMode 835 PtgStr 815
Ptg 789 PtgSub 816
PtgAdd 792 PtgSxName 816
PtgArea 792 PtgTbl 816
PtgArea3d 793 PtgUminus 817
PtgAreaErr 793 PtgUnion 817
PtgAreaErr3d 794 PtgUplus 817
PtgAreaN 794 ReadingOrder 835
PtgArray 795 record enumeration 168
PtgAttrBaxcel 795 Ref 836
PtgAttrChoose 796 Ref8 836
PtgAttrGoto 796 Ref8U 837
PtgAttrIf 797 Ref8U2007 837
PtgAttrSemi 797 RefU 838
PtgAttrSpace 797 RevExtern 818
PtgAttrSpaceSemi 798 RevisionType 838
PtgAttrSpaceType 798 RevItab 818
PtgAttrSum 799 RevLblName 819
PtgBool 799 RevName 820
PtgConcat 799 RevNamePly 821
PtgDataType 799 RevNameTabid 821
PtgDiv 800 RevSheetName 821
PtgElfCol 800 RFX 839
PtgElfColS 800 RgbExtra 822
PtgElfColSV 801 Rgce 823
PtgElfColV 801 RgceArea 826
PtgElfLel 801 RgceAreaRel 827
PtgElfRadical 802 RgceElfLoc 827
PtgElfRadicalLel 802 RgceElfLocExtra 828
PtgElfRadicalS 803 RgceLoc 828
PtgElfRw 803 RgceLoc8 828
PtgElfRwV 804 RgceLocRel 828
PtgEq 804 RichTextStreamChecksumData 839
PtgErr 804 RichTextStreamChecksumFontInformation 841
PtgExp 804
PtgExtraArray 805 RichTextStreamChecksumFontInformationArrayI
PtgExtraElf 805 tem 843
PtgExtraMem 806 RkNumber 843
PtgFunc 806 RkRec 844
PtgFuncVar 806 RPHSSub 844
PtgGe 807 RRD 845
PtgGt 807 RRDDefNameFlags 845
PtgInt 807 RRLoc 847
PtgIsect 808 RTDEItem 847
PtgLe 808 RTDOper 847
PtgLt 808 RTDOperStr 848
PtgMemArea 808 Run 848
PtgMemErr 809 Rw 848
PtgMemFunc 809 Rw12 849
PtgMemNoMem 810 RwLongU 849
PtgMissArg 810 RwU 849
PtgMul 810 Rwx 849
PtgName 811 Script 850
PtgNameX 811 SD_SetSortOrder 850
PtgNe 812 SDContainer 850
PtgNum 812 SecurityDescriptor 851
1119 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SerAr 829 XLUnicodeString 896
SerBool 829 XLUnicodeStringMin2 897
SerErr 830 XLUnicodeStringNoCch 897
SerNil 830 XLUnicodeStringSegmented 897
SerNum 830 XLUnicodeStringSegmentedRTD 898
SerStr 831 XLUnicodeStringSegmentedSXAddl 898
ShapePropsStreamChecksumData 851 XmlTkBackWallThicknessFrt 899
SharedFeatureType 852 XmlTkBaseTimeUnitFrt 899
SharedParsedFormula 831 XmlTkBlob 900
SheetExtOptional 853 XmlTkBool 900
ShortDTR 854 XmlTkChain 901
ShortXLUnicodeString 854 XmlTkColorMappingOverride 903
SLCO8 855 XmlTkDispBlanksAsFrt 903
SortCond12 855 XmlTkDouble 904
SortItem 856 XmlTkDWord 904
SourceType 857 XmlTkEnd 905
SQElfFlags 857 XmlTkEndSurface 905
SqRef 857 XmlTkFloorThicknessFrt 905
SqRefU 858 XmlTkFormatCodeFrt 906
Stxp 858 XmlTkHeader 906
StyleXF 859 XmlTkHeightPercent 906
SxAddl_SXDEnd 861 XmlTkLogBaseFrt 907
SxAddl_SXDVerUpdInv 861 XmlTkMajorUnitFrt 907
SxAddl_SXString 861 XmlTkMajorUnitTypeFrt 907
SXAddlHdr 862 XmlTkMaxFrt 908
SXAxis 862 XmlTkMinFrt 908
SXEZDoper 862 XmlTkMinorUnitFrt 909
SxFT 863 XmlTkMinorUnitTypeFrt 909
SxIvdCol 867 XmlTkNoMultiLvlLbl 910
SxIvdRw 867 XmlTkOverlay 910
SXLIItem 867 XmlTkPerspectiveFrt 911
SXPI_Item 870 XmlTkPieComboFrom12Frt 911
SXVDEx_Opt 870 XmlTkRAngAxOffFrt 911
SxView9Save 871 XmlTkRotXFrt 912
SXVIFlags 871 XmlTkRotYFrt 912
TabId 872 XmlTkShowDLblsOverMax 912
TabIndex 872 XmlTkSpb 913
TableFeatureType 872 XmlTkStart 913
Tag_Fn_MDX 876 XmlTkStartSurface 913
TextPropsStreamChecksumData 877 XmlTkString 914
Top10FT 879 XmlTkStyle 914
Ts 879 XmlTkSymbolFrt 914
TxOLastRun 879 XmlTkThemeOverride 915
TxORuns 880 XmlTkTickLabelPositionFrt 915
TxtWf 880 XmlTkTickLabelSkipFrt 916
Underline 881 XmlTkTickMarkSkipFrt 916
VertAlign 881 XmlTkToken 916
VertBrk 881 XmlTkTpb 917
VirtualPath 881 Xnum 917
WebPubString 883 XORObfuscation 917
XColorType 884 XTI 917
XFExtGradient 884 XtiIndex 832
XFExtNoFRT 885 Stxp 858
XFIndex 885 Style 426
XFProp 887 StyleExt 427
XFPropBorder 889 Styles 157
XFPropColor 889 differential formatting (DXFs) 158
XFPropGradient 890 format conflicts 159
XFPropGradientStop 891 table styles 159
XFProps 891 XFs 157
XFPropTextRotation 892 StyleXF 859
XLNameUnicodeString 892 Substream 56
XlsFilter_Criteria 893 Summary information stream 66
XlsFilter_Top10 894 SupBook 428
XLUnicodeRichExtendedString 895 Supporting link 160
1120 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Surf 430 SXAddl_SXCQuery_SXDEnd 461
SXAddl 431 SXAddl_SXCQuery_SXDReconnCond 462
SxAddl records (section 2.4.273.29 443, section SXAddl_SXCQuery_SXDSrcConnFile 463
2.4.273.86 475) SXAddl_SXCQuery_SXDSrcDataFile 463
Continue_SxaddlSxString 431 SXAddl_SXCQuery_SXDXMLSource 463
SXAddl 431 SXAddl_SXCSXCondFmt_SXDEnd 464
SXAddl_SXCAutoSort_SXDEnd 432 SXAddl_SXCSXCondFmt_SXDSXCondFmt 464
SXAddl_SXCAutoSort_SXDId 432 SXAddl_SXCSXCondFmts_SXDEnd 465
SXAddl_SXCCache_SXDEnd 433 SXAddl_SXCSXCondFmts_SXDId 466
SXAddl_SXCCache_SXDId 433 SXAddl_SXCSXDH_SXDEnd 466
SXAddl_SXCCache_SXDInfo12 433 SXAddl_SXCSXDH_SXDId 467
SXAddl_SXCCache_SXDInvRefreshReal 434 SXAddl_SXCSXDH_SXDSxdh 467
SXAddl_SXCCache_SXDVer10Info 434 SXAddl_SXCSXfilt_SXDEnd 468
SXAddl_SXCCache_SXDVerSXMacro 435 SXAddl_SXCSXfilt_SXDId 469
SXAddl_SXCCache_SXDVerUpdInv 436 SXAddl_SXCSXfilt_SXDSXfilt 469
SXAddl_SXCCacheField_SXDCaption 436 SXAddl_SXCSXfilt_SXDSXItm 470
SXAddl_SXCCacheField_SXDEnd 436 SXAddl_SXCSXFilter12_SXDCaption 471
SXAddl_SXCCacheField_SXDId 437 SXAddl_SXCSXFilter12_SXDEnd 472
SXAddl_SXCCacheField_SXDIfdbMempropMap 437 SXAddl_SXCSXFilter12_SXDId 472
SXAddl_SXCCacheField_SXDIfdbMpMapCount 438 SXAddl_SXCSXFilter12_SXDSXFilter 472
SXAddl_SXCCacheField_SXDProperty 438 SXAddl_SXCSXFilter12_SXDSXFilterDesc 474
SXAddl_SXCCacheField_SXDPropName 439 SXAddl_SXCSXFilter12_SXDSXFilterValue1 474
SXAddl_SXCCacheField_SXDSxrmitmCount 439 SXAddl_SXCSXFilter12_SXDSXFilterValue2 474
SXAddl_SXCCacheItem_SXDEnd 440 SXAddl_SXCSXFilter12_SXDXlsFilterValue1 475
SXAddl_SXCCacheItem_SXDId 440 SXAddl_SXCSXFilter12_SXDXlsFilterValue2 476
SXAddl_SXCCacheItem_SXDItmMpMapCount 440 SXAddl_SXCSXFilters12_SXDEnd 476
SXAddl_SXCCacheItem_SXDItmMpropMap 441 SXAddl_SXCSXFilters12_SXDId 477
SXAddl_SXCCacheItem_SXDSxrmitmDisp 441 SXAddl_SXCSXMg_SXDEnd 477
SXAddl_SXCField_SXDEnd 442 SXAddl_SXCSXMg_SXDId 477
SXAddl_SXCField_SXDId 442 SXAddl_SXCSXMg_SXDUserCaption 478
SXAddl_SXCField_SXDVer10Info 442 SXAddl_SXCSXMgs_SXDEnd 478
SXAddl_SXCField12_SXDAutoshow 443 SXAddl_SXCSXMgs_SXDId 478
SXAddl_SXCField12_SXDId 444 SXAddl_SXCSXMgs_SXDMGrpSXDHMap 479
SXAddl_SXCField12_SXDISXTH 444 SXAddl_SXCSXrule_SXDEnd 480
SXAddl_SXCField12_SXDMemberCaption 445 SXAddl_SXCSXrule_SXDId 480
SXAddl_SXCField12_SXDVer12Info 445 SXAddl_SXCSXrule_SXDSXrule 480
SXAddl_SXCField12_SXDVerUpdInv 446 SXAddl_SXCView_SXDCalcMember 483
SXAddl_SXCGroup_SXDEnd 446 SXAddl_SXCView_SXDCalcMemString 485
SXAddl_SXCGroup_SXDGrpInfo 447 SXAddl_SXCView_SXDCompactColHdr 485
SXAddl_SXCGroup_SXDId 448 SXAddl_SXCView_SXDCompactRwHdr 486
SXAddl_SXCGroup_SXDMember 448 SXAddl_SXCView_SXDEnd 486
SXAddl_SXCGrpLevel_SXDEnd 449 SXAddl_SXCView_SXDId 487
SXAddl_SXCGrpLevel_SXDGrpLevelInfo 449 SXAddl_SXCView_SXDSXPIIvmb 487
SXAddl_SXCGrpLevel_SXDId 450 SXAddl_SXCView_SXDTableStyleClient 488
SXAddl_SXCHierarchy_SXDDisplayFolder 450 SXAddl_SXCView_SXDVer10Info 488
SXAddl_SXCHierarchy_SXDEnd 451 SXAddl_SXCView_SXDVer12Info 490
SXAddl_SXCHierarchy_SXDFilterMember 451 SXAddl_SXCView_SXDVerUpdInv 492
SXAddl_SXCHierarchy_SXDFilterMember12 452 SXAddl_SXCAutoSort_SXDEnd 432
SXAddl_SXCHierarchy_SXDIconSet 453 SXAddl_SXCAutoSort_SXDId 432
SXAddl_SXCHierarchy_SXDId 453 SXAddl_SXCCache_SXDEnd 433
SXAddl_SXCHierarchy_SXDInfo12 454 SXAddl_SXCCache_SXDId 433
SXAddl_SXCHierarchy_SXDKPIGoal 455 SXAddl_SXCCache_SXDInfo12 433
SXAddl_SXCHierarchy_SXDKPIStatus 455 SXAddl_SXCCache_SXDInvRefreshReal 434
SXAddl_SXCHierarchy_SXDKPITime 455 SXAddl_SXCCache_SXDVer10Info 434
SXAddl_SXCHierarchy_SXDKPITrend 456 SXAddl_SXCCache_SXDVerSXMacro 435
SXAddl_SXCHierarchy_SXDKPIValue 456 SXAddl_SXCCache_SXDVerUpdInv 436
SXAddl_SXCHierarchy_SXDKPIWeight 457 SXAddl_SXCCacheField_SXDCaption 436
SXAddl_SXCHierarchy_SXDMeasureGrp 457 SXAddl_SXCCacheField_SXDEnd 436
SXAddl_SXCHierarchy_SXDParentKPI 458 SXAddl_SXCCacheField_SXDId 437
SXAddl_SXCHierarchy_SXDProperty 458 SXAddl_SXCCacheField_SXDIfdbMempropMap 437
SXAddl_SXCHierarchy_SXDSXSetParentUnique 460 SXAddl_SXCCacheField_SXDIfdbMpMapCount 438
SXAddl_SXCHierarchy_SXDUserCaption 460 SXAddl_SXCCacheField_SXDProperty 438
SXAddl_SXCHierarchy_SXDVerUpdInv 460 SXAddl_SXCCacheField_SXDPropName 439
SXAddl_SXCQsi_SXDEnd 461 SXAddl_SXCCacheField_SXDSxrmitmCount 439
SXAddl_SXCQsi_SXDId 461 SXAddl_SXCCacheItem_SXDEnd 440
1121 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXAddl_SXCCacheItem_SXDId 440 SXAddl_SXCSXFilter12_SXDXlsFilter 475
SXAddl_SXCCacheItem_SXDItmMpMapCount 440 SXAddl_SXCSXFilter12_SXDXlsFilterValue1 475
SXAddl_SXCCacheItem_SXDItmMpropMap 441 SXAddl_SXCSXFilter12_SXDXlsFilterValue2 476
SXAddl_SXCCacheItem_SXDSxrmitmDisp 441 SXAddl_SXCSXFilters12_SXDEnd 476
SXAddl_SXCField_SXDEnd 442 SXAddl_SXCSXFilters12_SXDId 477
SXAddl_SXCField_SXDId 442 SXAddl_SXCSXMg_SXDEnd 477
SXAddl_SXCField_SXDVer10Info 442 SXAddl_SXCSXMg_SXDId 477
SXAddl_SXCField12_SXDAutoshow 443 SXAddl_SXCSXMg_SXDUserCaption 478
SXAddl_SXCField12_SXDEnd 443 SXAddl_SXCSXMgs_SXDEnd 478
SXAddl_SXCField12_SXDId 444 SXAddl_SXCSXMgs_SXDId 478
SXAddl_SXCField12_SXDISXTH 444 SXAddl_SXCSXMgs_SXDMGrpSXDHMap 479
SXAddl_SXCField12_SXDMemberCaption 445 SXAddl_SXCSXrule_SXDEnd 480
SXAddl_SXCField12_SXDVer12Info 445 SXAddl_SXCSXrule_SXDId 480
SXAddl_SXCField12_SXDVerUpdInv 446 SXAddl_SXCSXrule_SXDSXrule 480
SXAddl_SXCGroup_SXDEnd 446 SXAddl_SXCView_SXDCalcMember 483
SXAddl_SXCGroup_SXDGrpInfo 447 SXAddl_SXCView_SXDCalcMemString 485
SXAddl_SXCGroup_SXDId 448 SXAddl_SXCView_SXDCompactColHdr 485
SXAddl_SXCGroup_SXDMember 448 SXAddl_SXCView_SXDCompactRwHdr 486
SXAddl_SXCGrpLevel_SXDEnd 449 SXAddl_SXCView_SXDEnd 486
SXAddl_SXCGrpLevel_SXDGrpLevelInfo 449 SXAddl_SXCView_SXDId 487
SXAddl_SXCGrpLevel_SXDId 450 SXAddl_SXCView_SXDSXPIIvmb 487
SXAddl_SXCHierarchy_SXDDisplayFolder 450 SXAddl_SXCView_SXDTableStyleClient 488
SXAddl_SXCHierarchy_SXDEnd 451 SXAddl_SXCView_SXDVer10Info 488
SXAddl_SXCHierarchy_SXDFilterMember 451 SXAddl_SXCView_SXDVer12Info 490
SXAddl_SXCHierarchy_SXDFilterMember12 452 SXAddl_SXCView_SXDVerUpdInv 492
SXAddl_SXCHierarchy_SXDIconSet 453 SxAddl_SXDEnd 861
SXAddl_SXCHierarchy_SXDId 453 SxAddl_SXDVerUpdInv 861
SXAddl_SXCHierarchy_SXDInfo12 454 SxAddl_SXString 861
SXAddl_SXCHierarchy_SXDKPIGoal 455 SXAddlHdr 862
SXAddl_SXCHierarchy_SXDKPIStatus 455 SXAxis 862
SXAddl_SXCHierarchy_SXDKPITime 455 SxBool 493
SXAddl_SXCHierarchy_SXDKPITrend 456 SXDB 493
SXAddl_SXCHierarchy_SXDKPIValue 456 SXDBB 494
SXAddl_SXCHierarchy_SXDKPIWeight 457 SXDBEx 494
SXAddl_SXCHierarchy_SXDMeasureGrp 457 SXDI 495
SXAddl_SXCHierarchy_SXDParentKPI 458 SXDtr 497
SXAddl_SXCHierarchy_SXDProperty 458 SxDXF 497
SXAddl_SXCHierarchy_SXDSXSetParentUnique 460 SxErr 498
SXAddl_SXCHierarchy_SXDUserCaption 460 SXEx 498
SXAddl_SXCHierarchy_SXDVerUpdInv 460 SXEZDoper 862
SXAddl_SXCQsi_SXDEnd 461 SXFDB 501
SXAddl_SXCQsi_SXDId 461 SXFDBType 504
SXAddl_SXCQuery_SXDEnd 461 SxFilt 504
SXAddl_SXCQuery_SXDReconnCond 462 SxFmla 505
SXAddl_SXCQuery_SXDSrcConnFile 463 SxFormat 506
SXAddl_SXCQuery_SXDSrcDataFile 463 SxFormula 506
SXAddl_SXCQuery_SXDXMLSource 463 SxFT 863
SXAddl_SXCSXCondFmt_SXDEnd 464 SxInt 506
SXAddl_SXCSXCondFmt_SXDSXCondFmt 464 SxIsxoper 507
SXAddl_SXCSXCondFmts_SXDEnd 465 SxItm 507
SXAddl_SXCSXCondFmts_SXDId 466 SxIvd 508
SXAddl_SXCSXDH_SXDEnd 466 SxIvdCol 867
SXAddl_SXCSXDH_SXDId 467 SxIvdRw 867
SXAddl_SXCSXDH_SXDSxdh 467 SXLI 509
SXAddl_SXCSXfilt_SXDEnd 468 SXLIItem 867
SXAddl_SXCSXfilt_SXDId 469 SxName 509
SXAddl_SXCSXfilt_SXDSXfilt 469 SxNil 510
SXAddl_SXCSXfilt_SXDSXItm 470 SXNum 510
SXAddl_SXCSXFilter12_SXDCaption 471 SXPair 510
SXAddl_SXCSXFilter12_SXDEnd 472 SXPI 511
SXAddl_SXCSXFilter12_SXDId 472 SXPI_Item 870
SXAddl_SXCSXFilter12_SXDSXFilter 472 SXPIEx 512
SXAddl_SXCSXFilter12_SXDSXFilterDesc 474 SXRng 512
SXAddl_SXCSXFilter12_SXDSXFilterValue1 474 SxRule 514
SXAddl_SXCSXFilter12_SXDSXFilterValue2 474 SxSelect 516
1122 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
SXStreamID 518 User log 167
SXString 518 User names stream 67
SXTbl 518 UserBView 560
SxTbpg 519 UserSViewBegin 564
SXTBRGIITM 520 UserSViewBegin_Chart 567
SXTH 520 UserSViewEnd 569
Sxvd 523 UsesELFs 569
SXVDEx 527 UsrChk 569
SXVDEx_Opt 870 UsrExcl 570
SXVDTEx 530 UsrInfo 571
SXVI 531
SxView 533 V
SxView9Save 871
SxViewEx 535 Value metadata 104
SxViewEx9 536 ValueRange 571
SxViewLink 537 VBA storage 67
SXVIFlags 871 VCenter 574
SXVS 538 Vendor-extensible fields 55
Sync 538 Versioning 54
VertAlign 881
T VertBrk 881
VerticalPageBreaks 574
TabId 872 Viewer content stream 67
TabIndex 872 VirtualPath 881
Table 538
Table example 936 W
Table styles 159
Table: Feathdr11 example 936 Web connections 163
Table: Feature11 example 937 WebPub 574
TableFeatureType 872 WebPubString 883
TableStyle 540 Window1 577
TableStyleElement 541 Window2 578
TableStyles 544 WinProtect 580
Tag_Fn_MDX 876 WOpt 581
TBC 921 Workbook example 995
TBCCmd 922 Workbook stream 67
Template 545 Workbook: BOF 1 example 996
Text 545 Workbook: BookBool example 1000
Text import connections 163 Workbook: BookExt example 1009
TextPropsStream 550 Workbook: BoundSheet8 1 example 1006
TextPropsStreamChecksumData 877 Workbook: BoundSheet8 2 example 1006
Theme 552 Workbook: BoundSheet8 3 example 1007
Tick 552 Workbook: BuiltInFnGroupCount example 998
Tokens Workbook: CalcPrecision example 1000
control 82 Workbook: Country example 1007
display 82 Workbook: Date1904 example 1000
mem 82 Workbook: DBCell example 1026
operand 81 Workbook: DefaultRowHeight example 1013
operator 81 Workbook: DefColWidth example 1016
Top10FT 879 Workbook: Dimensions example 1016
TopMargin 555 Workbook: EOF 1 example 1011
Tracking changes 1095 Workbook: EOF 2 example (section 3.9.22 1011,
Trendline 100 section 3.9.41 1030)
Ts 879 Workbook: ExtSST example 1008
TxO 556 Workbook: Font example 1001
TxOLastRun 879 Workbook: Format example 1002
TxORuns 880 Workbook: Formula example 1023
TxtQry 558 Workbook: HideObj example 1000
TxtWf 880 Workbook: Index example 1012
Workbook: LabelSst 1 example 1020
U Workbook: LabelSst 2 example 1022
Workbook: PhoneticInfo example 1029
Uncalced 560 Workbook: RecalcId example 1008
Underline 881 Workbook: RK example 1021
Units 560 Workbook: Row 1 example 1017
1123 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019
Workbook: Row 2 example 1018 XmlTkHeader 906
Workbook: Row 3 example 1019 XmlTkHeightPercent 906
Workbook: Row 4 example 1019 XmlTkLogBaseFrt 907
Workbook: RRTabId example 997 XmlTkMajorUnitFrt 907
Workbook: Selection example 1028 XmlTkMajorUnitTypeFrt 907
Workbook: Setup example 1014 XmlTkMaxFrt 908
Workbook: SST example 1008 XmlTkMinFrt 908
Workbook: Style example 1005 XmlTkMinorUnitFrt 909
Workbook: Window1 example 998 XmlTkMinorUnitTypeFrt 909
Workbook: Window2 example 1026 XmlTkNoMultiLvlLbl 910
Workbook: WsBool example 1013 XmlTkOverlay 910
Workbook: XF example 1003 XmlTkPerspectiveFrt 911
WriteAccess 582 XmlTkPieComboFrom12Frt 911
WriteProtect 583 XmlTkRAngAxOffFrt 911
WsBool 583 XmlTkRotXFrt 912
XmlTkRotYFrt 912
X XmlTkShowDLblsOverMax 912
XmlTkSpb 913
XCB structures XmlTkStart 913
CTB 920 XmlTkStartSurface 913
CTBS 919 XmlTkString 914
CTBWRAPPER 919 XmlTkStyle 914
TBC 921 XmlTkSymbolFrt 914
TBCCmd 922 XmlTkThemeOverride 915
XColorType 884 XmlTkTickLabelPositionFrt 915
XCT 584 XmlTkTickLabelSkipFrt 916
XF 584 XmlTkTickMarkSkipFrt 916
XFCRC 585 XmlTkToken 916
XFExt 585 XmlTkTpb 917
XFExtGradient 884 Xnum 917
XFExtNoFRT 885 XORObfuscation 917
XFIndex 885 XTI 917
XFProp 887 XtiIndex 832
XFPropBorder 889
XFPropColor 889 Y
XFPropGradient 890
XFPropGradientStop 891 YMult 586
XFProps 891
XFPropTextRotation 892
XFs 157
XLNameUnicodeString 892
XlsFilter_Criteria 893
XlsFilter_Top10 894
XLUnicodeRichExtendedString 895
XLUnicodeString 896
XLUnicodeStringMin2 897
XLUnicodeStringNoCch 897
XLUnicodeStringSegmented 897
XLUnicodeStringSegmentedRTD 898
XLUnicodeStringSegmentedSXAddl 898
XML signatures storage 75
XML stream 75
XmlTkBackWallThicknessFrt 899
XmlTkBaseTimeUnitFrt 899
XmlTkBlob 900
XmlTkBool 900
XmlTkChain 901
XmlTkColorMappingOverride 903
XmlTkDispBlanksAsFrt 903
XmlTkDouble 904
XmlTkDWord 904
XmlTkEnd 905
XmlTkEndSurface 905
XmlTkFloorThicknessFrt 905
XmlTkFormatCodeFrt 906
1124 / 1124
[MS-XLS] - v20190618
Excel Binary File Format (.xls) Structure
Copyright © 2019 Microsoft Corporation
Release: June 18, 2019