# Enumerations Reference

## Calculation Enumerations

enum CalcTypeEnum

  Workbook calculation modes.

  enumerator CALCTYPE_AUTO

    Indicates that calculations in the workbook are performed automatically when cell values change.

  enumerator CALCTYPE_MANUAL

    Indicates that calculations in the workbook be triggered manually by the user.

  enumerator CALCTYPE_AUTONOTABLE

    Indicates tables be excluded during automatic calculation.

## Worksheet Type Enumerations

enum SheetTypeEnum

  Types of sheets in a workbook.

  enumerator SHEETTYPE_UNKNOWN
  enumerator SHEETTYPE_WORKSHEET
  enumerator SHEETTYPE_CHARTSHEET
  enumerator SHEETTYPE_DIALOGSHEET

enum SheetStateEnum

  Visibility states for worksheets.

  enumerator SHEETSTATE_VISIBLE

    Indicates the sheet is visible.

  enumerator SHEETSTATE_HIDDEN

    Indicates the workbook window is hidden, but can be shown by the user via the user interface.

  enumerator SHEETSTATE_VERYHIDDEN

    Indicates the sheet is hidden and cannot be shown in the user interface (UI).

## Worksheet Protection Enumerations

enum SheetProtectEnum

  Worksheet protection options (bitmask).

  enumerator PROTECT_SELECT_LOCKED_CELLS

    Selection of locked cells should not be allowed when the sheet is protected

  enumerator PROTECT_SELECT_UNLOCKED_CELLS

    selection of unlocked cells should not be allowed when the sheet is protected

  enumerator PROTECT_OBJECTS

    Editing of objects should not be allowed when the sheet is protected

  enumerator PROTECT_SCENARIOS

    Scenarios should not be edited when the sheet is protected

  enumerator PROTECT_FORMAT_CELLS

    Formatting cells should not be allowed when the sheet is protected

  enumerator PROTECT_FORMAT_COLUMNS

    Formatting columns should not be allowed when the sheet is protected

  enumerator PROTECT_FORMAT_ROWS

    Formatting rows should not be allowed when the sheet is protected

  enumerator PROTECT_INSERT_COLUMNS

    Inserting columns should not be allowed when the sheet is protected

  enumerator PROTECT_INSERT_ROWS

    inserting rows should not be allowed when the sheet is protected

  enumerator PROTECT_INSERT_HYPERLINKS

    inserting hyperlinks should not be allowed when the sheet is protected

  enumerator PROTECT_DELETE_COLUMNS

    Deleting columns should not be allowed when the sheet is protected

  enumerator PROTECT_DELETE_ROWS

    Deleting rows should not be allowed when the sheet is protected

  enumerator PROTECT_SORT

    Sorting should not be allowed when the sheet is protected

  enumerator PROTECT_AUTOFILTER

    AutoFilters should not be allowed to operate when the sheet is protected

  enumerator PROTECT_PIVOTTABLES

    PivotTables should not be allowed to operate when the sheet is protected

  enumerator PROTECT_ALL

    All the above operations are not allowed when the sheet is protected

  enumerator PROTECT_DEFAULT

    All other operations except for PROTECT_SORT, PROTECT_AUTOFILTER and PROTECT_PIVOTTABLES are not allowed when the sheet is protected

## Cell Data Type Enumerations

enum CellTypeEnum

  Types of cell content.

  enumerator CELLTYPE_NONE

    Cell does not exist

  enumerator CELLTYPE_BLANK

    Empty cell

  enumerator CELLTYPE_NUMBER

    Numeric value

  enumerator CELLTYPE_STRING

    String value

  enumerator CELLTYPE_BOOLEAN

    Boolean value

  enumerator CELLTYPE_DATETIME

    Date/time value

  enumerator CELLTYPE_ERROR

    Error value

