Primitive Types

enum ixion::celltype_t

Values:

unknown = 0
string
numeric
formula
boolean
empty
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
excel_a1 = 1
excel_r1c1 = 2
calc_a1 = 3
odff = 4
enum ixion::formula_error_t

Formula error types.

See
ixion::get_formula_error_name

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
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.

class values_t

type that stores a mixture of value_t values.

Public Functions

values_t(int val)
bool is_numeric() const
bool is_boolean() const
bool is_string() const
bool is_empty() const
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.

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.

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::vector<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.

Public Types

typedef mdds::mtv::uint64_element_block integer_element_block
typedef mdds::mtv::string_element_block string_element_block
typedef mdds::mtv::element_block_func element_block_func
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 address_t &r)
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

Public Functions

size_t operator()(const address_t &addr) const
struct abs_address_t

Stores absolute address, and absolute address only.

Public Types

enum init_invalid

Values:

invalid

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

Public Members

sheet_t sheet
row_t row
col_t column
struct hash

Public Functions

size_t operator()(const abs_address_t &addr) const
struct range_t

Stores range whose component may be relative or absolute.

Public Functions

range_t()
range_t(const address_t &_first, const address_t &_last)
range_t(const range_t &r)
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)

Public Members

address_t first
address_t last
struct hash

Public Functions

size_t operator()(const range_t &range) const
struct abs_range_t

Stores absolute range address.

Public Types

enum init_invalid

Values:

invalid

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)
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.

Public Members

abs_address_t first
abs_address_t last
struct hash

Public Functions

size_t operator()(const abs_range_t &range) const
using ixion::abs_address_set_t = typedef std::unordered_set<abs_address_t, abs_address_t::hash>

Type that represents a collection of multiple 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>