8 #ifndef ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
9 #define ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
13 #include "orcus/spreadsheet/types.hpp"
14 #include "orcus/types.hpp"
15 #include "orcus/env.hpp"
21 namespace orcus {
namespace spreadsheet {
namespace iface {
43 virtual size_t append(
const char* s,
size_t n) = 0;
56 virtual size_t add(
const char* s,
size_t n) = 0;
58 virtual void set_segment_font(
size_t font_index) = 0;
59 virtual void set_segment_bold(
bool b) = 0;
60 virtual void set_segment_italic(
bool b) = 0;
61 virtual void set_segment_font_name(
const char* s,
size_t n) = 0;
62 virtual void set_segment_font_size(
double point) = 0;
63 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
64 virtual void append_segment(
const char* s,
size_t n) = 0;
65 virtual size_t commit_segments() = 0;
87 virtual void set_font_count(
size_t n) = 0;
88 virtual void set_font_bold(
bool b) = 0;
89 virtual void set_font_italic(
bool b) = 0;
90 virtual void set_font_name(
const char* s,
size_t n) = 0;
91 virtual void set_font_size(
double point) = 0;
92 virtual void set_font_underline(orcus::spreadsheet::underline_t e) = 0;
93 virtual void set_font_underline_width(underline_width_t e) = 0;
94 virtual void set_font_underline_mode(underline_mode_t e) = 0;
95 virtual void set_font_underline_type(underline_type_t e) = 0;
96 virtual void set_font_underline_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
97 virtual void set_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
98 virtual void set_strikethrough_style(orcus::spreadsheet::strikethrough_style_t s) = 0;
99 virtual void set_strikethrough_type(orcus::spreadsheet::strikethrough_type_t s) = 0;
100 virtual void set_strikethrough_width(orcus::spreadsheet::strikethrough_width_t s) = 0;
101 virtual void set_strikethrough_text(orcus::spreadsheet::strikethrough_text_t s) = 0;
102 virtual size_t commit_font() = 0;
106 virtual void set_fill_count(
size_t n) = 0;
107 virtual void set_fill_pattern_type(
const char* s,
size_t n) = 0;
108 virtual void set_fill_fg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
109 virtual void set_fill_bg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
110 virtual size_t commit_fill() = 0;
114 virtual void set_border_count(
size_t n) = 0;
117 virtual void set_border_style(orcus::spreadsheet::border_direction_t dir,
const char* s,
size_t n) = 0;
118 virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, border_style_t style) = 0;
119 virtual void set_border_color(
120 orcus::spreadsheet::border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
121 virtual void set_border_width(orcus::spreadsheet::border_direction_t dir,
double width, orcus::length_unit_t unit) = 0;
122 virtual size_t commit_border() = 0;
125 virtual void set_cell_hidden(
bool b) = 0;
126 virtual void set_cell_locked(
bool b) = 0;
127 virtual void set_cell_print_content(
bool b) = 0;
128 virtual void set_cell_formula_hidden(
bool b) = 0;
129 virtual size_t commit_cell_protection() = 0;
132 virtual void set_number_format_count(
size_t n) = 0;
133 virtual void set_number_format_identifier(
size_t id) = 0;
134 virtual void set_number_format_code(
const char* s,
size_t n) = 0;
135 virtual size_t commit_number_format() = 0;
139 virtual void set_cell_xf_count(
size_t n) = 0;
140 virtual void set_cell_style_xf_count(
size_t n) = 0;
141 virtual void set_dxf_count(
size_t n) = 0;
143 virtual void set_xf_font(
size_t index) = 0;
144 virtual void set_xf_fill(
size_t index) = 0;
145 virtual void set_xf_border(
size_t index) = 0;
146 virtual void set_xf_protection(
size_t index) = 0;
147 virtual void set_xf_number_format(
size_t index) = 0;
148 virtual void set_xf_style_xf(
size_t index) = 0;
149 virtual void set_xf_apply_alignment(
bool b) = 0;
150 virtual void set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t align) = 0;
151 virtual void set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t align) = 0;
153 virtual size_t commit_cell_xf() = 0;
154 virtual size_t commit_cell_style_xf() = 0;
155 virtual size_t commit_dxf() = 0;
159 virtual void set_cell_style_count(
size_t n) = 0;
160 virtual void set_cell_style_name(
const char* s,
size_t n) = 0;
161 virtual void set_cell_style_xf(
size_t index) = 0;
162 virtual void set_cell_style_builtin(
size_t index) = 0;
163 virtual void set_cell_style_parent_name(
const char* s,
size_t n) = 0;
164 virtual size_t commit_cell_style() = 0;
172 virtual void set_column_width(orcus::spreadsheet::col_t col,
double width, orcus::length_unit_t unit) = 0;
174 virtual void set_column_hidden(orcus::spreadsheet::col_t col,
bool hidden) = 0;
176 virtual void set_row_height(orcus::spreadsheet::row_t row,
double height, orcus::length_unit_t unit) = 0;
178 virtual void set_row_hidden(orcus::spreadsheet::row_t row,
bool hidden) = 0;
198 virtual void set_type(orcus::spreadsheet::data_table_type_t type) = 0;
200 virtual void set_range(
const char* p_range,
size_t n_range) = 0;
202 virtual void set_first_reference(
const char* p_ref,
size_t n_ref,
bool deleted) = 0;
204 virtual void set_second_reference(
const char* p_ref,
size_t n_ref,
bool deleted) = 0;
206 virtual void commit() = 0;
221 virtual void set_range(
const char* p_ref,
size_t n_ref) = 0;
230 virtual void set_column(orcus::spreadsheet::col_t col) = 0;
248 virtual void commit() = 0;
282 virtual void set_color(color_elem_t alpha, color_elem_t red,
283 color_elem_t green, color_elem_t blue) = 0;
288 virtual void set_formula(
const char* p,
size_t n) = 0;
299 virtual void set_date(orcus::spreadsheet::condition_date_t date) = 0;
329 color_elem_t green, color_elem_t blue) = 0;
336 color_elem_t green, color_elem_t blue) = 0;
371 virtual void set_operator(orcus::spreadsheet::condition_operator_t condition_type) = 0;
373 virtual void set_type(orcus::spreadsheet::conditional_format_t type) = 0;
375 virtual void commit_entry() = 0;
377 virtual void set_range(
const char* p,
size_t n) = 0;
379 virtual void set_range(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start,
380 orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end) = 0;
382 virtual void commit_format() = 0;
396 virtual void set_identifier(
size_t id) = 0;
398 virtual void set_range(
const char* p_ref,
size_t n_ref) = 0;
400 virtual void set_totals_row_count(
size_t row_count) = 0;
402 virtual void set_name(
const char* p,
size_t n) = 0;
404 virtual void set_display_name(
const char* p,
size_t n) = 0;
406 virtual void set_column_count(
size_t n) = 0;
408 virtual void set_column_identifier(
size_t id) = 0;
409 virtual void set_column_name(
const char* p,
size_t n) = 0;
410 virtual void set_column_totals_row_label(
const char* p,
size_t n) = 0;
411 virtual void set_column_totals_row_function(orcus::spreadsheet::totals_row_function_t func) = 0;
412 virtual void commit_column() = 0;
414 virtual void set_style_name(
const char* p,
size_t n) = 0;
415 virtual void set_style_show_first_column(
bool b) = 0;
416 virtual void set_style_show_last_column(
bool b) = 0;
417 virtual void set_style_show_row_stripes(
bool b) = 0;
418 virtual void set_style_show_column_stripes(
bool b) = 0;
420 virtual void commit() = 0;
486 virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
const char* p,
size_t n) = 0;
495 virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
size_t sindex) = 0;
504 virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
double value) = 0;
513 virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
bool value) = 0;
521 virtual void set_date_time(
522 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
523 int year,
int month,
int day,
int hour,
int minute,
double second) = 0;
533 virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
size_t xf_index) = 0;
545 virtual void set_format(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start,
546 orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end,
size_t xf_index) = 0;
558 virtual void set_formula(
559 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
560 const char* p,
size_t n) = 0;
577 virtual void set_shared_formula(
578 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
579 size_t sindex,
const char* p_formula,
size_t n_formula,
const char* p_range,
size_t n_range) = 0;
594 virtual void set_shared_formula(
595 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
596 size_t sindex,
const char* p_formula,
size_t n_formula) = 0;
610 virtual void set_shared_formula(
611 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
size_t sindex) = 0;
613 virtual void set_formula_result(
614 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
double value) = 0;
616 virtual void set_formula_result(
617 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
const char* p,
size_t n) = 0;
631 virtual void set_array_formula(
632 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
633 const char* p,
size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols) = 0;
647 virtual void set_array_formula(
648 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
649 const char* p,
size_t n,
const char* p_range,
size_t n_range) = 0;
719 virtual import_sheet* append_sheet(
const char* sheet_name,
size_t sheet_name_length) = 0;
726 virtual import_sheet* get_sheet(
const char* sheet_name,
size_t sheet_name_length) = 0;
736 virtual import_sheet* get_sheet(orcus::spreadsheet::sheet_t sheet_index) = 0;
742 virtual void finalize() = 0;
virtual size_t add(const char *s, size_t n)=0
Definition: import_interface.hpp:426
Definition: import_interface.hpp:80
virtual orcus::spreadsheet::formula_grammar_t get_default_formula_grammar() const =0
virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, const char *s, size_t n)=0
Definition: import_interface.hpp:209
virtual void set_merge_cell_range(const char *p_range, size_t n_range)=0
virtual void set_column(orcus::spreadsheet::col_t col)=0
Definition: import_interface.hpp:652
virtual size_t append(const char *s, size_t n)=0
virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar)=0
Definition: import_interface.hpp:167
Definition: import_interface.hpp:696
virtual void commit_column()=0
virtual void set_range(const char *p_ref, size_t n_ref)=0
Definition: import_interface.hpp:193
Definition: import_interface.hpp:26
Definition: import_interface.hpp:389
virtual void append_column_match_value(const char *p, size_t n)=0
virtual void set_origin_date(int year, int month, int day)=0