enum ErrorCodeEnum

  Excel error codes.

  enumerator ERRCODE_UNKNOWN

    Unknown error

  enumerator ERRCODE_NONE

    No error

  enumerator ERRCODE_NULL

    #NULL! error

  enumerator ERRCODE_DIV_0

    #DIV/0! error

  enumerator ERRCODE_VALUE

    #VALUE! error

  enumerator ERRCODE_REF

    #REF! error

  enumerator ERRCODE_NAME

    #NAME? error

  enumerator ERRCODE_NUM

    #NUM! error

  enumerator ERRCODE_NA

    #N/A error

  enumerator ERRCODE_GETTING_DATA

    #GETTING_DATA error

  enumerator ERRCODE_SPILL

    #SPILL! error

## Built-in number format:

ID | format code
--- | ---
0 | General
1 | 0
2 | 0.00
3 | #,##0
4 | #,##0.00
9 | 0%
10 | 0.00%
11 | 0.00E+00
12 | # ?/?
13 | # ??/??
14 | mm-dd-yy
15 | d-mmm-yy
16 | d-mmm
17 | mmm-yy
18 | h:mm AM/PM
19 | h:mm:ss AM/PM
20 | h:mm
21 | h:mm:ss
22 | m/d/yy h:mm
37 | #,##0 ;(#,##0)
38 | #,##0 ;[Red](#,##0)
39 | #,##0.00;(#,##0.00)
40 | #,##0.00;[Red](#,##0.00)
45 | mm:ss
46 | [h]:mm:ss
47 | mmss.0
48 | ##0.0E+0
49 | @

## Built-in cell styles:

Name | View
--- | ---
normal |
comma |
currency |
percent |
comma0 |
currency0 |
note |
warningText |
title |
heading1 |
heading2 |
heading3 |
heading4 |
input |
output |
calculation |
checkCell |
linkedCell |
total |
good |
bad |
neutral |
accent1 |
accent1pct20 |
accent1pct40 |
accent1pct60 |
accent2 |
accent2pct20 |
accent2pct40 |
accent2pct60 |
accent3 |
accent3pct20 |
accent3pct40 |
accent3pct60 |
accent4 |
accent4pct20 |
accent4pct40 |
accent4pct60 |
accent5 |
accent5pct20 |
accent5pct40 |
accent5pct60 |
accent6 |
accent6pct20 |
accent6pct40 |
accent6pct60 |
explanatoryText |

## Alignment Enumerations

enum HAlignEnum

  Horizontal alignment options.

  enumerator HALIGN_GENERAL

    The horizontal alignment is general-aligned. Text data is left-aligned. Numbers, dates, and times are right aligned. Boolean types are centered

  enumerator HALIGN_LEFT

    The horizontal alignment is left-aligned, even in Right to-Left mode. Aligns contents at the left edge of the cell. If an indent amount is specified, the contents of the cell is indented from the left by the specified number of character spaces. The character spaces are based on the default font and font size for the workbook.

  enumerator HALIGN_CENTER

    The horizontal alignment is centered

  enumerator HALIGN_RIGHT

    The horizontal alignment is right-aligned

  enumerator HALIGN_FILL

    Indicates that the value of the cell should be filled across the entire width of the cell

  enumerator HALIGN_JUSTIFY

    The horizontal alignment is justified (flush left and right)

  enumerator HALIGN_CENTERCONTINUOUS

    The horizontal alignment is centered across multiple cells

  enumerator HALIGN_DISTRIBUTED

    Indicates that each ‘word’ in each line of text inside the cell is evenly distributed across the width of the cell, with flush right and left margins

enum VAlignEnum

  Vertical alignment options.

  enumerator VALIGN_BOTTOM

    The vertical alignment is aligned-to-bottom

  enumerator VALIGN_CENTER

    The vertical alignment is centered across the height of the cell

  enumerator VALIGN_TOP

    The vertical alignment is aligned-to-top

  enumerator VALIGN_JUSTIFY

    Justified vertical alignment

  enumerator VALIGN_DISTRIBUTED

    Distributed vertical alignment

