Document

Examples

Refer to the Using document class section for code examples on how to use the document class.

API Reference

class ixion::document

Higher level document representation designed to handle both cell value storage as well as formula cell calculations.

Public Functions

document()
document(formula_name_resolver_t cell_address_type)

Constructor with custom cell address type.

Parameters

cell_address_type – cell address type to use for cell addresses represented by string values.

~document()
void append_sheet(std::string name)
cell_access get_cell_access(cell_pos pos) const
void set_numeric_cell(cell_pos pos, double val)
void set_string_cell(cell_pos pos, std::string_view s)
void set_boolean_cell(cell_pos pos, bool val)
void empty_cell(cell_pos pos)
double get_numeric_value(cell_pos pos) const
std::string_view get_string_value(cell_pos pos) const
void set_formula_cell(cell_pos pos, std::string_view formula)
void calculate(size_t thread_count)

Calculate all the “dirty” formula cells in the document.

Parameters

thread_count – number of threads to use to perform calculation. When 0 is specified, it only uses the main thread.

struct cell_pos

Public Types

enum cp_type

Values:

enumerator string
enumerator address

Public Functions

cell_pos(const char *p)
cell_pos(const char *p, size_t n)
cell_pos(const std::string &s)
cell_pos(const abs_address_t &addr)

Public Members

cp_type type
std::variant<std::string_view, ixion::abs_address_t> value