orcus::
orcus_csv
¶Inherits from orcus::iface::import_filter
Public Functions
orcus_csv
(spreadsheet::iface::import_factory *factory)¶read_file
(const std::string &filepath)¶expects a system path to a local file
read_stream
(const char *content, size_t len)¶expects the whole content of the file
get_name
() const¶orcus::
orcus_ods
¶Inherits from orcus::iface::import_filter
Public Functions
orcus_ods
(spreadsheet::iface::import_factory *factory)¶~orcus_ods
()¶read_file
(const std::string &filepath)¶expects a system path to a local file
read_stream
(const char *content, size_t len)¶expects the whole content of the file
get_name
() const¶Public Static Functions
detect
(const unsigned char *blob, size_t size)¶orcus::
import_ods
¶Public Static Functions
read_styles
(const char *p, size_t n, spreadsheet::iface::import_styles *data)¶orcus::
orcus_xls_xml
¶Inherits from orcus::iface::import_filter
Public Functions
orcus_xls_xml
(spreadsheet::iface::import_factory *factory)¶~orcus_xls_xml
()¶read_file
(const std::string &filepath)¶expects a system path to a local file
read_stream
(const char *content, size_t len)¶expects the whole content of the file
get_name
() const¶Public Static Functions
detect
(const unsigned char *blob, size_t size)¶orcus::
orcus_xlsx
¶Inherits from orcus::iface::import_filter
Public Functions
orcus_xlsx
(spreadsheet::iface::import_factory *factory)¶~orcus_xlsx
()¶read_file
(const std::string &filepath)¶expects a system path to a local file
read_stream
(const char *content, size_t len)¶expects the whole content of the file
get_name
() const¶Public Static Functions
detect
(const unsigned char *blob, size_t size)¶orcus::
import_xlsx
¶Public Static Functions
read_table
(const char *p, size_t n, spreadsheet::iface::import_table *data)¶orcus::
orcus_gnumeric
¶Inherits from orcus::iface::import_filter
Public Functions
orcus_gnumeric
(spreadsheet::iface::import_factory *factory)¶~orcus_gnumeric
()¶read_file
(const std::string &filepath)¶expects a system path to a local file
read_stream
(const char *content, size_t len)¶expects the whole content of the file
get_name
() const¶Public Static Functions
detect
(const unsigned char *blob, size_t size)¶orcus::
orcus_xml
¶Public Functions
orcus_xml
(xmlns_repository &ns_repo, spreadsheet::iface::import_factory *im_fact, spreadsheet::iface::export_factory *ex_fact)¶~orcus_xml
()¶set_cell_link
(const pstring &xpath, const pstring &sheet, spreadsheet::row_t row, spreadsheet::col_t col)¶commit_range
()¶read_file
(const char *filepath)¶write_file
(const char *filepath)¶orcus::iface::
import_filter
¶Subclassed by orcus::orcus_csv, orcus::orcus_gnumeric, orcus::orcus_ods, orcus::orcus_xls_xml, orcus::orcus_xlsx
Public Functions
import_filter
()¶~import_filter
()¶read_file
(const std::string &filepath) = 0¶expects a system path to a local file
read_stream
(const char *content, size_t len) = 0¶expects the whole content of the file
get_name
() const = 0¶set_config
(const orcus::config &v)¶get_config
() const¶orcus::iface::
document_dumper
¶Subclassed by orcus::spreadsheet::document
orcus::spreadsheet::iface::
import_auto_filter
¶Public Functions
~import_auto_filter
() = 0¶set_range
(const char *p_ref, size_t n_ref) = 0¶Specify the range where the auto filter is applied. The range is given in a 2-dimensional A1-style reference.
p_ref
: pointer to the first character of range string. n_ref
: length of range string. set_column
(orcus::spreadsheet::col_t col) = 0¶Specify the column position of a filter. The position is relative to the first column in the auto filter range.
col
: 0-based column position of a filter relative to the first column. append_column_match_value
(const char *p, size_t n) = 0¶Add a match value to the current column filter.
p
: pointer to the first character of match value. n
: length of match value. commit_column
() = 0¶Commit current column filter to the current auto filter.
commit
() = 0¶Commit current auto filter to the model.
orcus::spreadsheet::iface::
import_conditional_format
¶This is an optional interface to import conditional formatting.
A conditional format consists of:
Each entry consists of:
Each condition consists of:
Public Functions
~import_conditional_format
() = 0¶set_color
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶Sets the color of the current condition. only valid for type == databar or type == colorscale.
set_formula
(const char *p, size_t n) = 0¶Sets the formula, value or string of the current condition.
set_condition_type
(orcus::spreadsheet::condition_type_t type) = 0¶Sets the type for the formula, value or string of the current condition. Only valid for type = iconset, databar or colorscale.
set_date
(orcus::spreadsheet::condition_date_t date) = 0¶Only valid for type = date.
commit_condition
() = 0¶commits the current condition to the current entry.
set_icon_name
(const char *p, size_t n) = 0¶Name of the icons to use in the current entry. only valid for type = iconset
set_databar_gradient
(bool gradient) = 0¶Use a gradient for the current entry. only valid for type == databar
set_databar_axis
(orcus::spreadsheet::databar_axis_t axis) = 0¶Position of the 0 axis in the current entry. only valid for type == databar.
set_databar_color_positive
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶Databar color for positive values. only valid for type == databar.
set_databar_color_negative
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶Databar color for negative values. only valid for type == databar.
set_min_databar_length
(double length) = 0¶Sets the minimum length for a databar. only valid for type == databar.
set_max_databar_length
(double length) = 0¶Sets the maximum length for a databar. only valid for type == databar.
set_show_value
(bool show) = 0¶Don’t show the value in the cell. only valid for type = databar, iconset, colorscale.
set_iconset_reverse
(bool reverse) = 0¶Use the icons in reverse order. only valid for type == iconset.
set_xf_id
(size_t xf) = 0¶TODO: In OOXML the style is stored as dxf and in ODF as named style.
set_operator
(orcus::spreadsheet::condition_operator_t condition_type) = 0¶Sets the current operation used for the current entry. only valid for type == condition
set_type
(orcus::spreadsheet::conditional_format_t type) = 0¶commit_entry
() = 0¶set_range
(const char *p, size_t n) = 0¶set_range
(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start, orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end) = 0¶commit_format
() = 0¶orcus::spreadsheet::iface::
import_data_table
¶Interface for importing data tables.
Public Functions
~import_data_table
() = 0¶set_type
(orcus::spreadsheet::data_table_type_t type) = 0¶set_range
(const char *p_range, size_t n_range) = 0¶set_first_reference
(const char *p_ref, size_t n_ref, bool deleted) = 0¶set_second_reference
(const char *p_ref, size_t n_ref, bool deleted) = 0¶commit
() = 0¶orcus::spreadsheet::iface::
import_factory
¶This interface provides the filters a means to instantiate concrete classes that implement the above interfaces. The client code never has to manually delete objects returned by its methods; the implementor of this interface must manage the life cycles of objects it returns.
The implementor of this interface normally wraps the document instance inside it and have the document instance manage the life cycles of various objects it creates.
Subclassed by orcus::spreadsheet::import_factory
Public Functions
~import_factory
() = 0¶get_global_settings
()¶get_styles
()¶append_sheet
(const char *sheet_name, size_t sheet_name_length) = 0¶get_sheet
(const char *sheet_name, size_t sheet_name_length) = 0¶get_sheet
(orcus::spreadsheet::sheet_t sheet_index) = 0¶Retrieve sheet instance by specified numerical sheet index.
sheet_index
: sheet indexfinalize
() = 0¶This method is called at the end of import, to give the implementor a chance to perform post-processing if necessary.
orcus::spreadsheet::iface::
import_global_settings
¶Subclassed by orcus::spreadsheet::import_global_settings
Public Functions
~import_global_settings
() = 0¶set_origin_date
(int year, int month, int day) = 0¶Set the date that is to be represented by a value of 0. All date values will be internally represented relative to this date afterward.
year
: 1-based value representing year month
: 1-based value representing month, varying from 1 through 12. day
: 1-based value representing day, varying from 1 through 31. set_default_formula_grammar
(orcus::spreadsheet::formula_grammar_t grammar) = 0¶Set formula grammar to be used globally when parsing formulas if the grammar is not specified. This grammar will also be used when parsing range strings associated with shared formula ranges, array formula ranges, autofilter ranges etc.
grammar
: default formula grammar get_default_formula_grammar
() const = 0¶Get current default formula grammar.
Interface class designed to be derived by the implementor.
Subclassed by orcus::spreadsheet::import_shared_strings
Public Functions
Append new string to the string list. Order of insertion is important since that determines the numerical ID values of inserted strings. Note that this method assumes that the caller knows the string being appended is not yet in the pool.
s
: pointer to the first character of the string array. The string array doesn’t necessary have to be null-terminated. n
: length of the string.Similar to the append method, it adds new string to the string pool; however, this method checks if the string being added is already in the pool before each insertion, to avoid duplicated strings.
s
: pointer to the first character of the string array. The string array doesn’t necessary have to be null-terminated. n
: length of the string.orcus::spreadsheet::iface::
import_sheet
¶Interface for sheet.
Subclassed by orcus::spreadsheet::sheet
Public Functions
~import_sheet
() = 0¶get_sheet_properties
()¶get_data_table
()¶Get an interface for importing data tables. Note that the implementer may decide not to support this feature in which case this method returns NULL. The implementer is responsible for managing the life cycle of the returned interface object.
The implementor should also initialize the internal state of the temporary data table object when this method is called.
get_auto_filter
()¶Get an interface for importing auto filter ranges.
The implementor should also initialize the internal state of the temporary auto filter object when this method is called.
get_table
()¶Get an interface for importing tables. The implementer is responsible for managing the life cycle of the returned interface object.
The implementor should also initialize the internal state of the temporary table object when this method is called.
get_conditional_format
()¶get an interface for importing conditional formats. The implementer is responsible for managing the life cycle of the returned interface object.
set_auto
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char *p, size_t n) = 0¶Set raw string value to a cell and have the implementation auto-recognize its data type.
row
: row ID col
: column ID p
: pointer to the first character of the raw string value. n
: size of the raw string value. set_string
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) = 0¶Set string value to a cell.
row
: row ID col
: column ID sindex
: 0-based string index in the shared string table. set_value
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) = 0¶Set numerical value to a cell.
row
: row ID col
: column ID value
: value being assigned to the cell. set_bool
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) = 0¶Set a boolean value to a cell.
row
: row ID col
: col ID value
: boolean value being assigned to the cell set_date_time
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, int year, int month, int day, int hour, int minute, double second) = 0¶Set date and time value to a cell.
row
: row ID col
: column ID set_format
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t xf_index) = 0¶Set cell format to specified cell. The cell format is referred to by the xf (cell format) index in the styles table.
row
: row ID col
: column ID index
: 0-based xf (cell format) index set_format
(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start, orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end, size_t xf_index) = 0¶Set cell format to specified cell range. The cell format is referred to by the xf (cell format) index in the styles table.
row_start
: start row ID col_start
: start column ID row_end
: end row ID col_end
: end column ID index
: 0-based xf (cell format) index set_formula
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char *p, size_t n) = 0¶Set normal, non-shared formula expression to specified cell.
row
: row ID col
: column ID grammar
: grammar used in the formula expression p
: pointer to the first character of the raw formula expression string. n
: size of the raw formula expression string. Set shared formula expression to specified cell. This call also registers the formula expression to a common formula expression pool to allow it to be looked up by the specified index later.
row
: row ID col
: column ID grammar
: grammar used in the formula expression sindex
: shared formula index (0-based) p_formula
: pointer to the first character of the raw formula expression string. n_formula
: size of the raw formula expression string. p_range
: pointer to the first character of the range string n_range
: size of the raw range string Set shared formula expression to specified cell. This call also registers the formula expression to a common formula expression pool to allow it to be looked up by the specified index later.
row
: row ID col
: column ID grammar
: grammar used in the formula expression sindex
: shared formula index (0-based) p_formula
: pointer to the first character of the raw formula expression string. n_formula
: size of the raw formula expression string. Set shared formula to specified cell by shared formula index. The formula expression itself associated with the index must be defined.
row
: row ID col
: column ID grammar
: grammar used in the formula expression sindex
: shared formula index (0-based) p
: pointer to the first character of the raw formula expression string. n
: size of the raw formula expression string. set_formula_result
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) = 0¶set_formula_result
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char *p, size_t n) = 0¶set_array_formula
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char *p, size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols) = 0¶Set a array formula to the specified cells. The formula covers an area specified by array_rows and array_cols beginning from the base cell.
row
: row ID col
: column ID grammar
: grammar used in the formula expression p
: pointer to the first character of the raw formula expression string. n
: size of the raw formula expression string array_rows
: number of rows the array formula covers array_cols
: number of columns the array formula covers set_array_formula
(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char *p, size_t n, const char *p_range, size_t n_range) = 0¶Set a array formula to the specified cells. The formula covers an area specified by the range string.
row
: row ID col
: column ID grammar
: grammar used in the formula expression p
: pointer to the first character of the raw formula expression string. n
: size of the raw formula expression string p_range
: pointer to the first character of the range string n_range
: isze of the range string orcus::spreadsheet::iface::
import_sheet_properties
¶Subclassed by orcus::spreadsheet::sheet_properties
Public Functions
~import_sheet_properties
() = 0¶set_column_width
(orcus::spreadsheet::col_t col, double width, orcus::length_unit_t unit) = 0¶set_row_height
(orcus::spreadsheet::row_t row, double height, orcus::length_unit_t unit) = 0¶set_merge_cell_range
(const char *p_range, size_t n_range) = 0¶Specify merged cell range. The range is given in a 2-dimensional A1-style reference.
p_range
: pointer to the first character of reference string. n_range
: length of reference string. orcus::spreadsheet::iface::
import_styles
¶Interface for styles. Note that because the default style must have an index of 0 in each style category, the caller must set the default styles first before importing and setting real styles. ID’s of styles are assigned sequentially starting with 0 and upward in each style category.
In contrast to xf formatting, dxf (differential formats) formatting only stores the format information that is explicitly set. It does not store formatting from the default style. Applying a dxf format to an object only applies those explicitly set formats from the dxf entry, while all the other formats are retained.
Subclassed by orcus::spreadsheet::import_styles
Public Functions
~import_styles
() = 0¶set_font_count
(size_t n) = 0¶set_font_bold
(bool b) = 0¶set_font_italic
(bool b) = 0¶set_font_name
(const char *s, size_t n) = 0¶set_font_size
(double point) = 0¶set_font_underline
(orcus::spreadsheet::underline_t e) = 0¶set_font_underline_width
(underline_width_t e) = 0¶set_font_underline_mode
(underline_mode_t e) = 0¶set_font_underline_type
(underline_type_t e) = 0¶set_font_underline_color
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶set_font_color
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶set_strikethrough_style
(orcus::spreadsheet::strikethrough_style_t s) = 0¶set_strikethrough_type
(orcus::spreadsheet::strikethrough_type_t s) = 0¶set_strikethrough_width
(orcus::spreadsheet::strikethrough_width_t s) = 0¶set_strikethrough_text
(orcus::spreadsheet::strikethrough_text_t s) = 0¶commit_font
() = 0¶set_fill_count
(size_t n) = 0¶set_fill_pattern_type
(const char *s, size_t n) = 0¶set_fill_fg_color
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶set_fill_bg_color
(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶commit_fill
() = 0¶set_border_count
(size_t n) = 0¶set_border_style
(orcus::spreadsheet::border_direction_t dir, const char *s, size_t n) = 0¶set_border_style
(orcus::spreadsheet::border_direction_t dir, border_style_t style) = 0¶set_border_color
(orcus::spreadsheet::border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0¶set_border_width
(orcus::spreadsheet::border_direction_t dir, double width, orcus::length_unit_t unit) = 0¶commit_border
() = 0¶set_cell_locked
(bool b) = 0¶set_cell_print_content
(bool b) = 0¶commit_cell_protection
() = 0¶set_number_format_count
(size_t n) = 0¶set_number_format_identifier
(size_t id) = 0¶set_number_format_code
(const char *s, size_t n) = 0¶commit_number_format
() = 0¶set_cell_xf_count
(size_t n) = 0¶set_cell_style_xf_count
(size_t n) = 0¶set_dxf_count
(size_t n) = 0¶set_xf_font
(size_t index) = 0¶set_xf_fill
(size_t index) = 0¶set_xf_border
(size_t index) = 0¶set_xf_protection
(size_t index) = 0¶set_xf_number_format
(size_t index) = 0¶set_xf_style_xf
(size_t index) = 0¶set_xf_apply_alignment
(bool b) = 0¶set_xf_horizontal_alignment
(orcus::spreadsheet::hor_alignment_t align) = 0¶set_xf_vertical_alignment
(orcus::spreadsheet::ver_alignment_t align) = 0¶commit_cell_xf
() = 0¶commit_cell_style_xf
() = 0¶commit_dxf
() = 0¶set_cell_style_count
(size_t n) = 0¶set_cell_style_name
(const char *s, size_t n) = 0¶set_cell_style_xf
(size_t index) = 0¶set_cell_style_builtin
(size_t index) = 0¶set_cell_style_parent_name
(const char *s, size_t n) = 0¶commit_cell_style
() = 0¶orcus::spreadsheet::iface::
import_table
¶Interface for table. A table is a range within a sheet that consists of one or more data columns with a header row that contains their labels.
Public Functions
~import_table
() = 0¶get_auto_filter
()¶set_identifier
(size_t id) = 0¶set_range
(const char *p_ref, size_t n_ref) = 0¶set_totals_row_count
(size_t row_count) = 0¶set_name
(const char *p, size_t n) = 0¶set_display_name
(const char *p, size_t n) = 0¶set_column_count
(size_t n) = 0¶set_column_identifier
(size_t id) = 0¶set_column_name
(const char *p, size_t n) = 0¶set_column_totals_row_label
(const char *p, size_t n) = 0¶set_column_totals_row_function
(orcus::spreadsheet::totals_row_function_t func) = 0¶commit_column
() = 0¶set_style_name
(const char *p, size_t n) = 0¶set_style_show_first_column
(bool b) = 0¶set_style_show_last_column
(bool b) = 0¶set_style_show_row_stripes
(bool b) = 0¶set_style_show_column_stripes
(bool b) = 0¶commit
() = 0¶orcus::spreadsheet::iface::
export_factory
¶Subclassed by orcus::spreadsheet::export_factory
Public Functions
~export_factory
() = 0¶get_sheet
(const char *sheet_name, size_t sheet_name_length) const = 0¶orcus::spreadsheet::iface::
export_sheet
¶Subclassed by orcus::spreadsheet::sheet
orcus::spreadsheet::
row_t
¶orcus::spreadsheet::
col_t
¶orcus::spreadsheet::
sheet_t
¶orcus::spreadsheet::
color_elem_t
¶orcus::spreadsheet::
col_width_t
¶orcus::spreadsheet::
row_height_t
¶orcus::spreadsheet::
border_direction_t
¶Values:
unknown
= 0¶top
¶bottom
¶left
¶right
¶diagonal
¶diagonal_bl_tr
¶diagonal_tl_br
¶orcus::spreadsheet::
border_style_t
¶Values:
unknown
= 0¶none
¶solid
¶dash_dot
¶dash_dot_dot
¶dashed
¶dotted
¶double_border
¶hair
¶medium
¶medium_dash_dot
¶medium_dash_dot_dot
¶medium_dashed
¶slant_dash_dot
¶thick
¶thin
¶double_thin
¶fine_dashed
¶orcus::spreadsheet::
formula_grammar_t
¶Values:
unknown
= 0xlsx_2007
¶xlsx_2010
¶ods
¶gnumeric
¶orcus::spreadsheet::
underline_t
¶Values:
none
= 0¶single_line
¶single_accounting
¶double_line
¶double_accounting
¶dotted
¶dash
¶long_dash
¶dot_dash
¶dot_dot_dot_dash
¶wave
¶orcus::spreadsheet::
hor_alignment_t
¶Values:
unknown
= 0left
¶center
¶right
¶justified
¶distributed
¶filled
¶orcus::spreadsheet::
ver_alignment_t
¶Values:
unknown
= 0top
¶middle
¶bottom
¶justified
¶distributed
¶orcus::spreadsheet::
data_table_type_t
¶Type of data table. A data table can be either of a single-variable column, a single-variable row, or a double-variable type that uses both column and row input cells.
Values:
column
¶row
¶both
¶orcus::spreadsheet::
totals_row_function_t
¶Function type used in the totals row of a table.
Values:
none
= 0sum
¶minimum
¶maximum
¶average
¶count
¶count_numbers
¶standard_deviation
¶variance
¶custom
¶orcus::spreadsheet::
conditional_format_t
¶Values:
unknown
= 0condition
¶date
¶formula
¶colorscale
¶databar
¶iconset
¶orcus::spreadsheet::
condition_operator_t
¶Values:
unknown
= 0equal
¶less
¶greater
¶greater_equal
¶less_equal
¶not_equal
¶between
¶not_between
¶duplicate
¶unique
¶top_n
¶bottom_n
¶above_average
¶below_average
¶above_equal_average
¶below_equal_average
¶contains_error
¶contains_no_error
¶begins_with
¶ends_with
¶contains
¶contains_blanks
¶not_contains
¶expression
¶orcus::spreadsheet::
condition_type_t
¶Values:
unknown
= 0value
¶automatic
¶max
¶min
¶formula
¶percent
¶percentile
¶