## Border Enumerations

enum BorderStyleEnum

  Border line styles.

  enumerator BORDER_NONE

    No border

  enumerator BORDER_THIN

    Thin line border

  enumerator BORDER_MEDIUM

    Medium line border

  enumerator BORDER_THICK

    Thick line border

  enumerator BORDER_DOUBLE

    Double line border

  enumerator BORDER_DASHED

    Dashed line

  enumerator BORDER_MEDIUMDASHED

    Medium dashed line

  enumerator BORDER_DASHDOT

    Dash-dot line

  enumerator BORDER_MEDIUMDASHDOT

    Medium dash-dot line

  enumerator BORDER_DASHDOTDOT

    Dash-dot-dot line

  enumerator BORDER_MEDIUMDASHDOTDOT

    Medium dash-dot-dot line

  enumerator BORDER_SLANTDASHDOT

    Slant dash-dot line

  enumerator BORDER_DOTTED

    Dotted line

  enumerator BORDER_HAIR

    Hairline border

enum BorderIndexEnum

  Border positions.

  enumerator BORDERINDEX_LEFT

    Left border

  enumerator BORDERINDEX_RIGHT

    Right border

  enumerator BORDERINDEX_TOP

    Top border

  enumerator BORDERINDEX_BOTTOM

    Bottom border

  enumerator BORDERINDEX_HORIZONTAL

    Interior horizontal borders

  enumerator BORDERINDEX_VERTICAL

    Interior vertical borders

  enumerator BORDERINDEX_DIAGONAL_DOWN

    Diagonal down border

  enumerator BORDERINDEX_DIAGONAL_UP

    Diagonal up border

  enumerator BORDERINDEX_EDGE

    All outer borders

  enumerator BORDERINDEX_INSIDE

    All interior borders

## Fill Pattern Enumerations

enum PatternTypeEnum

  (Use yellow background and black foreground colors)

  Enumeration Value | View
  --- | ---
  PATTERNTYPE_NONE |
  PATTERNTYPE_SOLID |
  PATTERNTYPE_DARKGRAY |
  PATTERNTYPE_MEDIUMGRAY |
  PATTERNTYPE_LIGHTGRAY |
  PATTERNTYPE_GRAY125 |
  PATTERNTYPE_GRAY0625 |
  PATTERNTYPE_DARKHORIZONTAL |
  PATTERNTYPE_DARKVERTICAL |
  PATTERNTYPE_DARKUP |
  PATTERNTYPE_DARKDOWN |
  PATTERNTYPE_DARKTRELLIS |
  PATTERNTYPE_DARKGRID |
  PATTERNTYPE_LIGHTHORIZONTAL |
  PATTERNTYPE_LIGHTVERTICAL |
  PATTERNTYPE_LIGHTUP |
  PATTERNTYPE_LIGHTDOWN |
  PATTERNTYPE_LIGHTTRELLIS |
  PATTERNTYPE_LIGHTGRID |

## Text Formatting Enumerations

enum VertAlignRunEnum

  Specifies possible values for the alignment of the contents of this run in relation to the default appearance of the run’s text.

  enumerator VALIGNRUN_BASELINE

    Normal baseline alignment

  enumerator VALIGNRUN_SUBSCRIPT

    Subscript text

  enumerator VALIGNRUN_SUPERSCRIPT

    Superscript text

enum UnderlineEnum

  Text underline styles.

  enumerator UNDERLINE_NONE

    No underline

  enumerator UNDERLINE_SINGLE

    Single underline

  enumerator UNDERLINE_SINGLEACCOUNTING

    Single accounting underline

  enumerator UNDERLINE_DOUBLE

    Double underline

  enumerator UNDERLINE_DOUBLEACCOUNTING

    Double accounting underline

## Table Function Enumerations

Built in table styles

