Primitive Types

typedef int ixion::col_t

Column index type.

typedef int ixion::row_t

Row index type.

typedef int ixion::sheet_t

Sheet index type.

typedef unsigned long ixion::string_id_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.

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 string_id_t ixion::empty_string_id

Global string ID representing an empty string.

enum ixion::celltype_t

Values:

unknown = 0
string
numeric
formula
empty
enum ixion::value_t

Values:

value_none = 0x00
value_string = 0x01
value_numeric = 0x02
value_empty = 0x04
class ixion::values_t

type that stores a mixture of value_t values.

Public Functions

values_t(int val)
bool is_numeric() const
bool is_string() const
bool is_empty() const
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
typedef int ixion::table_areas_t

type that stores a mixture of table_area_t values.

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
typedef mdds::multi_type_vector<ixion_element_block_func> ixion::column_store_t

Type that represents a whole column.

typedef std::vector<column_store_t *> ixion::column_stores_t

Type that represents a collection of columns.

enum ixion::formula_error_t

Formula error types.

Values:

no_error = 0
ref_result_not_available = 1
division_by_zero = 2
invalid_expression = 3
stack_error = 4
general_error = 5
const char *ixion::get_formula_error_name(formula_error_t fe)

Address Types

struct ixion::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 ixion::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 ixion::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_whole_column()

Expand the range to include the entire columns. The row range will remain unchanged.

void set_whole_row()

Expand the range to include the entire rows. The column range will remain unchanged.

bool whole_column() const

Return
true if the range is unspecified in the column direction, false otherwise.

bool whole_row() const

Return
true if the range is unspecified in the row direction, false otherwise.

abs_range_t to_abs(const abs_address_t &origin) const

Public Members

address_t first
address_t last
struct hash

Public Functions

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

Stores absolute range address.

Public Types

enum init_invalid

Values:

invalid

Public Functions

abs_range_t()
abs_range_t(init_invalid)
bool valid() const
void set_whole_column()

Expand the range to include the entire columns. The row range will remain unchanged.

void set_whole_row()

Expand the range to include the entire rows. The column range will remain unchanged.

bool whole_column() const

Return
true if the range is unspecified in the column direction, false otherwise.

bool whole_row() const

Return
true if the range is unspecified in the row direction, 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
typedef std::unordered_set<abs_address_t, abs_address_t::hash> ixion::cell_address_set_t

Type that represents a collection of multiple cell addresses.

typedef cell_address_set_t ixion::dirty_formula_cells_t

Collection of formula cells that have been modified or formula cells that reference other modified cells either directly or indirectly.

typedef std::vector<abs_address_t> ixion::modified_cells_t

Collection of cells that have been modified since last recalculation.