Types¶
Macros¶
-
IXION_ASCII
(literal)¶ Use this macro with a literal string and it returns the literal string followed by its length.
Primitive Types¶
-
enum
ixion
::
celltype_t
¶ This type represents a raw cell type as stored in model_context.
Values:
-
unknown
= 0¶ unknown cell type.
-
string
¶ cell contains a raw string value.
-
numeric
¶ cell contains a raw numeric value.
-
formula
¶ cell contains a formula object.
-
boolean
¶ cell contains a raw boolean value.
-
empty
¶ cell is empty and contains absolutely nothing.
-
-
enum
ixion
::
cell_value_t
¶ Similar to celltype_t, except that it does not include a formula type. Instead it uses the formula result type to classify its type. The error type refers to an error value in formula cell.
Values:
-
unknown
= 0 unknown cell value type.
-
string
either the cell contains a raw string value, or a calculated formula cell whose result is of string type.
-
numeric
either the cell contains a raw numeric value, or a calculated formula cell whose result is of numeric type.
-
error
¶ this type corresponds with a formula cell whose result contains an error.
-
boolean
either the cell contains a raw boolean value type, or a calculated formula cell whose result is of boolean type.
-
empty
the cell is empty and contains nothing whatsoever.
-
-
enum
ixion
::
value_t
¶ Values:
-
value_none
= 0x00¶
-
value_string
= 0x01¶
-
value_numeric
= 0x02¶
-
value_boolean
= 0x04¶
-
value_empty
= 0x08¶
-
-
enum
ixion
::
table_area_t
¶ Value that specifies the area inside a table.
Values:
-
table_area_none
= 0x00¶
-
table_area_data
= 0x01¶
-
table_area_headers
= 0x02¶
-
table_area_totals
= 0x04¶
-
table_area_all
= 0x07¶
-
-
enum
ixion
::
formula_name_resolver_t
¶ Formula name resolver type specifies how name tokens are resolved.
Values:
-
unknown
= 0 Unknown syntax.
-
excel_a1
= 1¶ Default A1 syntax used in Excel
-
excel_r1c1
= 2¶ R1C1 syntax available in Excel
-
calc_a1
= 3¶ Default A1 syntax used in Calc
-
odff
= 4¶ OpenFormula syntax
-
odf_cra
= 5¶ ODF cell-range-address syntax
-
-
enum
ixion
::
formula_error_t
¶ Formula error types. Note that only the official (i.e. non-internal) error types have their corresponding error strings. Use the ixion::get_formula_error_name function to convert an enum member value of this type to its string representation.
Values:
-
no_error
= 0¶
-
ref_result_not_available
= 1¶
-
division_by_zero
= 2¶
-
invalid_expression
= 3¶
-
name_not_found
= 4¶
-
no_range_intersection
= 5¶
-
invalid_value_type
= 6¶
-
no_result_error
= 253¶
-
stack_error
= 254¶
-
general_error
= 255¶
-
-
enum
ixion
::
rc_direction_t
¶ Specifies iterator direction of a model_context.
Values:
-
horizontal
¶ Flows left to right first then top to bottom.
-
vertical
¶ Flows top to bottom first then left to right.
-
-
using
ixion::col_t = typedef int32_t
Column index type.
-
using
ixion::row_t = typedef int32_t
Row index type.
-
using
ixion::sheet_t = typedef int32_t
Sheet index type.
-
using
ixion::rc_t = typedef row_t
Integer type that is large enough to store either a row or a column index.
-
using
ixion::string_id_t = typedef uint64_t
String ID type.
All string values are converted into integer tokens. You need to call the get_string() method of ixion::iface::formula_model_access to get the actual string value.
-
using
ixion::table_areas_t = typedef int32_t
type that stores a mixture of ixion::table_area_t values.
-
using
ixion::formula_tokens_t = typedef std::vector<std::unique_ptr<formula_token> >
-
const string_id_t
ixion
::
empty_string_id
¶ Global string ID representing an empty string.
-
const sheet_t
ixion
::
global_scope
¶ Special sheet ID that represents a global scope, as opposed to a sheet-local scope.
-
const sheet_t
ixion
::
invalid_sheet
¶ Special sheet ID that represents an invalid sheet.
-
struct
rc_size_t
¶ This structure stores a 2-dimensional size information.
-
struct
formula_group_t
¶ This strcuture stores information about grouped formula cells. All formula cells belonging to the same group should return the same set of values.
Public Functions
-
formula_group_t
()¶
-
formula_group_t
(const formula_group_t &r)¶
-
~formula_group_t
()¶
-
formula_group_t &
operator=
(const formula_group_t &other)¶
-
Column Store Types¶
-
using
ixion::boolean_element_block = typedef mdds::mtv::boolean_element_block
-
using
ixion::numeric_element_block = typedef mdds::mtv::double_element_block
-
using
ixion::string_element_block = typedef mdds::mtv::uint64_element_block
-
using
ixion::formula_element_block = typedef mdds::mtv::noncopyable_managed_element_block<element_type_formula, ixion::formula_cell>
-
using
ixion::ixion_element_block_func = typedef mdds::mtv::custom_block_func1<formula_element_block>
-
using
ixion::column_store_t = typedef mdds::multi_type_vector<ixion_element_block_func>
Type that represents a whole column.
-
using
ixion::column_stores_t = typedef std::deque<column_store_t>
Type that represents a collection of columns.
-
using
ixion::matrix_store_t = typedef mdds::multi_type_matrix<matrix_store_trait>
-
struct
matrix_store_trait
¶ The integer element blocks are used to store string ID’s. The actual string element blocks are not used in the matrix store in ixion.
-
constexpr mdds::mtv::element_t
ixion
::
element_type_empty
= mdds::mtv::element_type_empty¶
-
constexpr mdds::mtv::element_t
ixion
::
element_type_boolean
= mdds::mtv::element_type_boolean¶
-
constexpr mdds::mtv::element_t
ixion
::
element_type_numeric
= mdds::mtv::element_type_double¶
-
constexpr mdds::mtv::element_t
ixion
::
element_type_string
= mdds::mtv::element_type_uint64¶
-
constexpr mdds::mtv::element_t
ixion
::
element_type_formula
= mdds::mtv::element_type_user_start¶
Address Types¶
-
struct
address_t
¶ Stores either absolute or relative address.
Public Functions
-
address_t
()¶
-
address_t
(sheet_t _sheet, row_t _row, col_t _column, bool _abs_sheet = true, bool _abs_row = true, bool _abs_column = true)¶
-
address_t
(const abs_address_t &r)¶
-
bool
valid
() const¶
-
abs_address_t
to_abs
(const abs_address_t &origin) const¶
-
std::string
get_name
() const¶
-
void
set_absolute
(bool abs)¶
Public Members
-
sheet_t
sheet
¶
-
row_t
row
¶
-
col_t
column
¶
-
bool
abs_sheet
¶
-
bool
abs_row
¶
-
bool
abs_column
¶
-
struct
hash
¶
-
-
struct
rc_address_t
¶ Stores either absolute or relative address, but unlike the address_t counterpart, this struct only stores row and column positions.
Public Functions
-
rc_address_t
()¶
-
rc_address_t
(row_t _row, col_t _column, bool _abs_row = true, bool _abs_column = true)¶
-
rc_address_t
(const rc_address_t &r)¶
-
struct
hash
¶ Public Functions
-
size_t
operator()
(const rc_address_t &addr) const¶
-
size_t
-
-
struct
abs_address_t
¶ Stores absolute address, and absolute address only.
Public Functions
-
abs_address_t
()¶
-
abs_address_t
(init_invalid)¶
-
abs_address_t
(sheet_t _sheet, row_t _row, col_t _column)¶
-
abs_address_t
(const abs_address_t &r)¶
-
bool
valid
() const¶
-
std::string
get_name
() const¶
-
struct
hash
¶ Public Functions
-
size_t
operator()
(const abs_address_t &addr) const¶
-
size_t
-
-
struct
abs_rc_address_t
¶ -
Public Functions
-
abs_rc_address_t
()¶
-
abs_rc_address_t
(init_invalid)¶
-
abs_rc_address_t
(row_t _row, col_t _column)¶
-
abs_rc_address_t
(const abs_rc_address_t &r)¶
-
abs_rc_address_t
(const abs_address_t &r)¶
-
bool
valid
() const¶
-
struct
hash
¶ Public Functions
-
size_t
operator()
(const abs_rc_address_t &addr) const¶
-
size_t
-
-
struct
range_t
¶ Stores range whose component may be relative or absolute.
Public Functions
-
range_t
()¶
-
range_t
(const abs_range_t &r)¶
-
bool
valid
() const¶
-
void
set_all_columns
()¶ Expand the range horizontally to include all columns. The row range will remain unchanged.
-
void
set_all_rows
()¶ Expand the range vertically to include all rows. The column range will remain unchanged.
-
bool
all_columns
() const¶ - Return
- true if the range is unspecified in the horizontal direction i.e. all columns are selected, false otherwise.
-
bool
all_rows
() const¶ - Return
- true if the range is unspecified in the vertical direction i.e. all rows are selected, false otherwise.
-
abs_range_t
to_abs
(const abs_address_t &origin) const¶
-
void
set_absolute
(bool abs)¶
-
struct
hash
¶
-
-
struct
abs_range_t
¶ Stores absolute range address.
Public Functions
-
abs_range_t
()¶
-
abs_range_t
(init_invalid)¶
-
abs_range_t
(sheet_t _sheet, row_t _row, col_t _col)¶
-
abs_range_t
(sheet_t _sheet, row_t _row, col_t _col, row_t _row_span, col_t _col_span)¶ - Parameters
_sheet
: 0-based sheet index._row
: 0-based row position of the top-left cell of the range._col
: 0-based column position of the top-left cell of the range._row_span
: row length of the range. It must be 1 or greater._col_span
: column length of the range. It must be 1 or greater.
-
abs_range_t
(const abs_address_t &addr)¶
-
abs_range_t
(const abs_address_t &addr, row_t row_span, col_t col_span)¶
-
bool
valid
() const¶
-
void
set_all_columns
()¶ Expand the range horizontally to include all columns. The row range will remain unchanged.
-
void
set_all_rows
()¶ Expand the range vertically to include all rows. The column range will remain unchanged.
-
bool
all_columns
() const¶ - Return
- true if the range is unspecified in the horizontal direction i.e. all columns are selected, false otherwise.
-
bool
all_rows
() const¶ - Return
- true if the range is unspecified in the vertical direction i.e. all rows are selected, false otherwise.
-
bool
contains
(const abs_address_t &addr) const¶ Check whether or not a given address is contained within this range.
-
void
reorder
()¶ Reorder range values as needed to ensure the range is valid.
-
struct
hash
¶ Public Functions
-
size_t
operator()
(const abs_range_t &range) const¶
-
size_t
-
-
struct
abs_rc_range_t
¶ -
Public Functions
-
abs_rc_range_t
()¶
-
abs_rc_range_t
(init_invalid)¶
-
abs_rc_range_t
(const abs_rc_range_t &other)¶
-
abs_rc_range_t
(const abs_range_t &other)¶
-
bool
valid
() const¶
-
void
set_all_columns
()¶ Expand the range horizontally to include all columns. The row range will remain unchanged.
-
void
set_all_rows
()¶ Expand the range vertically to include all rows. The column range will remain unchanged.
-
bool
all_columns
() const¶ - Return
- true if the range is unspecified in the horizontal direction i.e. all columns are selected, false otherwise.
-
bool
all_rows
() const¶ - Return
- true if the range is unspecified in the vertical direction i.e. all rows are selected, false otherwise.
-
bool
contains
(const abs_rc_address_t &addr) const¶ Check whether or not a given address is contained within this range.
-
struct
hash
¶ Public Functions
-
size_t
operator()
(const abs_rc_range_t &range) const¶
-
size_t
-
-
using
ixion::abs_address_set_t = typedef std::unordered_set<abs_address_t, abs_address_t::hash>
Type that represents a collection of multiple absolute cell addresses.
-
using
ixion::abs_range_set_t = typedef std::unordered_set<abs_range_t, abs_range_t::hash>
-
using
ixion::abs_rc_range_set_t = typedef std::unordered_set<abs_rc_range_t, abs_rc_range_t::hash>
Utility Functions¶
-
const char *
ixion
::
get_formula_error_name
(formula_error_t fe)¶ Get a string representation of a formula error type.
- Return
- string representation of the formula error type.
- Parameters
fe
: enum value representing a formula error type.