> see: Built-in Table Styles

enum TotalsFuncEnum

  Table totals row functions.

  enumerator TOTALS_FUNC_NONE

    No function

  enumerator TOTALS_FUNC_SUM

    Sum of values

  enumerator TOTALS_FUNC_AVERAGE

    Average of values

  enumerator TOTALS_FUNC_COUNT

    Count of non-empty cells

  enumerator TOTALS_FUNC_COUNT_NUMS

    Count of numeric cells

  enumerator TOTALS_FUNC_CUSTOM

    Custom formula

  enumerator TOTALS_FUNC_MIN

    Minimum value

  enumerator TOTALS_FUNC_MAX

    Maximum value

  enumerator TOTALS_FUNC_STDDEV

    Standard deviation

  enumerator TOTALS_FUNC_VAR

    Variance

## Measurement Unit Enumerations

enum RowHeightUnitEnum

  Row height measurement units.

  enumerator ROWHEIGHT_POINTS

    Points (1/72 inch)

  enumerator ROWHEIGHT_INCH

    Inches

  enumerator ROWHEIGHT_MM

    Millimeters

enum ColWidthUnitEnum

  Column width measurement units.

  enumerator COLWIDTH_CHARS

    Character units (Excel default)

  enumerator COLWIDTH_INCH

    Inches

  enumerator COLWIDTH_MM

    Millimeters

## Shape and Object Enumerations

enum ShapeAnchorEnum

  Shape anchoring behavior with cell resizing.

  enumerator SHAPE_ABSOLUTE

    Don’t move or resize with cells

  enumerator SHAPE_ONLY_MOVE

    Move with cells but don’t resize

  enumerator SHAPE_MOVE_AND_RESIZE

    Move and resize with anchor cells

## Printing Enumerations

enum PageOrientEnum

  Page orientation for printing.

  enumerator PAGEORIENT_DEFAULT

    Default orientation

  enumerator PAGEORIENT_LANDSCAPE

    Landscape orientation

  enumerator PAGEORIENT_PORTRAIT

    Portrait orientation

enum PrintOrderEnum

  Page printing order.

  enumerator PRINTORDER_DOWNTHENOVER

    Down then over

  enumerator PRINTORDER_OVERTHENDOWN

    Over then down

enum PaperUnitEnum

  Paper measurement units.

  enumerator PAPERUNIT_mm

    Millimeters

  enumerator PAPERUNIT_cm

    Centimeters

  enumerator PAPERUNIT_in

    Inches

  enumerator PAPERUNIT_pt

    Points

  enumerator PAPERUNIT_pc

    Picas

  enumerator PAPERUNIT_pi

    Printer’s inches

enum PrintCMTEnum

  Cell comment printing options.

  enumerator PRINTCMT_NONE

    Don’t print comments

  enumerator PRINTCMT_ASDISPLAYED

    Print as displayed on sheet

  enumerator PRINTCMT_ATEND

    Print at end of sheet

enum PrintErrorEnum

  Error value printing options.

  enumerator PRINTERROR_BLANK

    Display errors as blank

  enumerator PRINTERROR_DASH

    Display errors as dashes

  enumerator PRINTERROR_DISPLAYED

    Display errors as shown on screen

  enumerator PRINTERROR_NA

    Display errors as #N/A

## Paper Size Constants

