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, const char *p, size_t n)
void set_string_cell(cell_pos pos, const std::string &s)
void set_boolean_cell(cell_pos pos, bool val)
void empty_cell(cell_pos pos)
double get_numeric_value(cell_pos pos) const
const std::string *get_string_value(cell_pos pos) const
void set_formula_cell(cell_pos pos, const std::string &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
const char *str
size_t n
sheet_t sheet
row_t row
col_t column
union ixion::document::cell_pos::[anonymous] value