!       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                              ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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! e! f" g" h" i" j" k" l" m" n" o" p" q" r" s" t" u" v" w# x# y# z# {# |# }# ~# # # # # # # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % % % % % % % % % % % & & & & & & &'SafeKNone@AP_`0 xlsxO(1)  - index (subscript) operator, starting from 0. xlsx-Get index of an element starting from offset. xlsxGet a substring of a string.    None27@ACX6xlsxrequired attribute parsing7xlsx)parsing optional attributes with defaults8xlsxparsing optional attributesDxlsxAdd sml namespace to name6  /0123456789:;<=>?@ABCD34D512/06789:;<=>?@ABCNone"#7Zxlsx*Add package relationship namespace to nameMNPOQRTSUVXWYZ[UVXWQRTSMNPOYZ[None"#7=?XLxlsx)Set the namespace for the entire documentDThis follows the same policy that the rest of the xlsx package uses.xlsxThe main namespace for Excelhijklmnopqrstuvwxyz{|}~lmnopjkqrstuvwxyz{hi|}~None7Xxlsx-Add doc props variant types namespace to name None"#7$xlsx Reading order:See 18.8.1 "alignment (Alignment)" (p. 1754, esp. p. 1755)xlsxAIndicates the style of fill pattern being used for a cell format.:Section 18.18.55 "ST_PatternType (Pattern Type)" (p. 2472)xlsxVertical alignmentMSee 22.9.2.17 "ST_VerticalAlignRun (Vertical Positioning Location)" (p. 3794)xlsxFont underline property#See 18.4.13 "u (Underline)", p 1728xlsx Font scheme;See 18.18.33 "ST_FontScheme (Font scheme Styles)" (p. 2456)xlsx+This font is the major font for this theme.xlsx+This font is the minor font for this theme.xlsxThis font is not a theme font.xlsx Font familyhSee 18.8.18 "family (Font Family)" (p. 1766) and 17.18.30 "ST_FontFamily (Font Family Value)" (p. 1388)xlsxFamily is not applicablexlsxProportional font with serifsxlsx Proportional font without serifsxlsx%Monospace font with or without serifsxlsx;Script font designed to mimic the appearance of handwritingxlsx Novelty fontxlsxVertical alignment in cellsHSee 18.18.88 "ST_VerticalAlignment (Vertical Alignment Types)" (p. 2512)xlsxHorizontal alignment in cellsKSee 18.18.40 "ST_HorizontalAlignment (Horizontal Alignment Type)" (p. 2459)xlsxProtection propertiesContains protection properties associated with the cell. Each cell has protection properties that can be set. The cell protection properties do not take effect unless the sheet has been protected.>Section 18.8.33, "protection (Protection Properties)", p. 1793xlsxImplied number formatsNote:o This only implements the predefined values for 18.2.30 "All Languages", other built-in format ids (with id < t) are stored in NfOtherBuiltinxlsx  0 Generalxlsx 1 0xlsx 2 0.00xlsx 3 #,##0xlsx  4 #,##0.00xlsx 9 0%xlsx 10 0.00%xlsx  11 0.00E+00xlsx 12 # ?/?xlsx  13 # ??/??xlsx  14 mm-dd-yyxlsx  15 d-mmm-yyxlsx 16 d-mmmxlsx  17 mmm-yyxlsx  18 h:mm AM/PMxlsx 19 h:mm:ss AM/PMxlsx 20 h:mmxlsx  21 h:mm:ssxlsx 22 m/d/yy h:mmxlsx 37 #,##0 ;(#,##0)xlsx 38 #,##0 ;[Red](#,##0)xlsx 39 #,##0.00;(#,##0.00)xlsx 40 #,##0.00;[Red](#,##0.00)xlsx 45 mm:ssxlsx  46 [h]:mm:ssxlsx  47 mmss.0xlsx  48 ##0.0E+0 xlsx 49 @ xlsx5other (non local-neutral?) built-in format (id < 164) xlsxQThis type gives a high-level version of representation of number format used in $'.xlsxuThis element specifies number format properties which indicate how to format and render the numeric value of a cell.2Section 18.8.30 "numFmt (Number Format)" (p. 1777)xlsxA number format code.3Section 18.8.30, "numFmt (Number Format)" (p. 1777)xlsxEA single dxf record, expressing incremental formatting to be applied.-Section 18.8.14, "dxf (Formatting)" (p. 1765)xlsxHIt seems to be required that this number format entry is duplicated in oG of the style sheet, though the spec says nothing explicitly about it.xlsxPThis element defines the properties for one of the fonts used in this workbook.'Section 18.2.22 "font (Font)" (p. 1769)xlsx,Displays characters in bold face font style.xlsx9This element defines the font character set of this font.7This field is used in font creation and selection if a font of the given facename is not available on the system. Although it is not required to have around when resolving font facename, the information can be stored for when needed to help resolve which font face to use of all available fonts on a system.Charset represents the basic set of characters associated with a font (that it can display), and roughly corresponds to the ANSI codepage (8-bit or DBCS) of that character set used by a given language. Given more common use of Unicode where many fonts support more than one of the traditional charset categories, and the use of font linking, using charset to resolve font name is less and less common, but still can be useful.,These are operating-system-dependent values.FSection 18.4.1 "charset (Character Set)" provides some example values.xlsxColor xlsxMacintosh compatibility setting. Represents special word/character rendering on Macintosh, when this flag is set. The effect is to condense the text (squeeze it together). SpreadsheetML applications are not required to render according to this flag.!xlsx=This element specifies a compatibility setting used for previous spreadsheet applications, resulting in special word/character rendering on those legacy applications, when this flag is set. The effect extends or stretches out the text. SpreadsheetML applications are not required to render according to this flag."xlsxThe font family this font belongs to. A font family is a set of fonts having common stroke width and serif characteristics. This is system level font information. The font name overrides when there are conflicting values.#xlsxDisplays characters in italic font style. The italic style is defined by the font at a system level and is not specified by ECMA-376.$xlsx2This element specifies the face name of this font.A string representing the name of the font. If the font doesn't exist (because it isn't installed on the system), or the charset not supported by that font, then another font should be substituted.AThe string length for this attribute shall be 0 to 31 characters.%xlsxtThis element displays only the inner and outer borders of each character. This is very similar to Bold in behavior.&xlsxDefines the font scheme, if any, to which this font belongs. When a font definition is part of a theme definition, then the font is categorized as either a major or minor font scheme component. When a new theme is chosen, every font that is part of a theme definition is updated to use the new major or minor font definition for that theme. Usually major fonts are used for styles like headings, and minor fonts are used for body and paragraph text.'xlsxMacintosh compatibility setting. Represents special word/character rendering on Macintosh, when this flag is set. The effect is to render a shadow behind, beneath and to the right of the text. SpreadsheetML applications are not required to render according to this flag.(xlsxSThis element draws a strikethrough line through the horizontal middle of the text.)xlsx[This element represents the point size (1/72 of an inch) of the Latin and East Asian text.*xlsx7This element represents the underline formatting style.+xlsxThis element adjusts the vertical position of the text relative to the text's default appearance for this run. It is used to get  superscript or  subscriptU texts, and shall reduce the font size (if a smaller size is available) accordingly.,xlsxThis element is used to specify cell fill information for pattern and solid color cell fills. For solid cell fills (no pattern), fgColor is used. For cell fills with patterns specified, then the cell fill color is specified by the bgColor element.1Section 18.8.32 "patternFill (Pattern)" (p. 1793)1xlsx'This element specifies fill formatting.^TODO: Gradient fills (18.8.4) are currently unsupported. If we add them, then the spec says (CT_FillO, p. 3935), _either_ a gradient _or_ a solid fill pattern should be specified.(Section 18.8.20, "fill (Fill)" (p. 1768)4xlsx>One of the colors associated with the data bar or color scale.The  I attribute (used for backwards compatibility only) is not modelled here.0See 18.3.1.15 "color (Data Bar Color)" (p. 1608)6xlsxNA boolean value indicating the color is automatic and system color dependent.7xlsx1Standard Alpha Red Green Blue color value (ARGB).This simple type's contents have a length of exactly 8 hexadecimal digit(s); see "18.18.86 ST_UnsignedIntHex (Hex Unsigned Integer)" (p. 2511).8xlsxA zero-based index into the  clrScheme2 collection (20.1.6.2), referencing a particular  sysClr or  srgbClr$ value expressed in the Theme part.9xlsx.Specifies the tint value applied to the color.lIf tint is supplied, then it is applied to the RGB value of the color to determine the final color applied.The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.:xlsxBorder style See  CT_BorderPr (p. 3934)>xlsxvExpresses a single set of cell border formats (left, right, top, bottom, diagonal). Color is optional. When missing,  automatic is implied.&See 18.8.4 "border (Border)" (p. 1759)@xlsxA boolean value indicating if the cell's diagonal border includes a diagonal line, starting at the top left corner of the cell and moving down to the bottom right corner of the cell.AxlsxA boolean value indicating if the cell's diagonal border includes a diagonal line, starting at the bottom left corner of the cell and moving up to the top right corner of the cell.Bxlsx~A boolean value indicating if left, right, top, and bottom borders should be applied only to outside borders of a cell range.Cxlsx Bottom borderDxlsxDiagonalExlsxTrailing edge border See also FxlsxHorizontal inner bordersGxlsx Left border(NOTE: The spec does not formally list a left. border element, but the examples do mention left* and the scheme contains it too. See also .Hxlsx Right border(NOTE: The spec does not formally list a right. border element, but the examples do mention right* and the scheme contains it too. See also .IxlsxLeading edge border See also Jxlsx Top borderKxlsxVertical inner borderLxlsx Alignment,See 18.8.1 "alignment (Alignment)" (p. 1754)Nxlsx4Specifies the type of horizontal alignment in cells.OxlsxAn integer value, where an increment of 1 represents 3 spaces. Indicates the number of spaces (of the normal style font) of indentation for text in a cell.PxlsxA boolean value indicating if the cells justified or distributed alignment should be used on the last line of text. (This is typical for East Asian alignments but not typical in other contexts.)QxlsxAn integer value indicating whether the reading order (bidirectionality) of the cell is leftto- right, right-to-left, or context dependent.RxlsxAn integer value (used only in a dxf element) to indicate the additional number of spaces of indentation to adjust for text in a cell.SxlsxA boolean value indicating if the displayed text in the cell should be shrunk to fit the cell width. Not applicable when a cell contains multiple lines of text.TxlsxText rotation in cells. Expressed in degrees. Values range from 0 to 180. The first letter of the text is considered the center-point of the arc.UxlsxVertical alignment in cells.VxlsxYA boolean value indicating if the text in a cell should be line-wrapped within the cell.WxlsxCell formatting TODO: The extLst field is currently unsupported.'Section 18.8.45 "xf (Format)" (p. 1800)YxlsxeA boolean value indicating whether the alignment formatting specified for this xf should be applied.ZxlsxbA boolean value indicating whether the border formatting specified for this xf should be applied.[xlsx`A boolean value indicating whether the fill formatting specified for this xf should be applied.\xlsx`A boolean value indicating whether the font formatting specified for this xf should be applied.]xlsxbA boolean value indicating whether the number formatting specified for this xf should be applied.^xlsxfA boolean value indicating whether the protection formatting specified for this xf should be applied._xlsx?Zero-based index of the border record used by this cell format.(18.18.2, p. 2437).`xlsx=Zero-based index of the fill record used by this cell format.(18.18.30, p. 2455)axlsx=Zero-based index of the font record used by this cell format.7An integer that represents a zero based index into the 4 collection in the style sheet (18.18.32, p. 2456).bxlsxAId of the number format (numFmt) record used by this cell format.This simple type defines the identifier to a style sheet number format entry in CT_NumFmts. Number formats are written to the styles part (18.18.47, p. 2468). See also 18.8.31 (p. 1784) for more information on number formats.cxlsx^A boolean value indicating whether the cell rendering includes a pivot table dropdown button.dxlsxA boolean value indicating whether the text string in a cell should be prefixed by a single quote mark (e.g., 'text). In these cases, the quote is not stored in the Shared Strings Part.exlsxFor xf records contained in cellXfs this is the zero-based index of an xf record contained in cellStyleXfs corresponding to the cell style applied to the cell.5Not present for xf records contained in cellStyleXfs.Used by xf records and cellStyle records to reference xf records defined in the cellStyleXfs collection. (18.18.10, p. 2442) TODO: the cellStyleXfs field of a style sheet not currently implemented.fxlsxFormatting information pertaining to text alignment in cells. There are a variety of choices for how text is aligned both horizontally and vertically, as well as indentation settings, and so on.gxlsxContains protection properties associated with the cell. Each cell has protection properties that can be set. The cell protection properties do not take effect unless the sheet has been protected.hxlsxStyleSheet for an XML document;Relevant parts of the EMCA standard (4th edition, part 1,  Ehttp://www.ecma-international.org/publications/standards/Ecma-376.htmc), page numbers refer to the page in the PDF rather than the page number as printed on the page): Chapter 12,  SpreadsheetMLA (p. 74) In particular Section 12.3.20, "Styles Part" (p. 104)XChapter 18, "SpreadsheetML Reference Material" (p. 1528) In particular Section 18.8, Styles (p. 1754) and Section 18.8.39 "styleSheet" (Style Sheet)" (p. 1796); it is the latter section that specifies the top-level style sheet format.#TODO: the following child elements: cellStyles cellStyleXfscolorsextLst tableStyles9NOTE: You will probably want to base your style sheet on 3 . See also:( to translate a h to Styles$) for a higher level interface.* to translate a raw h into StylesjxlsxwThis element contains borders formatting information, specifying all border definitions for all cells in the workbook.-Section 18.8.5, "borders (Borders)" (p. 1760)kxlsx Cell formatsThis element contains the master formatting records (xf) which define the formatting applied to cells in this workbook. These records are the starting point for determining the formatting for a cell. Cells in the Sheet Part reference the xf records by zero-based index.3Section 18.8.10, "cellXfs (Cell Formats)" (p. 1764)lxlsxThis element defines the cell fills portion of the Styles part, consisting of a sequence of fill records. A cell fill consists of a background color, foreground color, and pattern to be applied across the cell.*Section 18.8.21, "fills (Fills)" (p. 1768)mxlsx=This element contains all font definitions for this workbook.)Section 18.8.23 "fonts (Fonts)" (p. 1769)nxlsxDifferential formatting*This element contains the master differential formatting records (dxf's) which define formatting for all non-cell formatting in this workbook. Whereas xf records fully specify a particular aspect of formatting (e.g., cell borders) by referencing those formatting definitions elsewhere in the Styles part, dxf records specify incremental (or differential) aspects of formatting directly inline within the dxf element. The dxf formatting is to be applied on top of or in addition to any formatting already present on the object using the dxf record.+Section 18.8.15, "dxfs (Formats)" (p. 1765)oxlsxNumber formatsGThis element contains custom number formats defined in this style sheet5Section 18.8.31, "numFmts (Number Formats)" (p. 1784)pxlsxBasic number format with predefined number of decimals as format code of number format in xlsx should be less than 255 characters number of decimals shouldn't be more than 253qxlsxDBasic number format with predefined number of decimals. Works like p with the only difference that extra zeroes are displayed when number of digits after the point is less than the number of digits specified in the format3xlsxMinimal style sheet~Excel expects some minimal definitions in the stylesheet; you probably want to define your own stylesheets based on this one.2This more-or-less follows the recommendations at  ]http://stackoverflow.com/questions/26050708/minimal-style-sheet-for-excel-open-xml-with-dates:, but with some additions based on experimental evidence.4xlsxSee CT_CellProtection , p. 44848xlsxSee CT_CellAlignment , p. 44829xlsxSee  CT_NumFmt , p. 3936:xlsxSee CT_Dxf , p. 3937;xlsxSee CT_Xf , p. 4486>xlsxSee  CT_Border , p. 4483@xlsxSee CT_PatternFill , p. 4484AxlsxSee CT_Fill , p. 4484IxlsxSee CT_Color , p. 4484Kxlsx4See 18.18.94 "ST_FontFamily (Font Family)" (p. 2517)LxlsxSee CT_Font , p. 4489MxlsxSee  CT_Stylesheet , p. 4482WxlsxSee CT_CellProtection , p. 4484XxlsxSee  CT_NumFmt , p. 3936YxlsxSee CT_Font , p. 4489ZxlsxSee CT_PatternFill , p. 4484[xlsxSee CT_Fill , p. 4484\xlsxSee CT_Color , p. 4484]xlsxSee  CT_BorderPr , p. 4483^xlsxSee  CT_Border , p. 4483_xlsxSee CT_CellAlignment , p. 4482`xlsxSee CT_Dxf , p. 3937axlsxSee CT_Xf , p. 4486bxlsxSee  CT_Stylesheet , p. 4482#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst      !"#$%&'()*+,-./0123#hijklmnoWXYZ[\]^_`abcdefg3LMNOPQRSTUV>?@ABCDEFGHIJK:;<=456789123,-./0 !"#$%&'()*+           !"#$%&'()*+,.-/012pqrst None"#7oxlsxRun properties0Section 18.4.7, "rPr (Run Properties)" (p. 1725)qxlsx,Displays characters in bold face font style.$Section 18.8.2, "b (Bold)" (p. 1757)rxlsx9This element defines the font character set of this font.3Section 18.4.1, "charset (Character Set)" (p. 1721)sxlsx>One of the colors associated with the data bar or color scale.5Section 18.3.1.15, "color (Data Bar Color)" (p. 1608)txlsxMacintosh compatibility setting. Represents special word/character rendering on Macintosh, when this flag is set. The effect is to condense the text (squeeze it together).0Section 18.8.12, "condense (Condense)" (p. 1764)uxlsxThis element specifies a compatibility setting used for previous spreadsheet applications, resulting in special word/character rendering on those legacy applications, when this flag is set. The effect extends or stretches out the text.,Section 18.8.17, "extend (Extend)" (p. 1766)vxlsxThe font family this font belongs to. A font family is a set of fonts having common stroke width and serif characteristics. This is system level font information. The font name overrides when there are conflicting values.1Section 18.8.18, "family (Font Family)" (p. 1766)wxlsxDisplays characters in italic font style. The italic style is defined by the font at a system level and is not specified by ECMA-376.'Section 18.8.26, "i (Italic)" (p. 1773)xxlsxtThis element displays only the inner and outer borders of each character. This is very similar to Bold in behavior.-Section 18.4.2, "outline (Outline)" (p. 1722)yxlsxYThis element is a string representing the name of the font assigned to display this run.(Section 18.4.5, "rFont (Font)" (p. 1724)zxlsxDefines the font scheme, if any, to which this font belongs. When a font definition is part of a theme definition, then the font is categorized as either a major or minor font scheme component. When a new theme is chosen, every font that is part of a theme definition is updated to use the new major or minor font definition for that theme. Usually major fonts are used for styles like headings, and minor fonts are used for body and paragraph text.,Section 18.8.35, "scheme (Scheme)" (p. 1794){xlsxMacintosh compatibility setting. Represents special word/character rendering on Macintosh, when this flag is set. The effect is to render a shadow behind, beneath and to the right of the text.,Section 18.8.36, "shadow (Shadow)" (p. 1795)|xlsxSThis element draws a strikethrough line through the horizontal middle of the text.4Section 18.4.10, "strike (Strike Through)" (p. 1726)}xlsx[This element represents the point size (1/72 of an inch) of the Latin and East Asian text.+Section 18.4.11, "sz (Font Size)" (p. 1727)~xlsx7This element represents the underline formatting style.*Section 18.4.13, "u (Underline)" (p. 1728)xlsxThis element adjusts the vertical position of the text relative to the text's default appearance for this run. It is used to get  superscript or  subscriptU texts, and shall reduce the font size (if a smaller size is available) accordingly.;Section 18.4.14, "vertAlign (Vertical Alignment)" (p. 1728)xlsx Rich Text RunThis element represents a run of rich text. A rich text run is a region of text that share a common set of properties, such as formatting properties.-Section 18.4.4, "r (Rich Text Run)" (p. 1724)xlsx\This element represents a set of properties to apply to the contents of this rich text run.xlsxCThis element represents the text content shown as part of a string.NOTE: [ elements with an empty text field will result in an error when opening the file in Excel.%Section 18.4.12, "t (Text)" (p. 1727)xlsxApply properties to a If the g specifies its own properties, then these overrule the properties specified here. For example, adding bold to a  which is already italic will make the  both  bold and Qitalic@ but adding it to one that that is explicitly _not_ bold will leave the  unchanged.xlsxThe   instance for o4 is biased: later properties override earlier ones.xlsxSee  CT_RPrElt , p. 3903xlsxSee CT_RElt , p. 3903xlsxSee  CT_RPrElt , p. 3903xlsxSee CT_RElt , p. 3903'opqrstuvwxyz{|}~'opqrstuvwxyz{|}~ None"#7xlsxNSheet protection options to enforce and specify that it needs to be protectedJTODO: algorithms specified in the spec with hashes, salts and spin countsDSee 18.3.1.85 "sheetProtection (Sheet Protection Options)" (p. 1694)xlsxOSpecifies the legacy hash of the password required for editing this worksheet.fSee Part 4, 15.3.1.6 "Additional attribute for sheetProtection element (Part 1, 18.3.1.85)" (p. 229)xlsxFthe value of this attribute dictates whether the other attributes of  should be appliedxlsxIAutoFilters should not be allowed to operate when the sheet is protectedxlsxCdeleting columns should not be allowed when the sheet is protectedxlsx@deleting rows should not be allowed when the sheet is protectedxlsxCformatting cells should not be allowed when the sheet is protectedxlsxEformatting columns should not be allowed when the sheet is protectedxlsxBformatting rows should not be allowed when the sheet is protectedxlsxDinserting columns should not be allowed when the sheet is protectedxlsxGinserting hyperlinks should not be allowed when the sheet is protectedxlsxAinserting rows should not be allowed when the sheet is protectedxlsxEediting of objects should not be allowed when the sheet is protectedxlsxIPivotTables should not be allowed to operate when the sheet is protectedxlsx:Scenarios should not be edited when the sheet is protectedxlsxLselection of locked cells should not be allowed when the sheet is protectedxlsxNselection of unlocked cells should not be allowed when the sheet is protectedxlsx9sorting should not be allowed when the sheet is protectedxlsxCreates legacy XOR hashed password.Note: The implementation is known to work only for ASCII symbols, if you know how to encode properly others - an email or a PR will be highly apperciated See Part 4, 14.7.1 "Legacy Password Hash Algorithm" (p. 73) and Part 4, 15.2.3 "Additional attributes for workbookProtection element (Part 1, 18.2.29)" (p. 220) and Par 4, 15.3.1.6 "Additional attribute for sheetProtection element (Part 1, 18.3.1.85)" (p. 229)xlsxno sheet protection at allxlsx9protection of all sheet features which could be protected(( None"#7qoxlsx Paper sizexlsxA2 paper (420 mm by 594 mm)xlsxA3 paper (297 mm by 420 mm)xlsx!A3 extra paper (322 mm by 445 mm)xlsx,A3 extra transverse paper (322 mm by 445 mm)xlsx&A3 transverse paper (297 mm by 420 mm)xlsxA4 paper (210 mm by 297 mm)xlsx!A4 extra paper (236 mm by 322 mm)xlsx A4 plus paper (210 mm by 330 mm)xlsx!A4 small paper (210 mm by 297 mm)xlsx&A4 transverse paper (210 mm by 297 mm)xlsxA5 paper (148 mm by 210 mm)xlsx!A5 extra paper (174 mm by 235 mm)xlsx&A5 transverse paper (148 mm by 210 mm)xlsxB4 paper (250 mm by 353 mm)xlsxB5 paper (176 mm by 250 mm)xlsxC paper (17 in. by 22 in.)xlsxD paper (22 in. by 34 in.)xlsxE paper (34 in. by 44 in.)xlsx&Executive paper (7.25 in. by 10.5 in.)xlsx(German legal fanfold (8.5 in. by 13 in.)xlsx+German standard fanfold (8.5 in. by 12 in.)xlsx*US standard fanfold (14.875 in. by 11 in.)xlsxFolio paper (8.5 in. by 13 in.)xlsxISO B4 (250 mm by 353 mm)xlsx%ISO B5 extra paper (201 mm by 276 mm)xlsx+Japanese double postcard (200 mm by 148 mm)xlsx*JIS B5 transverse paper (182 mm by 257 mm)xlsxLedger paper (17 in. by 11 in.)xlsxLegal paper (8.5 in. by 14 in.)xlsx'Legal extra paper (9.275 in. by 15 in.)xlsx Letter paper (8.5 in. by 11 in.)xlsx(Letter extra paper (9.275 in. by 12 in.)xlsx3Letter extra transverse paper (9.275 in. by 12 in.)xlsx(Letter plus paper (8.5 in. by 12.69 in.)xlsx&Letter small paper (8.5 in. by 11 in.)xlsx-Letter transverse paper (8.275 in. by 11 in.)xlsxNote paper (8.5 in. by 11 in.)xlsxQuarto paper (215 mm by 275 mm)xlsx Standard paper (9 in. by 11 in.)xlsx!Standard paper (10 in. by 11 in.) xlsx!Standard paper (10 in. by 14 in.) xlsx!Standard paper (11 in. by 17 in.) xlsx!Standard paper (15 in. by 11 in.) xlsx$Statement paper (5.5 in. by 8.5 in.) xlsxSuperASuperAA4 paper (227 mm by 356 mm)xlsxSuperBSuperBA3 paper (305 mm by 487 mm)xlsx Tabloid paper (11 in. by 17 in.)xlsx)Tabloid extra paper (11.69 in. by 18 in.)xlsx%6 3/4 envelope (3.625 in. by 6.5 in.)xlsx$#9 envelope (3.875 in. by 8.875 in.)xlsx##10 envelope (4.125 in. by 9.5 in.)xlsx$#11 envelope (4.5 in. by 10.375 in.)xlsx!#12 envelope (4.75 in. by 11 in.)xlsx #14 envelope (5 in. by 11.5 in.)xlsxB4 envelope (250 mm by 353 mm)xlsxB5 envelope (176 mm by 250 mm)xlsxB6 envelope (176 mm by 125 mm)xlsxC3 envelope (324 mm by 458 mm)xlsxC4 envelope (229 mm by 324 mm)xlsxC5 envelope (162 mm by 229 mm)xlsxC6 envelope (114 mm by 162 mm)xlsxC65 envelope (114 mm by 229 mm)xlsxDL envelope (110 mm by 220 mm) xlsx"Invite envelope (220 mm by 220 mm)!xlsx!Italy envelope (110 mm by 230 mm)"xlsx(Monarch envelope (3.875 in. by 7.5 in.).#xlsxSpecifies printed page order$xlsx4Order pages vertically first, then move horizontally%xlsx4Order pages horizontally first, then move vertically&xlsx Print orientation for this sheet*xlsx Print errorsYThis enumeration specifies how to display cells with errors when printing the worksheet.+xlsxDisplay cell errors as blank,xlsxDisplay cell errors as dashes-xlsx*Display cell errors as displayed on screen.xlsxDisplay cell errors as #N/A/xlsx Cell comments]These enumerations specify how cell comments shall be displayed for paper printing purposes.8See 18.18.5 "ST_CellComments (Cell Comments)" (p. 2441).0xlsx Print cell comments as displayed1xlsx&Print cell comments at end of document2xlsxDo not print cell comments5xlsxPrint black and white.6xlsx4This attribute specifies how to print cell comments.7xlsxNumber of copies to print.8xlsxPrint without graphics.9xlsx9Specifies how to print cell values for cells with errors.:xlsxDPage number for first printed page. If no value is specified, then  automatic is assumed.;xlsx#Number of vertical pages to fit on.<xlsx%Number of horizontal pages to fit on.=xlsx*Horizontal print resolution of the device.>xlsx5Relationship Id of the devMode printer settings part.-(Explicit reference to a parent XML element.)ESee 22.8.2.1 "ST_RelationshipId (Explicit Relationship ID)" (p. 3784)?xlsxOrientation of the page.@xlsxOrder of printed pagesAxlsxAHeight of custom paper as a number followed by a unit identifier.VWhen paperHeight and paperWidth are specified, paperSize shall be ignored. Examples: "297mm", "11in".VSee 22.9.2.12 "ST_PositiveUniversalMeasure (Positive Universal Measurement)" (p. 3792)Bxlsx Pager sizeYWhen paperHeight, paperWidth, and paperUnits are specified, paperSize should be ignored.Cxlsx?Width of custom paper as a number followed by a unit identifier Examples: 21cm, 8.5inKWhen paperHeight and paperWidth are specified, paperSize shall be ignored.DxlsxPrint scaling.This attribute is restricted to values ranging from 10 to 400. This setting is overridden when fitToWidth and/or fitToHeight are in use.ExlsxUse :@ value for first page number, and do not auto number the pages.FxlsxtUse the printer s defaults settings for page setup values and don't use the default values specified in the schema.Example: If dpi is not present or specified in the XML, the application must not assume 600dpi as specified in the schema as a default and instead must let the printer specify the default dpi.Gxlsx(Vertical print resolution of the device.{xlsxSee ST_Orientation , p. 3923}xlsxSee  ST_PrintError , p. 3923xlsxSee ST_CellComments , p. 3923xlsxSee  ST_PageOrder , p. 3923xlsxSee  paperSize (attribute of  pageSetup ), p. 1659xlsxSee  CT_PageSetup , p. 3922xlsxSee  paperSize (attribute of  pageSetup ), p. 1659xlsxSee  ST_PageOrder , p. 3923xlsxSee ST_Orientation , p. 3923xlsxSee  ST_PrintError , p. 3923xlsxSee ST_CellComments , p. 3923xlsxSee  CT_PageSetup , p. 3922{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGghijklmnopqrstuvwxy{3456789:;<=>?@ABCDEFG/012*+,-.&'()#$%      !"ghijklmnopqrstuvwxy None7wxlsx'Add custom properties namespace to namexlsxFMTID_UserDefinedProperties   None7wNone"#7}gxlsx>Describes relationships according to Open Packaging ConventionTSee ECMA-376, 4th Edition Office Open XML File Formats  Open Packaging ConventionsxlsxHjoins relative URI (actually a file path as an internal relation target)xlsx*Add package relationship namespace to namexlsx2Add office document relationship namespace to nameNone"#7]3xlsx*See 20.1.8.44 "noFill (No Fill)" (p. 2872)xlsx<Solid fill See 20.1.8.54 "solidFill (Solid Fill)" (p. 2879)xlsx%Color choice for some drawing element2TODO: scrgbClr, hslClr, sysClr, schemeClr, prstClrSee EG_ColorChoice (p. 3996)xlsxSpecifies a color using the red, green, blue RGB color model. Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.CSee 20.1.2.3.32 "srgbClr (RGB Color Model - Hex Variant)" (p. 2773)xlsxiSpecifies an outline style that can be applied to a number of different objects such as shapes and text.dTODO: cap, cmpd, algn, a_EG_LineDashProperties, a_EG_LineJoinProperties, headEnd, tailEnd, extLst(See 20.1.2.2.24 "ln (Outline)" (p. 2744)xlsxSpecifies the width to be used for the underline stroke. The value is in EMU, is greater of equal to 0 and maximum value is 20116800.xlsx,Specifies the rotation of the Graphic Frame.xlsxSpecifies a horizontal flip. When true, this attribute defines that the shape is flipped horizontally about the center of its bounding box.xlsxSpecifies a vertical flip. When true, this attribute defines that the shape is flipped vetically about the center of its bounding box.xlsx%See 20.1.7.4 "off (Offset)" (p. 2847)xlsxSSee 20.1.7.3 "ext (Extents)" (p. 2846) or 20.5.2.14 "ext (Shape Extent)" (p. 3165)xlsxPositive position or length in EMUs, maximu allowed value is 27273042316900. see 20.1.10.41 "ST_PositiveCoordinate (Positive Coordinate)" (p. 2942)xlsxtUnits used in "Universal measure" coordinates see 22.9.2.15 "ST_UniversalMeasure (Universal Measurement)" (p. 3793)xlsx@This simple type represents a one dimensional position or length5See 20.1.10.16 "ST_Coordinate (Coordinate)" (p. 2921)xlsx@see 20.1.10.19 "ST_CoordinateUnqualified (Coordinate)" (p. 2922)xlsxEsee 22.9.2.15 "ST_UniversalMeasure (Universal Measurement)" (p. 3793)xlsxText run TODO: br, fldxlsxText character properties.TODO: kumimoji, lang, altLang, sz, strike, kern, cap, spc, normalizeH, baseline, noProof, dirty, err, smtClean, smtId, bmk, ln, a_EG_FillProperties, a_EG_EffectProperties, highlight, a_EG_TextUnderlineLine, a_EG_TextUnderlineFill, latin, ea, cs, sym, hlinkClick, hlinkMouseOver, rtl, extLstSee CT_TextCharacterProperties (p. 4039)xlsxAThis type specifies a list of available anchoring types for text.FSee 20.1.10.59 "ST_TextAnchoringType (Text Anchoring Types)" (p. 3058)xlsx8Anchor the text at the bottom of the bounding rectangle.xlsx8Anchor the text at the middle of the bounding rectangle.xlsxAnchor the text so that it is distributed vertically. When text is horizontal, this spaces out the actual lines of text and is almost always identical in behavior to  (special case: if only 1 line, then anchored in middle). When text is vertical, then it distributes the letters vertically. This is different than i, because it always forces distribution of the words, even if there are only one or two words in a line.xlsxAnchor the text so that it is justified vertically. When text is horizontal, this spaces out the actual lines of text and is almost always identical in behavior to  (special case: if only 1 line, then anchored at top). When text is vertical, then it justifies the letters vertically. This is different than P because in some cases such as very little text in a line, it does not justify.xlsx5Anchor the text at the top of the bounding rectangle. xlsxText wrapping typesDSee 20.1.10.84 "ST_TextWrappingType (Text Wrapping Types)" (p. 3084) xlsxuNo wrapping occurs on this text body. Words spill out without paying attention to the bounding rectangle boundaries. xlsx?Determines whether we wrap words within the bounding rectangle. xlsxUIf there is vertical text, determines what kind of vertical text is going to be used.DSee 20.1.10.82 "ST_TextVerticalType (Vertical Text Types)" (p. 3083) xlsxA special version of vertical text, where some fonts are displayed as if rotated by 90 degrees while some fonts (mostly East Asian) are displayed vertical.xlsx(Horizontal text. This should be default.xlsxA special version of vertical text, where some fonts are displayed as if rotated by 90 degrees while some fonts (mostly East Asian) are displayed vertical. The difference between this and the  C is the text flows top down then LEFT RIGHT, instead of RIGHT LEFTxlsxDetermines if all of the text is vertical orientation (each line is 90 degrees rotated clockwise, so it goes from top to bottom; each next line is to the left from the previous one).xlsxDetermines if all of the text is vertical orientation (each line is 270 degrees rotated clockwise, so it goes from bottom to top; each next line is to the right from the previous one).xlsxKDetermines if all of the text is vertical ("one letter on top of another").xlsx^Specifies that vertical WordArt should be shown from right to left rather than left to right.xlsxcText vertical overflow See 20.1.10.83 "ST_TextVertOverflowType (Text Vertical Overflow)" (p. 3083)xlsxiPay attention to top and bottom barriers. Provide no indication that there is text which is not visible.xlsxmPay attention to top and bottom barriers. Use an ellipsis to denote that there is text which is not visible.xlsxBOverflow the text and pay no attention to top and bottom barriers.xlsx"A string with rich text formattingTODO: horzOverflow, lIns, tIns, rIns, bIns, numCol, spcCol, rtlCol, fromWordArt, forceAA, upright, compatLnSpc, prstTxWarp, a_EG_TextAutofit, scene3d, a_EG_Text3D, extLstSee  CT_TextBody (p. 4034)xlsxQSpecifies the rotation that is being applied to the text within the bounding box.xlsxaSpecifies whether the before and after paragraph spacing defined by the user is to be respected.xlsxHDetermines whether the text can flow out of the bounding box vertically.xlsxQDetermines if the text within the given text body should be displayed vertically.xlsx=Specifies the wrapping options to be used for this text body.xlsx@Specifies the anchoring position of the txBody within the shape. xlsx$Specifies the centering of the text box. The way it works fundamentally is to determine the smallest possible "bounds box" for the text and then to center that "bounds box" accordingly. This is different than paragraph alignment, which aligns the text within the "bounds box" for the text.!xlsx2Paragraphs of text within the containing text body"xlsxThis simple type represents an angle in 60,000ths of a degree. Positive angles are clockwise (i.e., towards the positive y axis); negative angles are counter-clockwise (i.e., towards the negative y axis).(xlsx8solid fill with color specified by hexadecimal RGB colorxlsxAdd DrawingML namespace to namel     ! "#$%&'(z{|}~l"#!      $%&'(}|{z~None7?xlsxUSpecifies date base used for conversion of serial values to and from datetime valuesESee Annex L, L.2.16.9.1 "Date Conversion for Serial Values" (p. 4765)xlsx 1900 date base system, the lower limit is January 1, -9999 00:00:00, which has serial value -4346018. The upper-limit is December 31, 9999, 23:59:59, which has serial value 2,958,465.9999884. The base date for this date base system is December 30, 1899, which has a serial value of 0.xlsx.1904 backward compatibility date-base system, the lower limit is January 1, 1904, 00:00:00, which has serial value 0. The upper limit is December 31, 9999, 23:59:59, which has serial value 2,957,003.9999884. The base date for this date base system is January 1, 1904, which has a serial value of 0.xlsx_The evaluation of an expression can result in an error having one of a number of error values..See Annex L, L.2.16.8 "Error values" (p. 4764)xlsx#DIV/0!M - Intended to indicate when any number, including zero, is divided by zero.xlsx#N/Ah - Intended to indicate when a designated value is not available. For example, some functions, such as SUMX2MY2j, perform a series of operations on corresponding elements in two arrays. If those arrays do not have the same number of elements, then for some elements in the longer array, there are no corresponding elements in the shorter one; that is, one or more values in the shorter array are not available. This error value can be produced by calling the function NA.xlsx#NAME?n - Intended to indicate when what looks like a name is used, but no such name has been defined. For example, XYZ/3 , where XYZ is not a defined name. Total is & A10, where neither Total nor is is a defined name. Presumably, "Total is " & A10 was intended.  SUM(A1C10), where the range A1:C10 was intended.xlsx#NULL!k - Intended to indicate when two areas are required to intersect, but do not. For example, In the case of  SUM(B1 C1), the space between B1 and C1L is treated as the binary intersection operator, when a comma was intended.xlsx#NUM! - Intended to indicate when an argument to a function has a compatible type, but has a value that is outside the domain over which that function is defined. (This is known as a domain error.) For example, Certain calls to ASIN, ATANH, FACT, and SQRT might result in domain errors. Intended to indicate that the result of a function cannot be represented in a value of the specified type, typically due to extreme magnitude. (This is known as a range error.) For example,  FACT(1000) might result in a range error.xlsx#REF! - Intended to indicate when a cell reference is invalid. For example, If a formula contains a reference to a cell, and then the row or column containing that cell is deleted, a #REF!A error results. If a worksheet does not support 20,001 columns, OFFSET(A1,0,20000) results in a #REF! error.xlsx#VALUE! - Intended to indicate when an incompatible type argument is passed to a function, or an incompatible type operand is used with an operator. For example, In the case of a function argument, a number was expected, but text was provided. In the case of 1+ABC8, the binary addition operator is not defined for text.xlsxCell values include text, numbers and booleans, standard includes date format also but actually dates are represented by numbers with a date format assigned to a cell containing itxlsx A formula-See 18.18.35 "ST_Formula (Formula)" (p. 2457)xlsxMCommon type containing either simple string or rich formatted text. Used in si, comment and is elementsE.g. si spec says: "If the string is just a simple string with formatting applied at the cell level, then the String Item (si) should contain a single text element used to express the string. However, if the string in the cell is more complex - i.e., has formatting applied at the character level - then the string item shall consist of multiple rich text runs which collectively are used to express the string.". So we have either a single Text field, or else a list of  RichTextRuns, each of which is some Text with layout properties."TODO: Currently we do not support  phoneticPr, (Phonetic Properties, 18.4.3, p. 1723) or rPh! (Phonetic Run, 18.4.6, p. 1725).,Section 18.4.8, "si (String Item)" (p. 1725)See CT_Rst , p. 3903xlsxA sequence of cell references5See 18.18.76 "ST_Sqref (Reference Sequence)" (p.2488)xlsxExcel range (e.g. D13:H14), actually store as as  in xlsxxlsx)Excel cell or cell range reference (e.g. E3) See 18.18.62 ST_Ref (p. 2482)xlsxKconvert column number (starting from 1) to its textual form (e.g. 3 -> "C")xlsx reverse to xlsxRender position in  (row, col) format to an Excel reference. mkCellRef (2, 4) == "D2"xlsx reverse to  mkCellRefxlsx reverse to  mkCellRefJ expecting valid reference and failig with a standard error message like "Bad cell reference XXX"xlsx Render range  mkRange (2, 4) (6, 8) == "D2:H6"xlsx reverse to xlsxJConvertts serial value into datetime according to the specified date base Hshow (dateFromNumber DateBase1900 42929.75) == "2017-07-13 18:00:00 UTC"xlsx#Converts datetime into serial valuexlsxSee CT_Rst , p. 3903xlsxSee CT_Rst , p. 3903xlsxSee  ST_Formula , p. 3873xlsxSee  ST_Formula , p. 3873''None"#7:xlsxState of the sheet's pane.6Section 18.18.53 "ST_PaneState (Pane State)" (p. 2711)xlsxPanes are frozen, but were not split being frozen. In this state, when the panes are unfrozen again, a single pane results, with no split. In this state, the split bars are not adjustable.xlsxPanes are frozen and were split before being frozen. In this state, when the panes are unfrozen again, the split remains, but is adjustable.xlsx[Panes are split, but not frozen. In this state, the split bars are adjustable by the user.xlsx Pane type1Section 18.18.52 "ST_Pane (Pane Types)" (p. 2710)xlsxGBottom left pane, when both vertical and horizontal splits are applied.This value is also used when only a horizontal split has been applied, dividing the pane into upper and lower regions. In that case, this value specifies the bottom pane. xlsxDTop left pane, when both vertical and horizontal splits are applied.This value is also used when only a horizontal split has been applied, dividing the pane into upper and lower regions. In that case, this value specifies the top pane.This value is also used when only a vertical split has been applied, dividing the pane into right and left regions. In that case, this value specifies the left pane xlsxETop right pane, when both vertical and horizontal splits are applied.This value is also used when only a vertical split has been applied, dividing the pane into right and left regions. In that case, this value specifies the right pane. xlsxView setting of the sheet?Section 18.18.69 "ST_SheetViewType (Sheet View Type)" (p. 2726) xlsx Normal viewxlsxPage break previewxlsxPage layout viewxlsxWorksheet view pane.Section 18.3.1.66 "pane (View Pane)" (p. 1843)xlsxThe pane that is active.xlsxbIndicates whether the pane has horizontal / vertical splits, and whether those splits are frozen.xlsx]Location of the top left visible cell in the bottom right pane (when in Left-To-Right mode).xlsxHorizontal position of the split, in 1/20th of a point; 0 (zero) if none. If the pane is frozen, this value indicates the number of columns visible in the top pane.xlsxVertical position of the split, in 1/20th of a point; 0 (zero) if none. If the pane is frozen, this value indicates the number of rows visible in the left pane.xlsxWorksheet view selection.3Section 18.3.1.78 "selection (Selection)" (p. 1864)xlsxLocation of the active cellxlsx0-based index of the range reference (in the array of references listed in sqref) containing the active cell. Only used when the selection in sqref is not contiguous. Therefore, this value needs to be aware of the order in which the range references are written in sqref.<When this value is out of range then activeCell can be used.xlsx)The pane to which this selection belongs.xlsx<Range of the selection. Can be non-contiguous set of ranges.xlsxWorksheet viewA single sheet view definition. When more than one sheet view is defined in the file, it means that when opening the workbook, each sheet view corresponds to a separate window within the spreadsheet application, where each window is showing the particular sheet containing the same workbookViewId value, the last sheetView definition is loaded, and the others are discarded. When multiple windows are viewing the same sheet, multiple sheetView elements (with corresponding workbookView entries) are saved. TODO: The pivotSelection and extLst child elements are unsupported.<See Section 18.3.1.87 "sheetView (Worksheet View)" (p. 1880)xlsxIndex to the color value for row/column text headings and gridlines. This is an 'index color value' (ICV) rather than rgb value. xlsxFlag indicating that the consuming application should use the default grid lines color (system dependent). Overrides any color specified in colorId.!xlsxFlag indicating whether the sheet is in 'right to left' display mode. When in this mode, Column A is on the far right, Column B ;is one column left of Column A, and so on. Also, information in cells is displayed in the Right to Left format."xlsx;Flag indicating whether this sheet should display formulas.#xlsx<Flag indicating whether this sheet should display gridlines.$xlsxFlag indicating whether the sheet has outline symbols visible. This flag shall always override SheetPr element's outlinePr child element whose attribute is named showOutlineSymbols when there is a conflict.%xlsxIFlag indicating whether the sheet should display row and column headings.&xlsx#Show the ruler in Page Layout View.'xlsxFlag indicating whether page layout view shall display margins. False means do not display left, right, top (header), and bottom (footer) margins (even when there is data in the header or footer).(xlsxFlag indicating whether the window should show 0 (zero) in cells containing zero value. When false, cells with zero value appear blank instead of showing the number zero.)xlsxFlag indicating whether this sheet is selected. When only 1 sheet is selected and active, this value should be in synch with the activeTab value. In case of a conflict, the Start Part setting wins and sets the active sheet tab.QMultiple sheets can be selected, but only one sheet shall be active at one time.*xlsxLocation of the top left visible cell Location of the top left visible cell in the bottom right pane (when in Left-to-Right mode).+xlsxIndicates the view type.,xlsxFlag indicating whether the panes in the window are locked due to workbook protection. This is an option when the workbook structure is protected.-xlsxhZero-based index of this workbook view, pointing to a workbookView element in the bookViews collection.!NOTE: This attribute is required..xlsxWindow zoom magnification for current view representing percent values. This attribute is restricted to values ranging from 10 to 400. Horizontal & Vertical scale together./xlsxZoom magnification to use when in normal view, representing percent values. This attribute is restricted to values ranging from 10 to 400. Horizontal & Vertical scale together.0xlsxZoom magnification to use when in page layout view, representing percent values. This attribute is restricted to values ranging from 10 to 400. Horizontal & Vertical scale together.1xlsxZoom magnification to use when in page break preview, representing percent values. This attribute is restricted to values ranging from 10 to 400. Horizontal & Vertical scale together.2xlsxWorksheet view pane3xlsxWorksheet view selection#Minimum of 0, maximum of 4 elementsqxlsxSee  ST_PaneState , p. 3929sxlsxSee ST_Pane , p. 3914uxlsxSee ST_SheetViewType , p. 3913wxlsxSee  CT_Selection , p. 3914yxlsxSee CT_Pane , p. 3913{xlsxSee  CT_SheetView , p. 3913|xlsxSee  ST_PaneState , p. 3929}xlsxSee ST_Pane , p. 3914~xlsxSee ST_SheetViewType , p. 3913xlsxSee CT_Pane , p. 3913xlsxSee  CT_Selection , p. 3914xlsxSee  CT_SheetView , p. 3913xlsx NOTE: The   instance for  sets the required attribute - to 0.O      !"#$%&'()*+,-./0123RSTUVWXYZ[\]^_`abcdefghijklmnoO !"#$%&'()*+,-./0123     RSUWXYZ[\]^_`abcdefTVghijklmnoNone"#7t xlsxZData consolidation functions specified by the user and used to consolidate ranges of dataTSee 18.18.17 "ST_DataConsolidateFunction (Data Consolidation Functions)" (p. 2447)xlsxThe average of the values.xlsxmThe number of data values. The Count consolidation function works the same as the COUNTA worksheet function.xlsxThe number of data values that are numbers. The Count Nums consolidation function works the same as the COUNT worksheet function.xlsxThe largest value.xlsxThe smallest value.xlsxThe product of the values.xlsxnAn estimate of the standard deviation of a population, where the sample is a subset of the entire population.xlsxbThe standard deviation of a population, where the population is all of the data to be summarized.xlsxThe sum of the values.xlsxdAn estimate of the variance of a population, where the sample is a subset of the entire population.xlsxXThe variance of a population, where the population is all of the data to be summarized.xlsx9Sort orders that can be applied to fields in a PivotTable;See 18.18.28 "ST_FieldSortType (Field Sort Type)" (p. 2454)//None"#7B  None"#7+xlsx0Specifies the possible positions for tick marks.xlsx6(Cross) Specifies the tick marks shall cross the axis.xlsx@(Inside) Specifies the tick marks shall be inside the plot area.xlsx.(None) Specifies there shall be no tick marks.xlsxB(Outside) Specifies the tick marks shall be outside the plot area.xlsxFSettings for the data labels for an entire series or the entire chartTODO: numFmt, spPr, txPr, dLblPos, showBubbleSize, separator, showLeaderLines, leaderLines See 21.2.2.49 "dLbls (Data Labels)" (p. 3384) xlsx5integer between 2 and 72, specifying a size in points xlsxA series on a scatter chart-TODO: dPt, trendline, errBars, smooth, extLstSee  CT_ScatterSer (p. 4064)xlsxA series on a pie chartTODO: explosion, cat, extLstSee  CT_PieSer (p. 4065)xlsxPnormally you should set fill for chart datapoints to make them properly coloredxlsxA series on a bar chartTTODO: invertIfNegative, pictureOptions, dPt, trendline, errBars, cat, shape, extLstSee  CT_BarSer (p. 4064) xlsxA series on an area chart:TODO: pictureOptions, dPt, trendline, errBars, cat, extLstSee  CT_AreaSer (p. 4065)%xlsxA series on a line chart*TODO: dPt, trendline, errBars, cat, extLstSee  CT_LineSer (p. 4064)*xlsx-currently only reference formula is supported,xlsx+Specifies common series options TODO: spPrSee  EG_SerShared (p. 4063).xlsxmspecifies text for a series name, without rich text formatting currently only reference formula is supported0xlsxSingle data point optionsETODO: invertIfNegative, bubble3D, explosion, pictureOptions, extLst*See 21.2.2.52 "dPt (Data Point)" (p. 3384)4xlsx Possible styles of scatter chartNote: It appears that even for 8B style Exel draws a line between chart points if otline fill for H isn't set to so it's not quite clear how could Excel use this property9See 21.2.3.40 "ST_ScatterStyle (Scatter Style)" (p. 3455);xlsx#Possible directions for a bar chart2See 21.2.3.3 "ST_BarDir (Bar Direction)" (p. 3441)>xlsx"Possible groupings for a bar chart6See 21.2.3.4 "ST_BarGrouping (Bar Grouping)" (p. 3441)?xlsxVSpecifies that the chart series are drawn next to each other along the category axis.@xlsx{(100% Stacked) Specifies that the chart series are drawn next to each other along the value axis and scaled to total 100%.AxlsxZ(Stacked) Specifies that the chart series are drawn next to each other on the value axis.BxlsxH(Standard) Specifies that the chart series are drawn on the value axis.CxlsxPossible groupings for a chart0See 21.2.3.17 "ST_Grouping (Grouping)" (p. 3446)Dxlsx{(100% Stacked) Specifies that the chart series are drawn next to each other along the value axis and scaled to total 100%.ExlsxZ(Stacked) Specifies that the chart series are drawn next to each other on the value axis.FxlsxH(Standard) Specifies that the chart series are drawn on the value axis.GxlsxSpecific Chart TODO: area3DChart, line3DChart, stockChart, radarChart, pie3DChart, doughnutChart, bar3DChart, ofPieChart, surfaceChart, surface3DChart, bubbleChartOxlsx(specifies that the marker shall be shownPxlsxbspecifies the line connecting the points on the chart shall be smoothed using Catmull-Rom splinesZxlsxPb (Bottom) Specifies that the legend shall be drawn at the bottom of the chart.[xlsxLl (Left) Specifies that the legend shall be drawn at the left of the chart.\xlsxNr (Right) Specifies that the legend shall be drawn at the right of the chart.]xlsxJt (Top) Specifies that the legend shall be drawn at the top of the chart.^xlsxWtr (Top Right) Specifies that the legend shall be drawn at the top right of the chart.cxlsx?This simple type specifies the possible ways to display blanks.=See 21.2.3.10 "ST_DispBlanksAs (Display Blanks As)" (p. 3444)dxlsx3Specifies that blank values shall be left as a gap.exlsx9Specifies that blank values shall be spanned with a line.fxlsx5Specifies that blank values shall be treated as zero.gxlsx Chart title)TODO: layout, overlay, spPr, txPr, extLstixlsxMain Chart holder, combines TODO: title, autoTitleDeleted, pivotFmts view3D, floor, sideWall, backWall, showDLblsOverMax, extLstxlsxAdd chart namespace to name      !$#"%&+*)(',-/.01324:98765;=<>BA@?CFEDGLKJIHXWVUTSRQPONMY^]\[Z_`bacfedghijonmlkʇijonmlkghcfed_`baY^]\[ZGLKJIHXWVUTSRQPONMCFED>BA@?;=<4:987650132,-/.%&+*)(' !$#"     None"#.17=?HPV$5xlsxRSpecifies a unique identifier for the current DrawingML object within the current6TODO: make ids internal and consistent by constructionxlsxpSpecifies the name of the object. Typically, this is used to store the original file name of a picture object. xlsxAlternative Text for ObjectxlsxsThis element is used to set certain properties related to a drawing element on the client spreadsheet application.1see 20.5.2.3 "clientData (Client Data)" (p. 3156)xlsxgThis attribute indicates whether to disable selection on drawing elements when the sheet is protected.xlsxTThis attribute indicates whether to print drawing elements when printing the sheet.9xlsx2information about image file as a par of a drawing;xlsxFimage filename, images are assumed to be stored under path "xl/media/"<xlsxfimage content type, ECMA-376 advises to use "image/png" or "image/jpeg" if interoperability is wanted=xlsximage file contents?xlsx/basic function to create picture drawing objectNote: specification says that drawing element ids need to be unique within 1 document, otherwise /...document shall be considered non-conformant/.@xlsxhelper to retrive information about all picture files in particular drawing alongside with their anchorings (i.e. sizes and positions)Axlsxcsimple drawing object anchoring using one cell as a top lelft corner and dimensions of that objectxlsx+Add Spreadsheet DrawingML namespace to nameAxlsx<x+y coordinates of a cell used as top left anchoring cornerxlsx&size of drawing object to be anchorede     #"! $'&%.-,+*)(/2103487659:=<;>?@Az{|}~e9:=<;348765>/210$'&%.-,+*)(#"! ?@     A|{z~}None "#7@A+xlsxBetween operatorxlsx"Equal to" operatorxlsx"Greater than" operatorxlsx#"Greater than or equal to" operatorxlsx"Less than" operatorxlsx "Less than or equal to" operatorxlsx"Not between" operatorxlsx"Not equal to" operator22None7/vxlsx8Internal helper type for parsing data validation records?See 18.3.1.32 "dataValidation (Data Validation)" (p. 1614/1624)None "#7XIxlsxJThis collection represents a description of a conditional formatting rule.>See 18.3.1.10 "cfRule (Conditional Formatting Rule)" (p. 1602)xlsxThis is an index to a dxf element in the Styles Part indicating which cell formatting to apply when the conditional formatting rule criteria is met.xlsxThe priority of this conditional formatting rule. This value is used to determine which format should be evaluated and rendered. Lower numeric values are higher priority than higher numeric values, where 1 is the highest priority.xlsxvIf this flag is set, no rules with lower priority shall be applied over this rule, when this rule evaluates to true.xlsx1Describes a data bar conditional formatting rule.,See 18.3.1.28 "dataBar (Data Bar)" (p. 1621)xlsxGThe maximum length of the data bar, as a percentage of the cell width.xlsxGThe minimum length of the data bar, as a percentage of the cell width.xlsxUIndicates whether to show the values of the cells on which this data bar is applied. xlsx*Icon set type for conditional formatting. (, fields determine lower range bounds. I.e. :IconSet3Signs (CfPercent 0) (CfPercent 33) (CfPercent 67) say that 1st icon will be shown for values ranging from 0 to 33 percents, 2nd for 33 to 67 percent and the 3rd one for values from 67 to 100 percent. 018.42 "ST_IconSetType (Icon Set Type)" (p. 2463)xlsx23 traffic lights icon set with thick black border.xlsx2Describes an icon set conditional formatting rule.,See 18.3.1.49 "iconSet (Icon Set)" (p. 1645)xlsx icon set used, default value is IconSet3Trafficlights1xlsx!values describing per icon ranges xlsxAreverses the default order of the icons in the specified icon set!xlsxUindicates whether to show the values of the cells on which this icon set is applied. xlsx#internal type for (de)serializationKSee 18.18.13 "ST_CfvoType (Conditional Format Value Object Type)" (p. 2445) xlsxSThe minimum/ midpoint / maximum value for the gradient is determined by a formula. xlsxcIndicates that the maximum value in the range shall be used as the maximum value for the gradient. xlsxcIndicates that the minimum value in the range shall be used as the minimum value for the gradient. xlsxqIndicates that the minimum / midpoint / maximum value for the gradient is specified by a constant numeric value. xlsxValue indicates a percentage between the minimum and maximum values in the range shall be used as the minimum / midpoint / maximum value for the gradient. xlsx|Value indicates a percentile ranking in the range shall be used as the minimum / midpoint / maximum value for the gradient.(xlsxvDescribes the values of the interpolation points in a color scale, data bar or icon set conditional formatting rules.@See 18.3.1.11 "cfvo (Conditional Format Value Object)" (p. 1604)-xlsx9Conditions which could be used for conditional formatting<See 18.18.12 "ST_CfType (Conditional Format Type)" (p. 2443).xlsx~This conditional formatting rule highlights cells that are above (or maybe equal to) the average for all values in the range./xlsxThis conditional formatting rule highlights cells in the range that begin with the given text. Equivalent to using the LEFT() sheet function and comparing values.0xlsxjThis conditional formatting rule highlights cells that are below the average for all values in the range.1xlsxeThis conditional formatting rule highlights cells whose values fall in the bottom N percent bracket.2xlsx]This conditional formatting rule highlights cells whose values fall in the bottom N bracket.3xlsxjThis conditional formatting rule compares a cell value to a formula calculated result, using an operator.4xlsxThis conditional formatting rule creates a gradated color scale on the cells with specified colors for specified minimum and maximum.5xlsxThis conditional formatting rule creates a gradated color scale on the cells with specified colors for specified minimum, midpoint and maximum.6xlsxThis conditional formatting rule highlights cells that are completely blank. Equivalent of using LEN(TRIM()). This means that if the cell contains only characters that TRIM() would remove, then it is considered blank. An empty cell is also considered blank.7xlsxThis conditional formatting rule highlights cells with formula errors. Equivalent to using ISERROR() sheet function to determine if there is a formula error.8xlsxThis conditional formatting rule highlights cells containing given text. Equivalent to using the SEARCH() sheet function to determine whether the cell contains the text.9xlsxUThis conditional formatting rule displays a gradated data bar in the range of cells.:xlsxThis conditional formatting rule highlights cells without formula errors. Equivalent to using ISERROR() sheet function to determine if there is a formula error.;xlsxThis conditional formatting rule highlights cells that are not blank. Equivalent of using LEN(TRIM()). This means that if the cell contains only characters that TRIM() would remove, then it is considered blank. An empty cell is also considered blank.<xlsxThis conditional formatting rule highlights cells that do not contain given text. Equivalent to using the SEARCH() sheet function.=xlsx?This conditional formatting rule highlights duplicated values.>xlsxThis conditional formatting rule highlights cells ending with given text. Equivalent to using the RIGHT() sheet function and comparing values.?xlsx|This conditional formatting rule contains a formula to evaluate. When the formula result is true, the cell is highlighted.@xlsxSThis conditional formatting rule applies icons to cells according to their values.Axlsx_This conditional formatting rule highlights cells containing dates in the specified time period. The underlying value of the cell is evaluated, therefore the cell does not need to be formatted as a date to be evaluated. For example, with a cell containing the value 38913 the conditional format shall be applied if the rule requires a value of 7142006.BxlsxbThis conditional formatting rule highlights cells whose values fall in the top N percent bracket.CxlsxZThis conditional formatting rule highlights cells whose values fall in the top N bracket.DxlsxGThis conditional formatting rule highlights unique values in the range.ExlsxlThe number of standard deviations to include above or below the average in the conditional formatting rule.GxlsxFlag indicating whether the  aboveAverage and  belowAverageK criteria is inclusive of the average itself, or exclusive of that value.JxlsxUsed in a "contains dates" conditional formatting rule. These are dynamic time periods, which change based on the date the conditional formatting is refreshed / applied.:See 18.18.82 "ST_TimePeriod (Time Period Types)" (p. 2508)KxlsxA date in the last seven days.Lxlsx+A date occuring in the last calendar month.MxlsxA date occuring last week.Nxlsx+A date occuring in the next calendar month.OxlsxA date occuring next week.Pxlsx'A date occuring in this calendar month.QxlsxA date occuring this week.Rxlsx Today's date.SxlsxTomorrow's date.TxlsxYesterday's date.UxlsxLogical operation used in 3 conditionYSee 18.18.15 "ST_ConditionalFormattingOperator (Conditional Format Operators)" (p. 2446)Vxlsx'Begins with' operatorWxlsxBetween operatorXxlsxContains operatorYxlsx'Ends with' operatorZxlsx'Equal to' operator[xlsx'Greater than' operator\xlsx#'Greater than or equal to' operator]xlsx'Less than' operator^xlsx 'Less than or equal to' operator_xlsx'Not between' operator`xlsx'Does not contain' operatoraxlsx'Not equal to' operatorw      !"$#%'&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abwEFGHI()*+,%'&"$#-./0123456789:;<=>?@ABCDUVWXYZ[\]^_`aJKLMNOPQRST !     bNone7xlsxInternal helper type for parsing "conditionalFormatting recods TODO: pivot, extList Implementing those will need this implementation to be changedHSee 18.3.1.18 "conditionalFormatting (Conditional Formatting)" (p. 1610)None7>xlsxUser comment for a cell=TODO: the following child elements: guid, shapeId, commentPr,Section 18.7.3 "comment (Comment)" (p. 1749)xlsxRcell comment text, maybe formatted Section 18.7.7 "text (Comment Text)" (p. 1754)xlsxcomment authorNone"#7xlsxFhelper to render comment baloons vml file, currently uses fixed shapeNone"#7None"#7£xlsx^Currently cell details include cell values, style ids and cell formulas (inline strings from <is> subelements are ignored) xlsx'index of shared formula in worksheet's wsSharedFormulas property xlsx'formula type with type-specific options xlsxFormula for the cell.,TODO: array, dataTable formula types support%See 18.3.1.40 "f (Formula)" (p. 1636) xlsx6Specifies that this formula assigns a value to a name. xlsx`Indicates that this formula needs to be recalculated the next time calculation is performed. [ExampleT: This is always set on volatile functions, like =RAND(), and circular references.  end example] %xlsxMap containing cell values which are indexed by row and column if you need to use more traditional (x,y) indexing please you could use corresponding accessors from '+,          % & ' ( ) * +          * + ( ) & ' %None"#7 0 1 3 2 4 0 1 3 2 4None "#7=?X!'9 7xlsxAutoFilter temporarily hides rows based on a filter criteria, which is applied column by column to a table of datain the worksheet.TODO: sortState, extList9See 18.3.1.2 "autoFilter (AutoFilter Settings)" (p. 1596) ;xlsx.Specifies concrete type of dynamic filter used>See 18.18.26 "ST_DynamicFilterType (Dynamic Filter)" (p. 2452) <xlsx$Shows values that are above average. =xlsx$Shows values that are below average. >xlsxShows last month's dates. ?xlsx$Shows last calendar quarter's dates. @xlsx;Shows last week's dates, using Sunday as the first weekday. AxlsxShows last year's dates. Bxlsx8Shows the dates that are in January, regardless of year. Cxlsx8Shows the dates that are in October, regardless of year. Dxlsx9Shows the dates that are in November, regardless of year. Exlsx9Shows the dates that are in December, regardless of year. Fxlsx9Shows the dates that are in February, regardless of year. Gxlsx6Shows the dates that are in March, regardless of year. Hxlsx6Shows the dates that are in April, regardless of year. Ixlsx4Shows the dates that are in May, regardless of year. Jxlsx5Shows the dates that are in June, regardless of year. Kxlsx5Shows the dates that are in July, regardless of year. Lxlsx7Shows the dates that are in August, regardless of year. Mxlsx:Shows the dates that are in September, regardless of year. NxlsxShows next month's dates. Oxlsx$Shows next calendar quarter's dates. Pxlsx;Shows next week's dates, using Sunday as the first weekday. QxlsxShows next year's dates. Rxlsx!Common filter type not available. SxlsxJShows the dates that are in the 1st calendar quarter, regardless of year. TxlsxJShows the dates that are in the 2nd calendar quarter, regardless of year. UxlsxJShows the dates that are in the 3rd calendar quarter, regardless of year. VxlsxJShows the dates that are in the 4th calendar quarter, regardless of year. WxlsxShows this month's dates. Xxlsx$Shows this calendar quarter's dates. Yxlsx;Shows this week's dates, using Sunday as the first weekday. ZxlsxShows this year's dates. [xlsxShows today's dates. \xlsxShows tomorrow's dates. ]xlsxGShows the dates between the beginning of the year and today, inclusive. ^xlsxShows yesterday's dates. _xlsxgSpecifies dynamic filter criteria. These criteria are considered dynamic because they can change, either with the data itself (e.g., "above average") or with the current system date (e.g., show values for "today"). For any cells whose values do not meet the specified criteria, the corresponding rows shall be hidden from view when the filter is applied. c shall be required for  DynFilterTday,  ^,  \,  P,  Y,  @,  N,  W,  >,  O,  X,  ?,  Q,  Z,  A, and 'DynFilterYearToDate.The above criteria are based on a value range; that is, if today's date is September 22nd, then the range for thisWeek is the values greater than or equal to September 17 and less than September 24. In the thisWeek range, the lower value is expressed _dfoval&. The higher value is expressed using  _dfoMmaxVal.4These dynamic filters shall not require '_dfoVal or  c:  S,  T,  U,  V,  B,  F,  G,  H,  I,  J,  K,  L,  M,  C,  D and  E.The above criteria shall not specify the range using valIso and maxValIso because Q1 always starts from M1 to M3, and M1 is always January.CThese types of dynamic filters shall use valIso and shall not use  c:  < and  =Note: Specification lists valIso and maxIso to store datetime values but it appears that Excel doesn't use them and stored them as numeric values (as it does for datetimes in cell values)7See 18.3.2.5 "dynamicFilter (Dynamic Filter)" (p. 1715) bxlsx+A minimum numeric value for dynamic filter. cxlsx#A maximum value for dynamic filter. dxlsxSpecifies the color to filter by and whether to use the cell's fill or font color in the filter criteria. If the cell's font or fill color does not match the color specified in the criteria, the rows corresponding to those cells are hidden from view.<See 18.3.2.1 "colorFilter (Color Filter Criteria)" (p. 1712) fxlsxDFlag indicating whether or not to filter by the cell's fill color.  # indicates to filter by cell fill.  / indicates to filter by the cell's font color.oFor rich text in cells, if the color specified appears in the cell at all, it shall be included in the filter. gxlsx@Id of differential format record (dxf) in the Styles Part (see _styleSheetDxfs/) which expresses the color value to filter by. jxlsxsFlag indicating whether or not to filter by percent value of the column. A false value filters by number of items. kxlsxrTop or bottom value to use as the filter criteria. Example: "Filter by Top 10 Percent" or "Filter by Top 5 Items" lxlsx\The actual cell value in the range which is used to perform the comparison for this filter. nxlsx)Show results which are equal to criteria. oxlsx-Show results which are greater than criteria. pxlsx9Show results which are greater than or equal to criteria. qxlsx*Show results which are less than criteria. rxlsx6Show results which are less than or equal to criteria. sxlsx-Show results which are not equal to criteria. xxlsxSUsed to express a group of dates or times which are used in an AutoFilter criteria:Section 18.3.2.4 "dateGroupItem (Date Grouping)" (p. 1714) xlsx.The filterColumn collection identifies a particular column in the AutoFilter range and specifies filter information that has been applied to this column. If a column in the AutoFilter range has no criteria specified, then there is no corresponding filterColumn collection expressed for that column.9See 18.3.2.7 "filterColumn (AutoFilter Column)" (p. 1717) xlsxSpecifies the icon set and particular icon within that set to filter by. Icon is specified using zero-based index of an icon in an icon set.   means "no icon" xlsx@Specifies the bottom N (percent or number of items) to filter by xlsx=Specifies the top N (percent or number of items) to filter by_ 7 8 : 9 ; ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A @ ? > = < _ ` c b a d e g f h i l k j m s r q p o n t u w v x ~ } | { z y  _  x ~ } | { z y t u w v m s r q p o n h i l k j d e g f _ ` c b a ; ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A @ ? > = < 7 8 : 9 None"#7E& xlsxSingle table columnTODO: styling information7Section 18.5.1.3 "tableColumn (Table Column)" (p. 1735) xlsxA string representing the unique caption of the table column. This is what shall be displayed in the header row in the UI, and is referenced through functions. This name shall be unique per table. xlsxTables are ranges of data in the worksheet that have special behavior applied which allow users to better sort, analyze, format, manage, add, and delete data. Tables and table columns can also be referenced through formulas by the spreadsheet application using friendly names, making formula calculations that use tables much easier to understand and maintain. Tables provide a natural way for working with large sets of tabular data. NOTE: as headerRowCountp property isn't yet supported it's supposed that it's library user liability to guarantee that the 1st row of  / range contains cells with names specified in  nSection 18.5 "Tables" (p. 1728) Section 18.5.1 "Tables" (p. 1729) Section 18.5.1.2 "table (Table)" (p. 1730) xlsxkA string representing the name of the table. This is the name that shall be used in formula references, and displayed in the UI to the spreadsheet user. This name shall not have any spaces in it, and it shall be unique amongst all other displayNames and definedNames in the workbook. The character lengths and restrictions are the same as for definedNames . xlsxCA string representing the name of the table that is used to reference the table programmatically through the spreadsheet applications object model. This string shall be unique per table per sheet. It has the same length and character restrictions as for displayName. By default this should be the same as the table's   . This name should also be kept in synch with the displayName when the displayName is updated in the UI by the spreadsheet user. xlsx^The range on the relevant sheet that the table occupies expressed using A1 style referencing. xlsxUcolumns of this table, specification requires any table to include at least 1 column None"#7t xlsxXlsx worksheet xlsx column widths xlsx)custom row properties (height, style) map xlsx"data mapped by (row, column) pairs xlsxSpreadsheetML Drawing xlsxlist of cell merges xlsx-Column range (from cwMin to cwMax) properties xlsxFirst column affected by this  ColumnWidth record. xlsxLast column affected by this  ColumnWidth record. xlsxColumn width measured as the number of characters of the maximum digit width of the numbers 0, 1, 2, ..., 9 as rendered in the normal style's font.XSee longer description in Section 18.3.1.13 "col (Column Width & Formatting)" (p. 1605) xlsxDefault style for the affected column(s). Affects cells not yet allocated in the column(s). In other words, this style applies to new columns. xlsxHFlag indicating if the affected column(s) are hidden on this worksheet. xlsxVFlag indicating if the outlining of the affected column(s) is in the collapsed state. xlsxAFlag indicating if the specified column(s) is set to 'best fit'. xlsx@Properties of a row. See 18.3.1.73 "row (Row)" for more details xlsxRow height in points xlsxStyle to be applied to row xlsxWhether row is visible or not xlsx"Height of a row in points (1/72in) xlsxRow height is set by the user xlsx.Row height is set automatically by the program #xlsx Defined namesNEach defined name consists of a name, an optional local sheet ID, and a value.This element defines the collection of defined names for this workbook. Defined names are descriptive names to represent cells, ranges of cells, formulas, or constant values. Defined names can be used to represent a range on any worksheet.LExcel also defines a number of reserved names with a special interpretation:_xlnm.Print_Area8 specifies the workbook's print area. Example value: SheetName!$A:$A,SheetName!$1:$4_xlnm.Print_TitlesP specifies the row(s) or column(s) to repeat at the top of each printed page._xlnm.Sheet_Title:refers to a sheet title.gand others. See Section 18.2.6, "definedNames (Defined Names)" (p. 1728) of the spec (second edition).GNOTE: Right now this is only a minimal implementation of defined names. %xlsxKStructured representation of Xlsx file (currently a subset of its contents) +xlsxfdate base to use when converting serial value (i.e. 'CellDouble d') into date-time. Default value is DSee also 18.17.4.1 "Date Conversion for Serial Date-Times" (p. 2067) PxlsxRender h$This is used to render a structured h into a raw XML  , document. Actually  replacing  , with h& would mean we would need to write a parser for h as well (and would moreover require that we support the full style sheet specification, which is still quite a bit of work). QxlsxParse hThis is used to parse raw  , into structured ht currently not all of the style sheet specification is supported so parser (and the data model) is to be completed Rxlsx~converts cells mapped by (row, column) into rows which contain row index and cells as pairs of column indices and cell values Sxlsx reverse to  Rp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst      !"#$%&'()*+,-./0123opqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGghijklmnopqrstuvwxy      !"#$%&'(z{|}~      !"#$%&'()*+,-./0123RSTUVWXYZ[\]^_`abcdefghijklmno      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno      !"#$%&'()*+,-./0123456789:;<=>?@Az{|}~      !"$#%'&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab          % & ' ( ) 7 8 9 : ; < = > ? @ 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 e f g h i j k l m n o p q r s t u v w x y z { | } ~          # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < J K L M N O P Q R S| % & ' ( ) * + , - . # $   3456789:;<=>?@ABCDEFG %              M N L J K 1 9 0 4 5 ; 6 2 3 7 / < 8 : ) ( & ' O P Q  R S!None"#7 WxlsxShared string tablelA workbook can contain thousands of cells containing string (non-numeric) data. Furthermore this data is very likely to be repeated across many rows or columns. The goal of implementing a single string table that is shared across the workbook is to improve performance in opening and saving the file by only reading and writing the repetitive information once.;Relevant parts of the EMCA standard (2nd edition, part 1,  Ehttp://www.ecma-international.org/publications/standards/Ecma-376.htmc), page numbers refer to the page in the PDF rather than the page number as printed on the page):wSection 18.4, "Shared String Table" (p. 1712) in particular subsection 18.4.9, "sst (Shared String Table)" (p. 1726) TODO: The extLst( child element is currently unsupported. [xlsxConstruct the SharedStringsTable from an existing document xlsx Internal generalization used by  \ and  ] _xlsxSee CT_Sst , p. 3902The optional attributes count and  uniqCount% are being ignored at least currently `xlsxSee CT_Sst , p. 3902. TODO: The count and  uniqCount& attributes are currently unsupported. W X Y Z [ \ ] ^ W X Y [ \ ] ^ Z"None"#7PX mxlsxReads  % from raw data (lazy bytestring) nxlsxReads  %' from raw data (lazy bytestring) using xeno library using some "cheating":not doing 100% xml validationreplacing only  1https://www.w3.org/TR/REC-xml/#sec-predefined-entpredefined entities and  )https://www.w3.org/TR/REC-xml/#NT-CharRefUnicode character references) (without checking codepoint validity)almost not using XML namespaces oxlsxReads  %/ from raw data (lazy bytestring), failing with   on parse error pxlsxFast parsing with   on parse error, see  n xlsx>Get xml cursor from the specified file inside the zip archive. xlsxJGet xml cursor from the given file, failing with MissingFile if not found. xlsxGet shared string table xlsx@readWorkbook pulls the names of the sheets and the defined names f g h i j k l m n o p m o n p g h i j k l f#None7HSVX wxlsx'lens giving access to a worksheet from  % object by its name xxlsx  variant of  w lensNote:k if there is no such sheet in this workbook then new sheet will be added as the last one to the sheet list yxlsxlens giving access to a cell in some worksheet by its position, by default row+column index is used so this lens is a synonym of  z zxlsx"lens to access cell in a worksheet {xlsxJlens to access cell in a worksheet using more traditional x+y coordinates |xlsxHaccessor that can read, write or delete cell in a worksheet synonym of  } so uses row+column index }xlsx1lens to read, write or delete cell in a worksheet ~xlsxalens to read, write or delete cell in a worksheet using more traditional x+y or row+column index xlsxblens to read, write or delete cell value in a worksheet with row+column coordinates, synonym for  cellValueRC xlsxblens to read, write or delete cell value in a worksheet using row+column coordinates of that cell xlsxZlens to read, write or delete cell value in a worksheet using traditional x+y coordinates w x y z { | } ~  w x y z { | } ~  $None"#7SX: xlsxIn reverse order xlsx'Formatting options used to format cellsTODOs:Add a number format (], b)*Add references to the named style sheets (e) xlsxCell with formatting.  property of   is ignoredSee   for more details. xlsxThe resulting stylesheet xlsx?The final map of conditional formatting rules applied to ranges xlsxResult of formattingSee  xlsx The final  %; see  xlsxThe final stylesheet; see  ( (and  P) xlsx#The final list of cell merges; see  xlsx1Higher level API for creating formatted documents0Creating formatted Excel spreadsheets using the 3 datatype directly, even with the support for the h; datatype, is fairly painful. This has a number of causes:The  datatype wants an  7 for the style, which is supposed to point into the k part of a stylesheet. However, this can be difficult to work with, as it requires manual tracking of cell style IDs, which in turns requires manual tracking of font IDs, border IDs, etc.LRow-span and column-span properties are set on the worksheet as a whole ( 5") rather than on individual cells.Excel does not correctly deal with borders on cells that span multiple columns or rows. Instead, these rows must be set on all the edge cells in the block. Again, this means that this becomes a global property of the spreadsheet rather than properties of individual cells.<This function deals with all these problems. Given a map of  s, which refer directly to s, >s, etc. (rather than font IDs, border IDs, etc.), and an initial stylesheet, it recovers all possible sharing, constructs IDs, and then constructs the final  %6, as well as the final stylesheet and list of merges.If you don't already have a h) you want to use as starting point then 3 is a good choice. xlsx reverse to  h which allows to get a map of formatted cells from an existing worksheet and its workbook's style sheet xlsx3Format a cell with (potentially) rowspan or colspan xlsx%Cell block corresponding to a single   A single  U might have a colspan or rowspan greater than 1. Although Excel obviously supports cell merges, it does not correctly apply borders to the cells covered by the rowspan or colspan. Therefore we create a block of cells in this function; the top-left is the cell proper, and the remaining cells are the cells covered by the rowspan/colspan.0Also returns the cell merge instruction, if any.- - %None"#7  &None"#7>P xlsxWrites  % to raw data (lazy bytestring) xlsxfully qualified XML name xlsx6fully qualified XML name from prefix to ns URL mapping xlsx5Creates element holding reference to some linked file  +None      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst      !"#$%&'()*+,-./0123opqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGghijklmnopqrstuvwxy      !"#$%&'(z{|}~      !"#$%&'()*+,-./0123RSTUVWXYZ[\]^_`abcdefghijklmno      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno      !"#$%&'()*+,-./0123456789:;<=>?@Az{|}~      !"$#%'&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab          % & ' ( ) 7 8 9 : ; < = > ? @ 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 e f g h i j k l m n o p q r s t u v w x y z { | } ~          # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < J K L M N O P Q R S f g h i j k l m n o p w x y z { | } ~  -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abbcdefghijklmnopqrstuvwxyz{{|}~~      !"#$%&'()*+,-./01234567889:;<<=>?@ABCCDEFGHIJKLMNOPQRSSTUVWWXYYZ[\]^^_`aabcdefghijklmnnopqrstuvwxxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                       ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~                                                                           !!"#$%&'()**+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWWXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                    ! " # $ % & ' ( ) * + , - . / 0 0 1 2 3 4 4 5 6 7 7 8 9 : ; < = > ? @ A B B C D E F G H I J K L M N O O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~                                                                                                                                            (*     ! ! ! ! ! ! ! ! ! !! "! #! $! %! &! '" (" )" *" +" ," -" ." /" 0" 1" 2" 3" 4" 5" 6" 7" 8# 9# :# ;# <# =# ># ?# @# 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$ e$ f$ g$ h$ i$ j$ k$ k$ l$ m$ n$ n$ o$ p$ q$ r$ s$ t$ u$)$ v$ w$ x$ y$ z$ {$ |$ }$ ~$ $ $ % % % % % % % % % % % % & & & & & & &      -.           !  " " " "  $  $ $ & & & !xlsx-0.8.2-8DMKXE4frdJ3Wwt78d3mZGCodec.Xlsx.TypesCodec.Xlsx.Parser.Internal.UtilCodec.Xlsx.Parser.Internal.FastCodec.Xlsx.Parser.Internal&Codec.Xlsx.Types.Internal.ContentTypesCodec.Xlsx.Writer.InternalCodec.Xlsx.Types.VariantCodec.Xlsx.Types.StyleSheetCodec.Xlsx.Types.RichTextCodec.Xlsx.Types.ProtectionCodec.Xlsx.Types.PageSetup*Codec.Xlsx.Types.Internal.CustomPropertiesCodec.Xlsx.Types.Internal'Codec.Xlsx.Types.Internal.RelationshipsCodec.Xlsx.Types.Drawing.CommonCodec.Xlsx.Types.CommonCodec.Xlsx.Types.SheetViewsCodec.Xlsx.Types.PivotTable$Codec.Xlsx.Types.PivotTable.InternalCodec.Xlsx.Types.Drawing.ChartCodec.Xlsx.Types.DrawingCodec.Xlsx.Types.DataValidation Codec.Xlsx.Types.Internal.DvPair&Codec.Xlsx.Types.ConditionalFormatting Codec.Xlsx.Types.Internal.CfPairCodec.Xlsx.Types.Comment&Codec.Xlsx.Types.Internal.CommentTable%Codec.Xlsx.Parser.Internal.PivotTableCodec.Xlsx.Types.Cell%Codec.Xlsx.Types.Internal.FormulaDataCodec.Xlsx.Types.AutoFilterCodec.Xlsx.Types.Table+Codec.Xlsx.Types.Internal.SharedStringTableCodec.Xlsx.ParserCodec.Xlsx.LensCodec.Xlsx.Formatted%Codec.Xlsx.Writer.Internal.PivotTableCodec.Xlsx.WriterFormatrenderStyleSheet formattedparseStyleSheet Codec.XlsxLens'1data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQData.Default.Classdefdecimal eitherDecimalrationaleitherRationalboolean eitherBoolean FromAttrBs fromAttrBs FromXenoNode fromXenoNodecollectChildren maybeChild requireChild childListmaybeFromChild fromChild fromChildList maybeParserequireAndParse childListAnymaybeElementVal toAttrParser maybeAttrBsunexpectedAttrBsfromAttr maybeAttr fromAttrDefparseAttributes nsPrefixes addPrefix contentBscontentX$fMonadChildCollector$fAlternativeChildCollector$fApplicativeChildCollector$fFunctorChildCollector$fFunctorAttrParser$fApplicativeAttrParser$fMonadAttrParser$fFromAttrBsText$fFromAttrBsDouble$fFromAttrBsInt$fFromAttrBsBool$fFromAttrBsByteString!$fExceptionEntityReplaceException$fShowEntityReplaceException FromAttrVal fromAttrVal FromCursor fromCursorParseException nodeElNameIs fromAttributefromAttributeDefmaybeAttributefromElementValuemaybeElementValuemaybeElementValueDefmaybeBoolElementValuemaybeFromElement attrValIscontentOrEmpty readSuccess readFailure invalidTextdefaultReadFailuren_$fExceptionParseException$fFromAttrValBool$fFromAttrValDouble$fFromAttrValInteger$fFromAttrValInt$fFromAttrValText$fShowParseException$fGenericParseException ContentTypes ctDefaultsctTypesOverride ovrPartNameovrContentType CtDefault dfltExtensiondfltContentTypelookupctcontentTypesNs$fFromCursorCtDefault$fFromCursorOverride$fFromCursorContentTypes $fEqCtDefault$fShowCtDefault$fGenericCtDefault $fEqOverride$fShowOverride$fGenericOverride$fEqContentTypes$fShowContentTypes$fGenericContentTypes ToAttrVal toAttrVal ToElement toElement ToDocument toDocumentdocumentFromElementdocumentFromNsElementdocumentFromNsPrefElementcountedElementList elementListelementListSimplenonEmptyElListSimple leafElement emptyElementelementContent0elementContentelementContentPreserved elementValueelementValueDef.=.=?setAttraddNS mainNamespacetxtdtxtbtxti justNonDef justFalsejustTrue$fToAttrValBool$fToAttrValDouble$fToAttrValInteger$fToAttrValInt $fToAttrVal[]$fToAttrValTextVariantVtBlobVtBool VtDecimalVtLpwstrVtIntvariantFromNodekillWhitespace decodeBase64vt docPropsVtNsvariantToElement$fFromCursorVariant$fNFDataVariant $fEqVariant $fShowVariant$fGenericVariant ReadingOrderReadingOrderContextDependentReadingOrderLeftToRightReadingOrderRightToLeft PatternTypePatternTypeDarkDownPatternTypeDarkGrayPatternTypeDarkGridPatternTypeDarkHorizontalPatternTypeDarkTrellisPatternTypeDarkUpPatternTypeDarkVerticalPatternTypeGray0625PatternTypeGray125PatternTypeLightDownPatternTypeLightGrayPatternTypeLightGridPatternTypeLightHorizontalPatternTypeLightTrellisPatternTypeLightUpPatternTypeLightVerticalPatternTypeMediumGrayPatternTypeNonePatternTypeSolid LineStyleLineStyleDashDotLineStyleDashDotDotLineStyleDashedLineStyleDottedLineStyleDouble LineStyleHairLineStyleMediumLineStyleMediumDashDotLineStyleMediumDashDotDotLineStyleMediumDashed LineStyleNoneLineStyleSlantDashDotLineStyleThick LineStyleThinFontVerticalAlignmentFontVerticalAlignmentBaselineFontVerticalAlignmentSubscript FontVerticalAlignmentSuperscript FontUnderlineFontUnderlineSingleFontUnderlineDoubleFontUnderlineSingleAccountingFontUnderlineDoubleAccountingFontUnderlineNone FontSchemeFontSchemeMajorFontSchemeMinorFontSchemeNone FontFamilyFontFamilyNotApplicableFontFamilyRomanFontFamilySwissFontFamilyModernFontFamilyScriptFontFamilyDecorativeCellVerticalAlignmentCellVerticalAlignmentBottomCellVerticalAlignmentCenter CellVerticalAlignmentDistributedCellVerticalAlignmentJustifyCellVerticalAlignmentTopCellHorizontalAlignmentCellHorizontalAlignmentCenter'CellHorizontalAlignmentCenterContinuous"CellHorizontalAlignmentDistributedCellHorizontalAlignmentFillCellHorizontalAlignmentGeneralCellHorizontalAlignmentJustifyCellHorizontalAlignmentLeftCellHorizontalAlignmentRight Protection_protectionHidden_protectionLockedImpliedNumberFormat NfGeneralNfZero Nf2Decimal NfMax3DecimalNfThousandSeparator2Decimal NfPercentNfPercent2DecimalNfExponent2DecimalNfSingleSpacedFractionNfDoubleSpacedFractionNfMmDdYyNfDMmmYyNfDMmmNfMmmYy NfHMm12Hr NfHMmSs12HrNfHMmNfHMmSsNfMdyHMmNfThousandsNegativeParensNfThousandsNegativeRed!NfThousands2DecimalNegativeParensNfThousands2DecimalNegativeRedNfMmSs NfOptHMmSsNfMmSs1DecimalNfExponent1DecimalNfTextPlaceHolderNfOtherImplied NumberFormatStdNumberFormatUserNumberFormatNumFmt _numFmtId _numFmtCode FormatCodeDxf_dxfFont _dxfNumFmt_dxfFill _dxfAlignment _dxfBorder_dxfProtectionFont _fontBold _fontCharset _fontColor _fontCondense _fontExtend _fontFamily _fontItalic _fontName _fontOutline _fontScheme _fontShadow_fontStrikeThrough _fontSize_fontUnderline_fontVertAlign FillPattern_fillPatternBgColor_fillPatternFgColor_fillPatternTypeFill _fillPatternColor_colorAutomatic _colorARGB _colorTheme _colorTint BorderStyle_borderStyleColor_borderStyleLineBorder_borderDiagonalDown_borderDiagonalUp_borderOutline _borderBottom_borderDiagonal _borderEnd_borderHorizontal _borderLeft _borderRight _borderStart _borderTop_borderVertical Alignment_alignmentHorizontal_alignmentIndent_alignmentJustifyLastLine_alignmentReadingOrder_alignmentRelativeIndent_alignmentShrinkToFit_alignmentTextRotation_alignmentVertical_alignmentWrapTextCellXf_cellXfApplyAlignment_cellXfApplyBorder_cellXfApplyFill_cellXfApplyFont_cellXfApplyNumberFormat_cellXfApplyProtection_cellXfBorderId _cellXfFillId _cellXfFontId_cellXfNumFmtId_cellXfPivotButton_cellXfQuotePrefix _cellXfId_cellXfAlignment_cellXfProtection StyleSheet_styleSheetBorders_styleSheetCellXfs_styleSheetFills_styleSheetFonts_styleSheetDxfs_styleSheetNumFmts fmtDecimalsfmtDecimalsZeroesstdNumberFormatIdidToStdNumberFormatfirstUserNumFmtId $fNFDataColor$fNFDataNumFmt$fNFDataImpliedNumberFormat$fNFDataNumberFormat$fNFDataProtection$fNFDataCellHorizontalAlignment$fNFDataCellVerticalAlignment$fNFDataFontFamily$fNFDataFontScheme$fNFDataFontUnderline$fNFDataFontVerticalAlignment $fNFDataFont$fNFDataLineStyle$fNFDataBorderStyle$fNFDataBorder$fNFDataPatternType$fNFDataFillPattern $fNFDataFill$fNFDataReadingOrder$fNFDataAlignment $fNFDataDxf$fNFDataCellXf$fNFDataStyleSheet $fEqColor $fOrdColor $fShowColor$fGenericColor $fEqNumFmt $fOrdNumFmt $fShowNumFmt$fGenericNumFmt$fEqImpliedNumberFormat$fOrdImpliedNumberFormat$fShowImpliedNumberFormat$fGenericImpliedNumberFormat$fEqNumberFormat$fOrdNumberFormat$fShowNumberFormat$fGenericNumberFormat$fEqProtection$fOrdProtection$fShowProtection$fGenericProtection$fEqCellHorizontalAlignment$fOrdCellHorizontalAlignment$fShowCellHorizontalAlignment $fGenericCellHorizontalAlignment$fEqCellVerticalAlignment$fOrdCellVerticalAlignment$fShowCellVerticalAlignment$fGenericCellVerticalAlignment$fEqFontFamily$fOrdFontFamily$fShowFontFamily$fGenericFontFamily$fEqFontScheme$fOrdFontScheme$fShowFontScheme$fGenericFontScheme$fEqFontUnderline$fOrdFontUnderline$fShowFontUnderline$fGenericFontUnderline$fEqFontVerticalAlignment$fOrdFontVerticalAlignment$fShowFontVerticalAlignment$fGenericFontVerticalAlignment$fEqFont $fOrdFont $fShowFont $fGenericFont $fEqLineStyle$fOrdLineStyle$fShowLineStyle$fGenericLineStyle$fEqBorderStyle$fOrdBorderStyle$fShowBorderStyle$fGenericBorderStyle $fEqBorder $fOrdBorder $fShowBorder$fGenericBorder$fEqPatternType$fOrdPatternType$fShowPatternType$fGenericPatternType$fEqFillPattern$fOrdFillPattern$fShowFillPattern$fGenericFillPattern$fEqFill $fOrdFill $fShowFill $fGenericFill$fEqReadingOrder$fOrdReadingOrder$fShowReadingOrder$fGenericReadingOrder $fEqAlignment$fOrdAlignment$fShowAlignment$fGenericAlignment$fEqDxf$fOrdDxf $fShowDxf $fGenericDxf $fEqCellXf $fOrdCellXf $fShowCellXf$fGenericCellXf$fEqStyleSheet$fOrdStyleSheet$fShowStyleSheet$fGenericStyleSheetstyleSheetBordersstyleSheetCellXfsstyleSheetDxfsstyleSheetFillsstyleSheetFontsstyleSheetNumFmtscellXfAlignmentcellXfApplyAlignmentcellXfApplyBordercellXfApplyFillcellXfApplyFontcellXfApplyNumberFormatcellXfApplyProtectioncellXfBorderId cellXfFillId cellXfFontIdcellXfIdcellXfNumFmtIdcellXfPivotButtoncellXfProtectioncellXfQuotePrefix dxfAlignment dxfBorderdxfFilldxfFont dxfNumFmt dxfProtectionalignmentHorizontalalignmentIndentalignmentJustifyLastLinealignmentReadingOrderalignmentRelativeIndentalignmentShrinkToFitalignmentTextRotationalignmentVerticalalignmentWrapText borderBottomborderDiagonalborderDiagonalDownborderDiagonalUp borderEndborderHorizontal borderLeft borderOutline borderRight borderStart borderTopborderVerticalborderStyleColorborderStyleLine colorARGBcolorAutomatic colorTheme colorTint fillPatternfillPatternBgColorfillPatternFgColorfillPatternTypefontBold fontCharset fontColor fontCondense fontExtend fontFamily fontItalicfontName fontOutline fontScheme fontShadowfontSizefontStrikeThrough fontUnderline fontVertAlignprotectionHiddenprotectionLockedminimalStyleSheet$fFromCursorProtection$fFromAttrValReadingOrder"$fFromAttrValCellVerticalAlignment$$fFromAttrValCellHorizontalAlignment$fFromCursorAlignment$fFromCursorNumFmt$fFromCursorDxf$fFromCursorCellXf$fFromAttrValLineStyle$fFromCursorBorderStyle$fFromCursorBorder$fFromAttrValPatternType$fFromCursorFillPattern$fFromCursorFill$fFromAttrBsFontScheme$fFromAttrValFontScheme!$fFromAttrBsFontVerticalAlignment"$fFromAttrValFontVerticalAlignment$fFromAttrBsFontUnderline$fFromAttrValFontUnderline$fFromXenoNodeColor$fFromCursorColor$fFromAttrBsFontFamily$fFromAttrValFontFamily$fFromCursorFont$fFromCursorStyleSheet$fToAttrValReadingOrder$fToAttrValPatternType$fToAttrValLineStyle $fToAttrValFontVerticalAlignment$fToAttrValFontUnderline$fToAttrValFontScheme$fToAttrValFontFamily $fToAttrValCellVerticalAlignment"$fToAttrValCellHorizontalAlignment$fToElementProtection$fToElementNumFmt$fToElementFont$fToElementFillPattern$fToElementFill$fToElementColor$fToElementBorderStyle$fToElementBorder$fToElementAlignment$fToElementDxf$fToElementCellXf$fToElementStyleSheet$fToDocumentStyleSheet$fDefaultProtection $fDefaultFont$fDefaultFillPattern $fDefaultFill$fDefaultColor$fDefaultBorderStyle$fDefaultBorder$fDefaultAlignment $fDefaultDxf$fDefaultCellXf$fDefaultStyleSheet RunProperties_runPropertiesBold_runPropertiesCharset_runPropertiesColor_runPropertiesCondense_runPropertiesExtend_runPropertiesFontFamily_runPropertiesItalic_runPropertiesOutline_runPropertiesFont_runPropertiesScheme_runPropertiesShadow_runPropertiesStrikeThrough_runPropertiesSize_runPropertiesUnderline_runPropertiesVertAlign RichTextRun_richTextRunProperties_richTextRunText$fNFDataRunProperties$fNFDataRichTextRun$fEqRunProperties$fOrdRunProperties$fShowRunProperties$fGenericRunProperties$fEqRichTextRun$fOrdRichTextRun$fShowRichTextRun$fGenericRichTextRunrichTextRunPropertiesrichTextRunTextrunPropertiesBoldrunPropertiesCharsetrunPropertiesColorrunPropertiesCondenserunPropertiesExtendrunPropertiesFontrunPropertiesFontFamilyrunPropertiesItalicrunPropertiesOutlinerunPropertiesSchemerunPropertiesShadowrunPropertiesSizerunPropertiesStrikeThroughrunPropertiesUnderlinerunPropertiesVertAlignapplyRunProperties$fMonoidRunProperties$fSemigroupRunProperties$fFromXenoNodeRunProperties$fFromCursorRunProperties$fFromXenoNodeRichTextRun$fFromCursorRichTextRun$fToElementRunProperties$fToElementRichTextRun$fDefaultRunProperties$fDefaultRichTextRunSheetProtection_sprLegacyPassword _sprSheet_sprAutoFilter_sprDeleteColumns_sprDeleteRows_sprFormatCells_sprFormatColumns_sprFormatRows_sprInsertColumns_sprInsertHyperlinks_sprInsertRows _sprObjects_sprPivotTables _sprScenarios_sprSelectLockedCells_sprSelectUnlockedCells_sprSortLegacyPasswordlegacyPassword$fNFDataLegacyPassword$fNFDataSheetProtection$fEqLegacyPassword$fShowLegacyPassword$fGenericLegacyPassword$fEqSheetProtection$fShowSheetProtection$fGenericSheetProtection sprAutoFiltersprDeleteColumns sprDeleteRowssprFormatCellssprFormatColumns sprFormatRowssprInsertColumnssprInsertHyperlinks sprInsertRowssprLegacyPassword sprObjectssprPivotTables sprScenariossprSelectLockedCellssprSelectUnlockedCellssprSheetsprSortnoSheetProtectionfullSheetProtection$fToAttrValLegacyPassword$fToElementSheetProtection$fFromAttrBsLegacyPassword$fFromAttrValLegacyPassword$fFromXenoNodeSheetProtection$fFromCursorSheetProtection PaperSizePaperA2PaperA3 PaperA3ExtraPaperA3ExtraTransversePaperA3TransversePaperA4 PaperA4Extra PaperA4Plus PaperA4SmallPaperA4TransversePaperA5 PaperA5ExtraPaperA5TransversePaperB4PaperB5PaperCPaperDPaperEPaperExecutivePaperFanfoldGermanLegalPaperFanfoldGermanStandardPaperFanfoldUsStandard PaperFolio PaperIsoB4PaperIsoB5ExtraPaperJapaneseDoublePostcardPaperJisB5Transverse PaperLedger PaperLegalPaperLegalExtra PaperLetterPaperLetterExtraPaperLetterExtraTransversePaperLetterPlusPaperLetterSmallPaperLetterTransverse PaperNote PaperQuartoPaperStandard9_11PaperStandard10_11PaperStandard10_14PaperStandard11_17PaperStandard15_11PaperStatement PaperSuperA PaperSuperB PaperTabloidPaperTabloidExtra Envelope6_3_4 Envelope9 Envelope10 Envelope11 Envelope12 Envelope14 EnvelopeB4 EnvelopeB5 EnvelopeB6 EnvelopeC3 EnvelopeC4 EnvelopeC5 EnvelopeC6 EnvelopeC65 EnvelopeDLEnvelopeInvite EnvelopeItalyEnvelopeMonarch PageOrderPageOrderDownThenOverPageOrderOverThenDown OrientationOrientationDefaultOrientationLandscapeOrientationPortrait PrintErrorsPrintErrorsBlankPrintErrorsDashPrintErrorsDisplayed PrintErrorsNA CellCommentsCellCommentsAsDisplayedCellCommentsAtEndCellCommentsNone PageSetup_pageSetupBlackAndWhite_pageSetupCellComments_pageSetupCopies_pageSetupDraft_pageSetupErrors_pageSetupFirstPageNumber_pageSetupFitToHeight_pageSetupFitToWidth_pageSetupHorizontalDpi _pageSetupId_pageSetupOrientation_pageSetupPageOrder_pageSetupPaperHeight_pageSetupPaperSize_pageSetupPaperWidth_pageSetupScale_pageSetupUseFirstPageNumber_pageSetupUsePrinterDefaults_pageSetupVerticalDpi$fNFDataCellComments$fNFDataPrintErrors$fNFDataOrientation$fNFDataPageOrder$fNFDataPaperSize$fDefaultPageSetup$fNFDataPageSetup$fEqCellComments$fOrdCellComments$fShowCellComments$fGenericCellComments$fEqPrintErrors$fOrdPrintErrors$fShowPrintErrors$fGenericPrintErrors$fEqOrientation$fOrdOrientation$fShowOrientation$fGenericOrientation $fEqPageOrder$fOrdPageOrder$fShowPageOrder$fGenericPageOrder $fEqPaperSize$fOrdPaperSize$fShowPaperSize$fGenericPaperSize $fEqPageSetup$fOrdPageSetup$fShowPageSetup$fGenericPageSetuppageSetupBlackAndWhitepageSetupCellCommentspageSetupCopiespageSetupDraftpageSetupErrorspageSetupFirstPageNumberpageSetupFitToHeightpageSetupFitToWidthpageSetupHorizontalDpi pageSetupIdpageSetupOrientationpageSetupPageOrderpageSetupPaperHeightpageSetupPaperSizepageSetupPaperWidthpageSetupScalepageSetupUseFirstPageNumberpageSetupUsePrinterDefaultspageSetupVerticalDpi$fFromAttrBsOrientation$fFromAttrValOrientation$fFromAttrBsPrintErrors$fFromAttrValPrintErrors$fFromAttrBsCellComments$fFromAttrValCellComments$fFromAttrBsPageOrder$fFromAttrValPageOrder$fFromAttrBsPaperSize$fFromAttrValPaperSize$fFromXenoNodePageSetup$fFromCursorPageSetup$fToAttrValPaperSize$fToAttrValPageOrder$fToAttrValOrientation$fToAttrValPrintErrors$fToAttrValCellComments$fToElementPageSetupCustomPropertyCustomPropertiesfromListemptyparseCustomPropertyEntrycpr custPropNsuserDefinedFmtID$fToDocumentCustomProperties$fFromCursorCustomProperties$fToElementCustomProperty$fToElementCustomProperties$fEqCustomProperties$fShowCustomProperties$fGenericCustomPropertiesRefIdunRefId unsafeRefId$fFromAttrBsRefId$fFromAttrValRefId$fToAttrValRefId $fEqRefId $fOrdRefId $fShowRefId$fGenericRefId RelationshipsrelMap RelationshiprelType relTargetsizerelEntrysetTargetsFromjoinRelrelFrom findRelByType allByType parseRelEntryprodrodRelNspkgRelNs stdRelType$fFromCursorRelationship$fToElementRelationship$fFromCursorRelationships$fToElementRelationships$fToDocumentRelationships$fEqRelationship$fShowRelationship$fGenericRelationship$fEqRelationships$fShowRelationships$fGenericRelationshipsFillPropertiesNoFill SolidFill ColorChoiceRgbColorLineProperties_lnFill_lnWidthShapeProperties_spXfrm _spGeometry_spFill _spOutlineGeometryPresetGeometry Transform2D_trRot_trFlipH_trFlipV _trOffset _trExtentsPositiveSize2D_ps2dX_ps2dYPositiveCoordinatePoint2D_pt2dX_pt2dYUnitIdentifierUnitCmUnitMmUnitInUnitPtUnitPcUnitPi Coordinate UnqCoordinateUniversalMeasureTextRun RegularRun _txrCharProps_txrTextTextCharacterProperties _txchBold _txchItalic_txchUnderline TextParagraph_txpaDefCharProps _txpaRuns TextAnchoringTextAnchoringBottomTextAnchoringCenterTextAnchoringDistributedTextAnchoringJustifiedTextAnchoringTopTextWrap TextWrapNoneTextWrapSquare TextVerticalTextVerticalEATextVerticalHorzTextVerticalMongolianTextVertical270TextVerticalWordArtTextVerticalWordArtRtlTextVertOverflowTextVertOverflowClipTextVertOverflowEllipsisTextBody _txbdRotation_txbdSpcFirstLastPara_txbdVertOverflow _txbdVertical _txbdWrap _txbdAnchor_txbdAnchorCenter_txbdParagraphsAngle unqPoint2DpositiveSize2DcmSize2Dcm2emusolidRgb $fNFDataAngle$fNFDataTextVertOverflow$fNFDataTextVertical$fNFDataTextWrap$fNFDataTextAnchoring$fNFDataTextCharacterProperties$fNFDataTextRun$fNFDataTextParagraph$fNFDataTextBody$fNFDataUnitIdentifier$fNFDataCoordinate$fNFDataPoint2D$fNFDataPositiveCoordinate$fNFDataPositiveSize2D$fNFDataTransform2D$fNFDataGeometry$fNFDataColorChoice$fNFDataFillProperties$fNFDataLineProperties$fNFDataShapeProperties $fEqAngle $fShowAngle$fGenericAngle$fEqTextVertOverflow$fShowTextVertOverflow$fGenericTextVertOverflow$fEqTextVertical$fShowTextVertical$fGenericTextVertical $fEqTextWrap$fShowTextWrap$fGenericTextWrap$fEqTextAnchoring$fShowTextAnchoring$fGenericTextAnchoring$fEqTextCharacterProperties$fShowTextCharacterProperties $fGenericTextCharacterProperties $fEqTextRun $fShowTextRun$fGenericTextRun$fEqTextParagraph$fShowTextParagraph$fGenericTextParagraph $fEqTextBody$fShowTextBody$fGenericTextBody$fEqUnitIdentifier$fShowUnitIdentifier$fGenericUnitIdentifier$fEqCoordinate$fShowCoordinate$fGenericCoordinate $fEqPoint2D $fShowPoint2D$fGenericPoint2D$fEqPositiveCoordinate$fOrdPositiveCoordinate$fShowPositiveCoordinate$fGenericPositiveCoordinate$fEqPositiveSize2D$fShowPositiveSize2D$fGenericPositiveSize2D$fEqTransform2D$fShowTransform2D$fGenericTransform2D $fEqGeometry$fShowGeometry$fGenericGeometry$fEqColorChoice$fShowColorChoice$fGenericColorChoice$fEqFillProperties$fShowFillProperties$fGenericFillProperties$fEqLineProperties$fShowLineProperties$fGenericLineProperties$fEqShapeProperties$fShowShapeProperties$fGenericShapePropertiesspFill spGeometry spOutlinespXfrmgeometryFromNodefillPropsFromNodecolorChoiceFromNode coordinategeometryToElementfillPropsToElementcolorChoiceToElementa_ drawingNs$fToElementLineProperties$fToElementTransform2D$fToAttrValPositiveCoordinate$fToAttrValCoordinate$fToElementPositiveSize2D$fToElementPoint2D$fToElementShapeProperties$fToAttrValAngle$fToAttrValTextAnchoring$fToAttrValTextWrap$fToAttrValTextVertical$fToAttrValTextVertOverflow$fToElementTextRun"$fToElementTextCharacterProperties$fToElementTextParagraph$fToElementTextBody$fFromCursorFillProperties$fFromCursorPositiveSize2D$fFromCursorPoint2D$fFromCursorLineProperties$fFromCursorGeometry$fFromCursorTransform2D$fFromCursorShapeProperties$fFromAttrValTextAnchoring$fFromAttrValTextWrap$fFromAttrValTextVertical$fFromAttrValTextVertOverflow$fFromAttrValAngle$fFromCursorTextRun#$fFromCursorTextCharacterProperties$fFromCursorTextParagraph$fFromCursorTextBody$fDefaultLineProperties$fDefaultShapePropertiesDateBase DateBase1900 DateBase1904 ErrorType ErrorDiv0ErrorNA ErrorName ErrorNullErrorNumErrorRef ErrorValue CellValueCellText CellDoubleCellBoolCellRich CellErrorFormula unFormulaXlsxText XlsxRichTextSqRefRangeCellRef unCellRefint2colcol2int singleCellReffromSingleCellReffromSingleCellRefNotingmkRange fromRangexlsxTextToCellValuedateFromNumber dateToNumber$fToAttrValCellRef$fFromAttrBsCellRef$fFromAttrValCellRef$fNFDataCellRef$fToAttrValSqRef$fFromAttrBsSqRef$fFromAttrValSqRef $fNFDataSqRef$fToElementXlsxText$fFromXenoNodeXlsxText$fFromCursorXlsxText$fNFDataXlsxText$fToElementFormula$fFromAttrBsFormula$fFromAttrValFormula$fFromXenoNodeFormula$fFromCursorFormula$fNFDataFormula$fToAttrValErrorType$fFromAttrBsErrorType$fFromAttrValErrorType$fNFDataErrorType$fNFDataCellValue$fNFDataDateBase $fEqCellRef $fOrdCellRef $fShowCellRef$fGenericCellRef $fEqSqRef $fOrdSqRef $fShowSqRef$fGenericSqRef $fEqXlsxText $fOrdXlsxText$fShowXlsxText$fGenericXlsxText $fEqFormula $fOrdFormula $fShowFormula$fGenericFormula $fEqErrorType$fOrdErrorType$fShowErrorType$fGenericErrorType $fEqCellValue$fOrdCellValue$fShowCellValue$fGenericCellValue $fEqDateBase$fShowDateBase$fGenericDateBase PaneStatePaneStateFrozenPaneStateFrozenSplitPaneStateSplitPaneTypePaneTypeBottomLeftPaneTypeBottomRightPaneTypeTopLeftPaneTypeTopRight SheetViewTypeSheetViewTypeNormalSheetViewTypePageBreakPreviewSheetViewTypePageLayoutPane_paneActivePane _paneState_paneTopLeftCell _paneXSplit _paneYSplit Selection_selectionActiveCell_selectionActiveCellId_selectionPane_selectionSqref SheetView_sheetViewColorId_sheetViewDefaultGridColor_sheetViewRightToLeft_sheetViewShowFormulas_sheetViewShowGridLines_sheetViewShowOutlineSymbols_sheetViewShowRowColHeaders_sheetViewShowRuler_sheetViewShowWhiteSpace_sheetViewShowZeros_sheetViewTabSelected_sheetViewTopLeftCell_sheetViewType_sheetViewWindowProtection_sheetViewWorkbookViewId_sheetViewZoomScale_sheetViewZoomScaleNormal!_sheetViewZoomScalePageLayoutView"_sheetViewZoomScaleSheetLayoutView_sheetViewPane_sheetViewSelection$fNFDataSheetViewType$fNFDataPaneType$fNFDataSelection$fNFDataPaneState $fNFDataPane$fNFDataSheetView$fEqSheetViewType$fOrdSheetViewType$fShowSheetViewType$fGenericSheetViewType $fEqPaneType $fOrdPaneType$fShowPaneType$fGenericPaneType $fEqSelection$fOrdSelection$fShowSelection$fGenericSelection $fEqPaneState$fOrdPaneState$fShowPaneState$fGenericPaneState$fEqPane $fOrdPane $fShowPane $fGenericPane $fEqSheetView$fOrdSheetView$fShowSheetView$fGenericSheetViewsheetViewColorIdsheetViewDefaultGridColor sheetViewPanesheetViewRightToLeftsheetViewSelectionsheetViewShowFormulassheetViewShowGridLinessheetViewShowOutlineSymbolssheetViewShowRowColHeaderssheetViewShowRulersheetViewShowWhiteSpacesheetViewShowZerossheetViewTabSelectedsheetViewTopLeftCell sheetViewTypesheetViewWindowProtectionsheetViewWorkbookViewIdsheetViewZoomScalesheetViewZoomScaleNormal sheetViewZoomScalePageLayoutView!sheetViewZoomScaleSheetLayoutViewselectionActiveCellselectionActiveCellId selectionPaneselectionSqrefpaneActivePane paneStatepaneTopLeftCell paneXSplit paneYSplit$fFromAttrBsPaneState$fFromAttrValPaneState$fFromAttrBsPaneType$fFromAttrValPaneType$fFromAttrBsSheetViewType$fFromAttrValSheetViewType$fFromXenoNodeSelection$fFromCursorSelection$fFromXenoNodePane$fFromCursorPane$fFromXenoNodeSheetView$fFromCursorSheetView$fToAttrValPaneState$fToAttrValPaneType$fToAttrValSheetViewType$fToElementPane$fToElementSelection$fToElementSheetView $fDefaultPane$fDefaultSelection$fDefaultSheetViewConsolidateFunctionConsolidateAverageConsolidateCountConsolidateCountNumsConsolidateMaximumConsolidateMinimumConsolidateProductConsolidateStdDevConsolidateStdDevPConsolidateSumConsolidateVarianceConsolidateVarP DataField_dfField_dfName _dfFunctionPositionedField DataPosition FieldPositionPivotFieldName FieldSortTypeFieldSortAscendingFieldSortDescendingFieldSortManualPivotFieldInfo_pfiName _pfiOutline _pfiSortType_pfiHiddenItems PivotTable_pvtName_pvtDataCaption _pvtRowFields_pvtColumnFields_pvtDataFields _pvtFields_pvtRowGrandTotals_pvtColumnGrandTotals _pvtOutline_pvtOutlineData _pvtLocation _pvtSrcSheet _pvtSrcRef$fFromAttrValFieldSortType$fToAttrValFieldSortType$fNFDataFieldSortType$fFromAttrValPivotFieldName$fToAttrValPivotFieldName$fNFDataPivotFieldName$fNFDataPivotFieldInfo$fNFDataPositionedField $fFromAttrValConsolidateFunction$fToAttrValConsolidateFunction$fNFDataConsolidateFunction$fNFDataDataField$fNFDataPivotTable$fEqFieldSortType$fOrdFieldSortType$fShowFieldSortType$fGenericFieldSortType$fEqPivotFieldName$fOrdPivotFieldName$fShowPivotFieldName$fGenericPivotFieldName$fEqPivotFieldInfo$fShowPivotFieldInfo$fGenericPivotFieldInfo$fEqPositionedField$fOrdPositionedField$fShowPositionedField$fGenericPositionedField$fEqConsolidateFunction$fShowConsolidateFunction$fGenericConsolidateFunction $fEqDataField$fShowDataField$fGenericDataField$fEqPivotTable$fShowPivotTable$fGenericPivotTable CacheRecordCacheRecordValue CacheText CacheNumber CacheIndex CacheFieldcfNamecfItemsCacheIdrecordValueFromNode$fFromAttrValCacheId$fToElementCacheField$fFromCursorCacheField $fEqCacheId$fGenericCacheId$fEqCacheField$fShowCacheField$fGenericCacheField$fEqCacheRecordValue$fShowCacheRecordValue$fGenericCacheRecordValueTickMark TickMarkCross TickMarkIn TickMarkNone TickMarkOut DataLblProps_dlblShowLegendKey _dlblShowVal_dlblShowCatName_dlblShowSerName_dlblShowPercentDataMarkerSymbolDataMarkerCircleDataMarkerDashDataMarkerDiamond DataMarkerDotDataMarkerNoneDataMarkerPictureDataMarkerPlusDataMarkerSquareDataMarkerStarDataMarkerTriangle DataMarkerXDataMarkerAuto DataMarker _dmrkSymbol _dmrkSize ScatterSeries _scserShared _scserMarker_scserDataLblProps _scserXVal _scserYVal _scserSmooth PieSeries _piserShared_piserDataPoints_piserDataLblProps _piserVal BarSeries _brserShared_brserDataLblProps _brserVal AreaSeries _arserShared_arserDataLblProps _arserVal LineSeries _lnserShared _lnserMarker_lnserDataLblProps _lnserVal _lnserSmoothSeries_serTx_serShapeProperties DataPoint _dpMarker_dpShapeProperties ScatterStyle ScatterNone ScatterLineScatterLineMarker ScatterMarker ScatterSmoothScatterSmoothMarker BarDirection DirectionBarDirectionColumnBarChartGroupingBarClusteredGroupingBarPercentStackedGroupingBarStackedGroupingBarStandardGrouping ChartGroupingPercentStackedGroupingStackedGroupingStandardGroupingChart LineChart AreaChartBarChartPieChart ScatterChart _lnchGrouping _lnchSeries _lnchMarker _lnchSmooth _archGrouping _archSeries_brchDirection _brchGrouping _brchSeries _pichSeries _scchStyle _scchSeries LegendPos LegendBottom LegendLeft LegendRight LegendTopLegendTopRightLegend _legendPos_legendOverlay DispBlanksAsDispBlanksAsGapDispBlanksAsSpanDispBlanksAsZero ChartTitle ChartSpace _chspTitle _chspCharts _chspLegend_chspPlotVisOnly_chspDispBlanksAs$fNFDataChartTitle$fNFDataDispBlanksAs$fNFDataLegendPos$fNFDataLegend$fNFDataChartGrouping$fNFDataBarChartGrouping$fNFDataBarDirection$fNFDataScatterStyle$fNFDataSeries$fNFDataDataMarkerSymbol$fNFDataDataMarker$fNFDataDataPoint$fNFDataDataLblProps$fNFDataScatterSeries$fNFDataPieSeries$fNFDataBarSeries$fNFDataAreaSeries$fNFDataLineSeries $fNFDataChart$fNFDataChartSpace$fNFDataTickMark$fEqChartTitle$fShowChartTitle$fGenericChartTitle$fEqDispBlanksAs$fShowDispBlanksAs$fGenericDispBlanksAs $fEqLegendPos$fShowLegendPos$fGenericLegendPos $fEqLegend $fShowLegend$fGenericLegend$fEqChartGrouping$fShowChartGrouping$fGenericChartGrouping$fEqBarChartGrouping$fShowBarChartGrouping$fGenericBarChartGrouping$fEqBarDirection$fShowBarDirection$fGenericBarDirection$fEqScatterStyle$fShowScatterStyle$fGenericScatterStyle $fEqSeries $fShowSeries$fGenericSeries$fEqDataMarkerSymbol$fShowDataMarkerSymbol$fGenericDataMarkerSymbol$fEqDataMarker$fShowDataMarker$fGenericDataMarker $fEqDataPoint$fShowDataPoint$fGenericDataPoint$fEqDataLblProps$fShowDataLblProps$fGenericDataLblProps$fEqScatterSeries$fShowScatterSeries$fGenericScatterSeries $fEqPieSeries$fShowPieSeries$fGenericPieSeries $fEqBarSeries$fShowBarSeries$fGenericBarSeries$fEqAreaSeries$fShowAreaSeries$fGenericAreaSeries$fEqLineSeries$fShowLineSeries$fGenericLineSeries $fEqChart $fShowChart$fGenericChart$fEqChartSpace$fShowChartSpace$fGenericChartSpace $fEqTickMark$fShowTickMark$fGenericTickMarkdpMarkerdpShapeProperties chartFromNodechartToElements simpleSeriesc_chartNs$fToAttrValTickMark$fToAttrValDispBlanksAs$fToAttrValLegendPos$fToElementLegend$fToElementChartTitle$fToElementSeries$fToElementScatterSeries$fToElementPieSeries$fToElementBarSeries$fToElementAreaSeries$fToElementDataLblProps$fToAttrValDataMarkerSymbol$fToElementDataMarker$fToElementLineSeries$fToAttrValScatterStyle$fToAttrValBarDirection$fToAttrValBarChartGrouping$fToAttrValChartGrouping$fToElementChartSpace$fToDocumentChartSpace$fDefaultLegend$fFromAttrValDispBlanksAs$fFromAttrValLegendPos$fFromCursorLegend$fFromCursorChartTitle$fFromAttrValBarChartGrouping$fFromAttrValChartGrouping$fFromCursorDataLblProps$fFromAttrValScatterStyle$fFromAttrValBarDirection$fFromAttrValDataMarkerSymbol$fFromCursorDataPoint$fFromCursorDataMarker$fFromCursorSeries$fFromCursorScatterSeries$fFromCursorPieSeries$fFromCursorBarSeries$fFromCursorAreaSeries$fFromCursorLineSeries$fFromCursorChartSpace$fDefaultDataPointUnresolvedDrawingDrawingGenericDrawing _xdrAnchorsAnchor_anchAnchoring _anchObject_anchClientDataFillModeFillTile FillStretchBlipFillProperties _bfpImageInfo _bfpFillModeNonVisualDrawingProperties_nvdpId _nvdpName_nvdpDescription _nvdpHidden _nvdpTitleDrawingElementIdunDrawingElementIdGraphNonVisual_gnvDrawingProps PicNonVisual_pnvDrawingProps ClientData_cldLcksWithSheet_cldPrintsWithSheet DrawingObjectPictureGraphic _picMacro _picPublished _picNonVisual _picBlipFill_picShapeProperties _grNonVisual _grChartSpace _grTransform AnchoringAbsoluteAnchor OneCellAnchor TwoCellAnchorabsaPosabsaExt onecaFromonecaExttcaFromtcaTo tcaEditAsEditAs EditAsTwoCell EditAsOneCellEditAsAbsoluteMarker_mrkCol _mrkColOff_mrkRow _mrkRowOffFileInfo _fiFilename_fiContentType _fiContents unqMarkerpictureextractPicturessimpleAnchorXY$fNFDataFileInfo$fNFDataMarker$fNFDataEditAs$fNFDataAnchoring$fNFDataClientData$fNFDataDrawingElementId"$fNFDataNonVisualDrawingProperties$fNFDataGraphNonVisual$fNFDataPicNonVisual$fNFDataFillMode$fNFDataBlipFillProperties$fNFDataDrawingObject$fNFDataAnchor$fNFDataGenericDrawing $fEqFileInfo$fShowFileInfo$fGenericFileInfo $fEqMarker $fShowMarker$fGenericMarker $fEqEditAs $fShowEditAs$fGenericEditAs $fEqAnchoring$fShowAnchoring$fGenericAnchoring$fEqClientData$fShowClientData$fGenericClientData$fEqDrawingElementId$fShowDrawingElementId$fGenericDrawingElementId$fEqNonVisualDrawingProperties $fShowNonVisualDrawingProperties#$fGenericNonVisualDrawingProperties$fEqGraphNonVisual$fShowGraphNonVisual$fGenericGraphNonVisual$fEqPicNonVisual$fShowPicNonVisual$fGenericPicNonVisual $fEqFillMode$fShowFillMode$fGenericFillMode$fEqBlipFillProperties$fShowBlipFillProperties$fGenericBlipFillProperties$fEqDrawingObject$fShowDrawingObject$fGenericDrawingObject $fEqAnchor $fShowAnchor$fGenericAnchor$fEqGenericDrawing$fShowGenericDrawing$fGenericGenericDrawing anchAnchoringanchClientData anchObject grChartSpace grNonVisual grTransform picBlipFillpicMacro picNonVisual picPublishedpicShapeProperties bfpFillMode bfpImageInfo xdrAnchorsanchoringFromNodedrawingObjectFromNodefillModeFromNodeanchorToElementanchoringToElementdrawingObjToElementfillModeToElementxdr xlDrawingNs$fToAttrValEditAs$fToElementClientData$fToElementBlipFillProperties$fToAttrValDrawingElementId%$fToElementNonVisualDrawingProperties$fToElementGraphNonVisual$fToElementPicNonVisual$fToElementMarker$fToElementGenericDrawing$fToDocumentGenericDrawing$fFromCursorClientData$fFromAttrValEditAs$fFromCursorFillMode$fFromCursorBlipFillProperties$fFromAttrValDrawingElementId&$fFromCursorNonVisualDrawingProperties$fFromCursorGraphNonVisual$fFromCursorPicNonVisual$fFromCursorDrawingObject$fFromCursorMarker$fFromCursorAnchoring$fFromCursorAnchor$fFromCursorGenericDrawing$fDefaultClientDataDataValidation _dvAllowBlank_dvError _dvErrorStyle _dvErrorTitle _dvPrompt_dvPromptTitle_dvShowDropDown_dvShowErrorMessage_dvShowInputMessage_dvValidationType ErrorStyleErrorStyleInformationErrorStyleStopErrorStyleWarningValidationTypeValidationTypeNoneValidationTypeCustomValidationTypeDateValidationTypeDecimalValidationTypeListValidationTypeTextLengthValidationTypeTimeValidationTypeWholeValidationExpression ValBetweenValEqualValGreaterThanValGreaterThanOrEqual ValLessThanValLessThanOrEqual ValNotBetween ValNotEqual$fNFDataValidationExpression$fNFDataValidationType$fNFDataErrorStyle$fNFDataDataValidation$fEqValidationExpression$fShowValidationExpression$fGenericValidationExpression$fEqValidationType$fShowValidationType$fGenericValidationType$fEqErrorStyle$fShowErrorStyle$fGenericErrorStyle$fEqDataValidation$fShowDataValidation$fGenericDataValidation dvAllowBlankdvError dvErrorStyle dvErrorTitledvPrompt dvPromptTitledvShowDropDowndvShowErrorMessagedvShowInputMessagedvValidationTypereadValidationTypereadListFormulasreadOpExpression2readValidationTypeOpExpreadValExpressionviewValidationExpression$fToElementDataValidation$fToAttrValErrorStyle$fToAttrValValidationType$fFromXenoNodeDataValidation$fFromCursorDataValidation$fFromAttrBsErrorStyle$fFromAttrValErrorStyle$fDefaultDataValidationDvPairunDvPair$fToElementDvPair$fFromXenoNodeDvPair$fFromCursorDvPair $fEqDvPair $fShowDvPair$fGenericDvPairCfRule _cfrCondition _cfrDxfId _cfrPriority_cfrStopIfTrueDataBarOptions _dboMaxLength _dboMinLength _dboShowValue _dboMinimum _dboMaximum _dboColor IconSetTypeIconSet3ArrowsIconSet3ArrowsGray IconSet3Flags IconSet3SignsIconSet3SymbolsIconSet3Symbols2IconSet3TrafficLights1IconSet3TrafficLights2IconSet4ArrowsIconSet4ArrowsGrayIconSet4RatingIconSet4RedToBlackIconSet4TrafficLightsIconSet5ArrowsIconSet5ArrowsGrayIconSet5QuartersIconSet5RatingIconSetOptions _isoIconSet _isoValues _isoReverse _isoShowValue MaxCfValueCfvMax MinCfValueCfvMinCfValue CfPercent CfPercentile CfFormula Condition AboveAverage BeginsWith BelowAverageBottomNPercent BottomNValuesCellIs ColorScale2 ColorScale3ContainsBlanksContainsErrors ContainsTextDataBarDoesNotContainErrorsDoesNotContainBlanksDoesNotContainTextDuplicateValuesEndsWith ExpressionIconSet InTimePeriod TopNPercent TopNValues UniqueValuesNStdDev Inclusion Inclusive Exclusive TimePeriod PerLast7Days PerLastMonth PerLastWeek PerNextMonth PerNextWeek PerThisMonth PerThisWeekPerToday PerTomorrow PerYesterdayOperatorExpression OpBeginsWith OpBetweenOpContainsText OpEndsWithOpEqual OpGreaterThanOpGreaterThanOrEqual OpLessThanOpLessThanOrEqual OpNotBetween OpNotContains OpNotEqualdataBarWithColor$fNFDataOperatorExpression$fNFDataTimePeriod$fNFDataInclusion$fNFDataNStdDev$fNFDataCfValue$fNFDataMinCfValue$fNFDataMaxCfValue$fNFDataCfvType$fNFDataIconSetType$fDefaultIconSetOptions$fNFDataIconSetOptions$fNFDataDataBarOptions$fNFDataCondition$fNFDataCfRule$fEqOperatorExpression$fOrdOperatorExpression$fShowOperatorExpression$fGenericOperatorExpression$fEqTimePeriod$fOrdTimePeriod$fShowTimePeriod$fGenericTimePeriod $fEqInclusion$fOrdInclusion$fShowInclusion$fGenericInclusion $fEqNStdDev $fOrdNStdDev $fShowNStdDev$fGenericNStdDev $fEqCfValue $fOrdCfValue $fShowCfValue$fGenericCfValue$fEqMinCfValue$fOrdMinCfValue$fShowMinCfValue$fGenericMinCfValue$fEqMaxCfValue$fOrdMaxCfValue$fShowMaxCfValue$fGenericMaxCfValue $fEqCfvType $fOrdCfvType $fShowCfvType$fGenericCfvType$fEqIconSetType$fOrdIconSetType$fShowIconSetType$fGenericIconSetType$fEqIconSetOptions$fOrdIconSetOptions$fShowIconSetOptions$fGenericIconSetOptions$fEqDataBarOptions$fOrdDataBarOptions$fShowDataBarOptions$fGenericDataBarOptions $fEqCondition$fOrdCondition$fShowCondition$fGenericCondition $fEqCfRule $fOrdCfRule $fShowCfRule$fGenericCfRule cfrConditioncfrDxfId cfrPriority cfrStopIfTrue isoIconSet isoReverse isoShowValue isoValuesConditionalFormattingdboColor dboMaxLength dboMaximum dboMinLength dboMinimum dboShowValue topCfPriority$fToAttrValNStdDev$fToAttrValInclusion$fToAttrValTimePeriod$fToElementDataBarOptions$fToAttrValIconSetType$fToElementIconSetOptions$fToAttrValCfvType$fToElementCfValue$fToElementMaxCfValue$fToElementMinCfValue$fToElementCfRule$fFromAttrBsNStdDev$fFromAttrValNStdDev$fFromAttrBsInclusion$fFromAttrValInclusion$fFromXenoNodeDataBarOptions$fFromCursorDataBarOptions$fFromAttrBsIconSetType$fFromAttrValIconSetType$fFromXenoNodeIconSetOptions$fFromCursorIconSetOptions$fFromXenoNodeMaxCfValue$fFromCursorMaxCfValue$fFromXenoNodeMinCfValue$fFromCursorMinCfValue$fFromXenoNodeCfValue$fFromCursorCfValue$fFromAttrBsCfvType$fFromAttrValCfvType$fFromAttrBsTimePeriod$fFromAttrValTimePeriod$fFromXenoNodeCfRule$fFromCursorCfRuleCfPairunCfPair$fToElementCfPair$fFromXenoNodeCfPair$fFromCursorCfPair $fEqCfPair $fShowCfPair$fGenericCfPairComment _commentText_commentAuthor_commentVisible$fNFDataComment $fEqComment $fShowComment$fGenericComment CommentTable_commentsTabletoList lookupComment parseComment renderShapes$fFromCursorCommentTable$fToElementCommentTable$fToDocumentCommentTable$fEqCommentTable$fShowCommentTable$fGenericCommentTableparsePivotTable parseCachefillCacheFieldsFromRecordsCell _cellStyle _cellValue _cellComment _cellFormulaSharedFormulaOptions_sfoRef_sfoExpressionSharedFormulaIndexFormulaExpression NormalFormula SharedFormula CellFormula_cellfExpression_cellfAssignsToName_cellfCalculatesimpleCellFormulasharedFormulaByIndex$fNFDataSharedFormulaIndex$fNFDataFormulaExpression$fNFDataCellFormula$fNFDataSharedFormulaOptions $fDefaultCell $fNFDataCell$fEqSharedFormulaIndex$fOrdSharedFormulaIndex$fShowSharedFormulaIndex$fGenericSharedFormulaIndex$fEqFormulaExpression$fShowFormulaExpression$fGenericFormulaExpression$fEqCellFormula$fShowCellFormula$fGenericCellFormula$fEqSharedFormulaOptions$fShowSharedFormulaOptions$fGenericSharedFormulaOptions$fEqCell $fShowCell $fGenericCellCellMap cellComment cellFormula cellStyle cellValueformulaDataFromCursorapplySharedFormulaOpts$fToAttrValSharedFormulaIndex$fToElementCellFormula$fFromAttrBsSharedFormulaIndex$fFromAttrValSharedFormulaIndex FormulaData frmdFormula frmdShareddefaultFormulaType$fFromXenoNodeFormulaData$fGenericFormulaData AutoFilter_afRef_afFilterColumns DynFilterTypeDynFilterAboveAverageDynFilterBelowAverageDynFilterLastMonthDynFilterLastQuarterDynFilterLastWeekDynFilterLastYear DynFilterM1 DynFilterM10 DynFilterM11 DynFilterM12 DynFilterM2 DynFilterM3 DynFilterM4 DynFilterM5 DynFilterM6 DynFilterM7 DynFilterM8 DynFilterM9DynFilterNextMonthDynFilterNextQuarterDynFilterNextWeekDynFilterNextYear DynFilterNull DynFilterQ1 DynFilterQ2 DynFilterQ3 DynFilterQ4DynFilterThisMonthDynFilterThisQuarterDynFilterThisWeekDynFilterThisYearDynFilterTodayDynFilterTomorrowDynFilterYearToDateDynFilterYesterdayDynFilterOptions_dfoType_dfoVal _dfoMaxValColorFilterOptions _cfoCellColor _cfoDxfIdEdgeFilterOptions_efoUsePercents_efoVal _efoFilterValCustomFilterOperator FltrEqualFltrGreaterThanFltrGreaterThanOrEqual FltrLessThanFltrLessThanOrEqual FltrNotEqual CustomFilter cfltOperator cfltValue DateGroupDateGroupByYearDateGroupByMonthDateGroupByDayDateGroupByHourDateGroupByMinuteDateGroupBySecondFilterCriterion FilterValueFilterDateGroup FilterByBlankDontFilterByBlank FilterColumnFilters ColorFilter ACustomFilterCustomFiltersOrCustomFiltersAnd DynamicFilter IconFilter BottomNFilter TopNFilter$fNFDataFilterByBlank$fNFDataDateGroup$fNFDataFilterCriterion$fNFDataCustomFilterOperator$fNFDataCustomFilter$fNFDataEdgeFilterOptions$fNFDataColorFilterOptions$fNFDataDynFilterType$fNFDataDynFilterOptions$fNFDataFilterColumn$fNFDataAutoFilter$fEqFilterByBlank$fShowFilterByBlank$fGenericFilterByBlank $fEqDateGroup$fShowDateGroup$fGenericDateGroup$fEqFilterCriterion$fShowFilterCriterion$fGenericFilterCriterion$fEqCustomFilterOperator$fShowCustomFilterOperator$fGenericCustomFilterOperator$fEqCustomFilter$fShowCustomFilter$fGenericCustomFilter$fEqEdgeFilterOptions$fShowEdgeFilterOptions$fGenericEdgeFilterOptions$fEqColorFilterOptions$fShowColorFilterOptions$fGenericColorFilterOptions$fEqDynFilterType$fShowDynFilterType$fGenericDynFilterType$fEqDynFilterOptions$fShowDynFilterOptions$fGenericDynFilterOptions$fEqFilterColumn$fShowFilterColumn$fGenericFilterColumn$fEqAutoFilter$fShowAutoFilter$fGenericAutoFilterafFilterColumnsafReffltColFromNodefilterCriterionFromNodefltColToElement edgeFilterfilterCriterionToElement$fToAttrValDynFilterType$fToElementDynFilterOptions$fToElementColorFilterOptions$fToAttrValFilterByBlank$fToAttrValCustomFilterOperator$fToElementCustomFilter$fToElementAutoFilter$fFromAttrBsDynFilterType$fFromAttrValDynFilterType$fFromAttrBsFilterByBlank$fFromAttrValFilterByBlank $fFromAttrBsCustomFilterOperator!$fFromAttrValCustomFilterOperator$fFromXenoNodeFilterCriterion$fFromCursorFilterCriterion$fFromXenoNodeCustomFilter$fFromXenoNode(,)$fFromXenoNodeAutoFilter$fFromCursorAutoFilter$fDefaultAutoFilter TableColumntblcNameTabletblDisplayNametblNametblRef tblColumns tblAutoFilter$fNFDataTableColumn $fNFDataTable$fEqTableColumn$fShowTableColumn$fGenericTableColumn $fEqTable $fShowTable$fGenericTabletableToDocumenttableToElement$fFromCursorTable Worksheet_wsColumnsProperties_wsRowPropertiesMap_wsCells _wsDrawing _wsMerges _wsSheetViews _wsPageSetup_wsConditionalFormattings_wsDataValidations_wsPivotTables _wsAutoFilter _wsTables _wsProtection_wsSharedFormulasColumnsPropertiescpMincpMaxcpWidthcpStylecpHidden cpCollapsed cpBestFit RowPropertiesRowProps rowHeightrowStyle rowHidden RowHeight CustomHeightAutomaticHeight$fNFDataRowHeight$fDefaultRowProperties$fNFDataRowProperties$fFromXenoNodeColumnsProperties$fFromCursorColumnsProperties$fNFDataColumnsProperties$fNFDataWorksheet $fEqRowHeight$fOrdRowHeight$fShowRowHeight$fReadRowHeight$fGenericRowHeight$fEqRowProperties$fOrdRowProperties$fShowRowProperties$fReadRowProperties$fGenericRowProperties$fEqColumnsProperties$fShowColumnsProperties$fGenericColumnsProperties $fEqWorksheet$fShowWorksheet$fGenericWorksheet DefinedNamesXlsx _xlSheets _xlStyles_xlDefinedNames_xlCustomProperties _xlDateBaseStylesunStyles wsAutoFilterwsCellswsColumnsPropertieswsConditionalFormattingswsDataValidations wsDrawingwsMerges wsPageSetup wsPivotTables wsProtectionwsRowPropertiesMapwsSharedFormulas wsSheetViewswsTables$fDefaultWorksheet$fNFDataStyles$fNFDataDefinedNames $fNFDataXlsx $fEqStyles $fShowStyles$fGenericStyles$fEqDefinedNames$fShowDefinedNames$fGenericDefinedNames$fEqXlsx $fShowXlsx $fGenericXlsxxlCustomProperties xlDateBasexlDefinedNamesxlSheetsxlStyles emptyStylestoRowsfromRows$fToElementColumnsProperties$fDefaultDefinedNames $fDefaultXlsxSharedStringTablesstTablesstEmpty sstConstruct sstLookupText sstLookupRichsstItem$fFromCursorSharedStringTable$fToElementSharedStringTable$fToDocumentSharedStringTable$fEqSharedStringTable$fOrdSharedStringTable$fShowSharedStringTable$fGenericSharedStringTableParser ParseErrorInvalidZipArchive MissingFile InvalidFile InvalidRefInconsistentXlsxtoXlsx toXlsxFast toXlsxEithertoXlsxEitherFast$fExceptionParseError$fEqParseError$fShowParseError$fGenericParseError$fShowWorksheetFile$fGenericWorksheetFileixSheetatSheetixCellixCellRCixCellXYatCellatCellRCatCellXY cellValueAt cellValueAtRC cellValueAtXY $fAtSheetList$fIxedSheetList $fEqSheetList$fShowSheetList$fGenericSheetList$fEqFormattedCondFmt$fShowFormattedCondFmt$fGenericFormattedCondFmt_formatAlignment _formatBorder _formatFill _formatFont_formatNumberFormat_formatProtection_formatPivotButton_formatQuotePrefixcondfmtCondition condfmtDxfcondfmtPrioritycondfmtStopIfTrue $fEqFormat $fShowFormat$fGenericFormat FormattedCell_formattedCell_formattedFormat_formattedColSpan_formattedRowSpanformatAlignment formatBorder formatFill formatFontformatNumberFormatformatPivotButtonformatProtectionformatQuotePrefix$fEqFormattedCell$fShowFormattedCell$fGenericFormattedCell CondFormattedcondformattedStyleSheetcondformattedFormattings FormattedformattedCellMapformattedStyleSheetformattedMerges formattedCellformattedColSpanformattedFormatformattedRowSpanformatWorkbooktoFormattedCellsconditionallyFormatted$fDefaultFormattedCondFmt$fDefaultFormat$fDefaultFormattedCell $fEqFormatted$fShowFormatted$fGenericFormatted$fEqCondFormatted$fShowCondFormatted$fGenericCondFormattedPivotTableFiles pvtfTablepvtfCacheDefinitionpvtfCacheRecordsrenderPivotTableFiles$fEqPivotTableFiles$fShowPivotTableFiles$fGenericPivotTableFiles$fEqCacheDefinition$fShowCacheDefinition$fGenericCacheDefinitionfromXlsx$fEqXlsxCellData$fShowXlsxCellData$fGenericXlsxCellData $fEqXlsxCell$fShowXlsxCell$fGenericXlsxCells_indexbytestring-0.10.8.2Data.ByteString.Internal ByteString elemIndexFrom substring"lens-4.19.2-HG44bdTB9MCKws3INOdtldControl.Lens.Internal.IndexedindexedbaseGHC.BaseMonoidDefaultCfvType CfvtFormulaCfvtMaxCfvtMinCfvtNum CfvtPercentCfvtPercentileghc-prim GHC.TypesTrueFalse GHC.MaybeNothing sstLookup Data.EitherLeftxmlCursorOptionalxmlCursorRequiredgetSharedStrings readWorkbookControl.Lens.AtAt_formattingMergesInt formatCell cellBlockqNamensName refElement