Paper size identifiers:

    /*
         ID              Paper
       ------------------------------------------------------
          1  =  Letter paper(8.5 in.by 11 in.)
          2  =  Letter small paper(8.5 in.by 11 in.)
          3  =  Tabloid paper(11 in.by 17 in.)
          4  =  Ledger paper(17 in.by 11 in.)
          5  =  Legal paper(8.5 in.by 14 in.)
          6  =  Statement paper(5.5 in.by 8.5 in.)
          7  =  Executive paper(7.25 in.by 10.5 in.)
          8  =  A3 paper(297 mm by 420 mm)
          9  =  A4 paper(210 mm by 297 mm)
         10  =  A4 small paper(210 mm by 297 mm)
         11  =  A5 paper(148 mm by 210 mm)
         12  =  B4 paper(250 mm by 353 mm)
         13  =  B5 paper(176 mm by 250 mm)
         14  =  Folio paper(8.5 in.by 13 in.)
         15  =  Quarto paper(215 mm by 275 mm)
         16  =  Standard paper(10 in.by 14 in.)
         17  =  Standard paper(11 in.by 17 in.)
         18  =  Note paper(8.5 in.by 11 in.)
         19  =  #9 envelope(3.875 in.by 8.875 in.)
         20  =  #10 envelope(4.125 in.by 9.5 in.)
         21  =  #11 envelope(4.5 in.by 10.375 in.)
         22  =  #12 envelope(4.75 in.by 11 in.)
         23  =  #14 envelope(5 in.by 11.5 in.)
         24  =  C paper(17 in.by 22 in.)
         25  =  D paper (22 in. by 34 in.)
         26  =  E paper (34 in. by 44 in.)
         27  =  DL envelope (110 mm by 220 mm)
         28  =  C5 envelope (162 mm by 229 mm)
         29  =  C3 envelope (324 mm by 458 mm)
         30  =  C4 envelope (229 mm by 324 mm)
         31  =  C6 envelope (114 mm by 162 mm)
         32  =  C65 envelope (114 mm by 229 mm)
         33  =  B4 envelope (250 mm by 353 mm)
         34  =  B5 envelope (176 mm by 250 mm)
         35  =  B6 envelope (176 mm by 125 mm)
         36  =  Italy envelope (110 mm by 230 mm)
         37  =  Monarch envelope (3.875 in. by 7.5 in.).
         38  =  6 3/4 envelope (3.625 in. by 6.5 in.)
         39  =  US standard fanfold (14.875 in. by 11 in.)
         40  =  German standard fanfold (8.5 in. by 12 in.)
         41  =  German legal fanfold (8.5 in. by 13 in.)
         42  =  ISO B4 (250 mm by 353 mm)
         43  =  Japanese double postcard (200 mm by 148 mm)
         44  =  Standard paper (9 in. by 11 in.)
         45  =  Standard paper (10 in. by 11 in.)
         46  =  Standard paper (15 in. by 11 in.)
         47  =  Invite envelope (220 mm by 220 mm)
         50  =  Letter extra paper (9.275 in. by 12 in.)
         51  =  Legal extra paper (9.275 in. by 15 in.)
         52  =  Tabloid extra paper (11.69 in. by 18 in.)
         53  =  A4 extra paper (236 mm by 322 mm)
         54  =  Letter transverse paper (8.275 in. by 11 in.)
         55  =  A4 transverse paper (210 mm by 297 mm)
         56  =  Letter extra transverse paper (9.275 in. by 12 in.)
         57  =  SuperA/SuperA/A4 paper (227 mm by 356 mm)
         58  =  SuperB/SuperB/A3 paper (305 mm by 487 mm)
         59  =  Letter plus paper (8.5 in. by 12.69 in.)
         60  =  A4 plus paper (210 mm by 330 mm)
         61  =  A5 transverse paper (148 mm by 210 mm)
         62  =  JIS B5 transverse paper (182 mm by 257 mm)
         63  =  A3 extra paper (322 mm by 445 mm)
         64  =  A5 extra paper (174 mm by 235 mm)
         65  =  ISO B5 extra paper (201 mm by 276 mm)
         66  =  A2 paper (420 mm by 594 mm)
         67  =  A3 transverse paper (297 mm by 420 mm)
         68  =  A3 extra transverse paper (322 mm by 445 mm)
         69  =  Japanese Double Postcard (200 mm x 148 mm)
         70  =  A6 (105 mm x 148 mm)
         71  =  Japanese Envelope Kaku #2
         72  =  Japanese Envelope Kaku #3
         73  =  Japanese Envelope Chou #3
         74  =  Japanese Envelope Chou #4
         75  =  Letter Rotated (11in x 8 1/2 11 in)
         76  =  A3 Rotated (420 mm x 297 mm)
         77  =  A4 Rotated (297 mm x 210 mm)
         78  =  A5 Rotated (210 mm x 148 mm)
         79  =  B4 (JIS) Rotated (364 mm x 257 mm)
         80  =  B5 (JIS) Rotated (257 mm x 182 mm)
         81  =  Japanese Postcard Rotated (148 mm x 100 mm)
         82  =  Double Japanese Postcard Rotated (148 mm x 200 mm)
         83  =  A6 Rotated (148 mm x 105 mm)
         84  =  Japanese Envelope Kaku #2 Rotated
         85  =  Japanese Envelope Kaku #3 Rotated
         86  =  Japanese Envelope Chou #3 Rotated
         87  =  Japanese Envelope Chou #4 Rotated
         88  =  B6 (JIS) (128 mm x 182 mm)
         89  =  B6 (JIS) Rotated (182 mm x 128 mm)
         90  =  (12 in x 11 in)
         91  =  Japanese Envelope You #4
         92  =  Japanese Envelope You #4 Rotated
         93  =  PRC 16K (146 mm x 215 mm)
         94  =  PRC 32K (97 mm x 151 mm)
         95  =  PRC 32K(Big) (97 mm x 151 mm)
         96  =  PRC Envelope #1 (102 mm x 165 mm)
         97  =  PRC Envelope #2 (102 mm x 176 mm)
         98  =  PRC Envelope #3 (125 mm x 176 mm)
         99  =  PRC Envelope #4 (110 mm x 208 mm)
        100  =  PRC Envelope #5 (110 mm x 220 mm)
        101  =  PRC Envelope #6 (120 mm x 230 mm)
        102  =  PRC Envelope #7 (160 mm x 230 mm)
        103  =  PRC Envelope #8 (120 mm x 309 mm)
        104  =  PRC Envelope #9 (229 mm x 324 mm)
        105  =  PRC Envelope #10 (324 mm x 458 mm)
        106  =  PRC 16K Rotated
        107  =  PRC 32K Rotated
        108  =  PRC 32K(Big) Rotated
        109  =  PRC Envelope #1 Rotated (165 mm x 102 mm)
        110  =  PRC Envelope #2 Rotated (176 mm x 102 mm)
        111  =  PRC Envelope #3 Rotated (176 mm x 125 mm)
        112  =  PRC Envelope #4 Rotated (208 mm x 110 mm)
        113  =  PRC Envelope #5 Rotated (220 mm x 110 mm)
        114  =  PRC Envelope #6 Rotated (230 mm x 120 mm)
        115  =  PRC Envelope #7 Rotated (230 mm x 160 mm)
        116  =  PRC Envelope #8 Rotated (309 mm x 120 mm)
        117  =  PRC Envelope #9 Rotated (324 mm x 229 mm)
        118  =  PRC Envelope #10 Rotated (458 mm x 324 mm)
    */

## Usage Examples

    // Setting cell alignment
    style->set_align_h(HALIGN_CENTER);
    style->set_align_v(VALIGN_MIDDLE);

    // Applying borders
    style->set_border(BORDERINDEX_EDGE, BORDER_MEDIUM);
    style->set_border(BORDERINDEX_INSIDE, BORDER_THIN);

    // Setting fill pattern
    style->set_fill_pattern(PATTERNTYPE_SOLID);
    style->set_pattern_bg_color(RGB(255, 255, 0));

    // Configuring table totals
    table->set_totals_row_func(2, TOTALS_FUNC_SUM);
    table->set_totals_row_func(3, TOTALS_FUNC_AVERAGE);

Styled using the Piccolo Theme