Orcus
Loading...
Searching...
No Matches
import_interface.hpp
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 */
7
8#ifndef ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
9#define ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
10
11#include <cstdlib>
12
13#include "types.hpp"
14#include "../types.hpp"
15#include "../env.hpp"
16
17// NB: This header must not depend on ixion, as it needs to be usable for
18// those clients that provide their own formula engine. Other headers in
19// the orcus::spreadsheet namespace may depend on ixion.
20
21namespace orcus { namespace spreadsheet { namespace iface {
22
24class import_styles;
30
74class ORCUS_DLLPUBLIC import_shared_strings
75{
76public:
77 virtual ~import_shared_strings();
78
89 virtual size_t append(std::string_view s) = 0;
90
100 virtual size_t add(std::string_view s) = 0;
101
111 virtual void set_segment_font(size_t font_index) = 0;
112
118 virtual void set_segment_bold(bool b) = 0;
119
125 virtual void set_segment_italic(bool b) = 0;
126
132 virtual void set_segment_superscript(bool b) = 0;
133
139 virtual void set_segment_subscript(bool b) = 0;
140
146 virtual void set_segment_font_name(std::string_view s) = 0;
147
153 virtual void set_segment_font_size(double point) = 0;
154
163 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
164
174
184
191 virtual void append_segment(std::string_view s) = 0;
192
202 virtual size_t commit_segments() = 0;
203};
204
214class ORCUS_DLLPUBLIC import_sheet_properties
215{
216public:
217 virtual ~import_sheet_properties();
218
227 virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit) = 0;
228
236 virtual void set_column_hidden(col_t col, col_t col_span, bool hidden) = 0;
237
248 virtual void set_row_height(row_t row, row_t row_span, double height, orcus::length_unit_t unit) = 0;
249
259 virtual void set_row_hidden(row_t row, row_t row_span, bool hidden) = 0;
260
267 virtual void set_merge_cell_range(const range_t& range) = 0;
268};
269
304class ORCUS_DLLPUBLIC import_named_expression
305{
306public:
307 virtual ~import_named_expression();
308
316 virtual void set_base_position(const src_address_t& pos) = 0;
317
324 virtual void set_named_expression(std::string_view name, std::string_view expression) = 0;
325
332 virtual void set_named_range(std::string_view name, std::string_view range) = 0;
333
338 virtual void commit() = 0;
339};
340
344class ORCUS_DLLPUBLIC import_data_table
345{
346public:
347 virtual ~import_data_table();
348
358 virtual void set_type(data_table_type_t type) = 0;
359
365 virtual void set_range(const range_t& range) = 0;
366
373 virtual void set_first_reference(std::string_view ref, bool deleted) = 0;
374
384 virtual void set_second_reference(std::string_view ref, bool deleted) = 0;
385
390 virtual void commit() = 0;
391};
392
436class ORCUS_DLLPUBLIC import_conditional_format
437{
438public:
440
445 virtual void set_color(color_elem_t alpha, color_elem_t red,
446 color_elem_t green, color_elem_t blue) = 0;
447
451 virtual void set_formula(std::string_view formula) = 0;
452
457 virtual void set_condition_type(condition_type_t type) = 0;
458
462 virtual void set_date(condition_date_t date) = 0;
463
467 virtual void commit_condition() = 0;
468
473 virtual void set_icon_name(std::string_view name) = 0;
474
479 virtual void set_databar_gradient(bool gradient) = 0;
480
485 virtual void set_databar_axis(databar_axis_t axis) = 0;
486
491 virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red,
492 color_elem_t green, color_elem_t blue) = 0;
493
498 virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red,
499 color_elem_t green, color_elem_t blue) = 0;
500
505 virtual void set_min_databar_length(double length) = 0;
506
511 virtual void set_max_databar_length(double length) = 0;
512
517 virtual void set_show_value(bool show) = 0;
518
523 virtual void set_iconset_reverse(bool reverse) = 0;
524
528 virtual void set_xf_id(size_t xf) = 0;
529
534 virtual void set_operator(condition_operator_t condition_type) = 0;
535
536 virtual void set_type(conditional_format_t type) = 0;
537
538 virtual void commit_entry() = 0;
539
540 virtual void set_range(std::string_view range) = 0;
541
542 virtual void set_range(row_t row_start, col_t col_start,
543 row_t row_end, col_t col_end) = 0;
544
545 virtual void commit_format() = 0;
546};
547
553class ORCUS_DLLPUBLIC import_table
554{
555public:
556 virtual ~import_table();
557
571
577 virtual void set_identifier(size_t id) = 0;
578
584 virtual void set_range(const range_t& range) = 0;
585
591 virtual void set_totals_row_count(size_t row_count) = 0;
592
598 virtual void set_name(std::string_view name) = 0;
599
605 virtual void set_display_name(std::string_view name) = 0;
606
616 virtual void set_column_count(size_t n) = 0;
617
623 virtual void set_column_identifier(size_t id) = 0;
624
630 virtual void set_column_name(std::string_view name) = 0;
631
637 virtual void set_column_totals_row_label(std::string_view label) = 0;
638
644 virtual void set_column_totals_row_function(totals_row_function_t func) = 0;
645
650 virtual void commit_column() = 0;
651
657 virtual void set_style_name(std::string_view name) = 0;
658
666 virtual void set_style_show_first_column(bool b) = 0;
667
675 virtual void set_style_show_last_column(bool b) = 0;
676
682 virtual void set_style_show_row_stripes(bool b) = 0;
683
689 virtual void set_style_show_column_stripes(bool b) = 0;
690
694 virtual void commit() = 0;
695};
696
702class ORCUS_DLLPUBLIC import_formula
703{
704public:
705 virtual ~import_formula();
706
713 virtual void set_position(row_t row, col_t col) = 0;
714
722 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
723
735 virtual void set_shared_formula_index(size_t index) = 0;
736
742 virtual void set_result_string(std::string_view value) = 0;
743
749 virtual void set_result_value(double value) = 0;
750
756 virtual void set_result_bool(bool value) = 0;
757
761 virtual void set_result_empty() = 0;
762
766 virtual void commit() = 0;
767};
768
774class ORCUS_DLLPUBLIC import_array_formula
775{
776public:
777 virtual ~import_array_formula();
778
784 virtual void set_range(const range_t& range) = 0;
785
793 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
794
802 virtual void set_result_string(row_t row, col_t col, std::string_view value) = 0;
803
811 virtual void set_result_value(row_t row, col_t col, double value) = 0;
812
820 virtual void set_result_bool(row_t row, col_t col, bool value) = 0;
821
829 virtual void set_result_empty(row_t row, col_t col) = 0;
830
835 virtual void commit() = 0;
836};
837
841class ORCUS_DLLPUBLIC import_sheet
842{
843public:
844 virtual ~import_sheet();
845
854
862
875
888
899
908
916
926
934
943 virtual void set_auto(row_t row, col_t col, std::string_view s) = 0;
944
952 virtual void set_string(row_t row, col_t col, string_id_t sindex) = 0;
953
961 virtual void set_value(row_t row, col_t col, double value) = 0;
962
970 virtual void set_bool(row_t row, col_t col, bool value) = 0;
971
985 virtual void set_date_time(
986 row_t row, col_t col,
987 int year, int month, int day, int hour, int minute, double second) = 0;
988
1000 virtual void set_format(row_t row, col_t col, size_t xf_index) = 0;
1001
1012 virtual void set_format(row_t row_start, col_t col_start,
1013 row_t row_end, col_t col_end, size_t xf_index) = 0;
1014
1027 virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index) = 0;
1028
1039 virtual void set_row_format(row_t row, std::size_t xf_index) = 0;
1040
1050 virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size) = 0;
1051
1058 virtual range_size_t get_sheet_size() const = 0;
1059};
1060
1065class ORCUS_DLLPUBLIC import_global_settings
1066{
1067public:
1068 virtual ~import_global_settings();
1069
1080 virtual void set_origin_date(int year, int month, int day) = 0;
1081
1096 virtual void set_default_formula_grammar(formula_grammar_t grammar) = 0;
1097
1104 virtual formula_grammar_t get_default_formula_grammar() const = 0;
1105
1111 virtual void set_character_set(character_set_t charset) = 0;
1112};
1113
1121class ORCUS_DLLPUBLIC import_reference_resolver
1122{
1123public:
1125
1137 virtual src_address_t resolve_address(std::string_view address) = 0;
1138
1151 virtual src_range_t resolve_range(std::string_view range) = 0;
1152};
1153
1163class ORCUS_DLLPUBLIC import_factory
1164{
1165public:
1166 virtual ~import_factory();
1167
1178
1188
1199
1208
1219 virtual import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt);
1220
1233 pivot_cache_id_t cache_id);
1234
1245 pivot_cache_id_t cache_id);
1246
1262 virtual import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) = 0;
1263
1274 virtual import_sheet* get_sheet(std::string_view name) = 0;
1275
1284 virtual import_sheet* get_sheet(sheet_t sheet_index) = 0;
1285
1290 virtual void finalize() = 0;
1291};
1292
1293}}}
1294
1295#endif
1296
1297/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition import_interface.hpp:775
virtual void set_result_value(row_t row, col_t col, double value)=0
virtual void set_range(const range_t &range)=0
virtual void set_result_string(row_t row, col_t col, std::string_view value)=0
virtual void set_result_empty(row_t row, col_t col)=0
virtual void set_result_bool(row_t row, col_t col, bool value)=0
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
Definition import_interface_auto_filter.hpp:125
Definition import_interface.hpp:437
virtual void set_databar_gradient(bool gradient)=0
virtual void set_operator(condition_operator_t condition_type)=0
virtual void set_formula(std::string_view formula)=0
virtual void set_condition_type(condition_type_t type)=0
virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_max_databar_length(double length)=0
virtual void set_min_databar_length(double length)=0
virtual void set_databar_axis(databar_axis_t axis)=0
virtual void set_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_date(condition_date_t date)=0
virtual void set_icon_name(std::string_view name)=0
virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
Definition import_interface.hpp:345
virtual void set_type(data_table_type_t type)=0
virtual void set_second_reference(std::string_view ref, bool deleted)=0
virtual void set_first_reference(std::string_view ref, bool deleted)=0
virtual void set_range(const range_t &range)=0
Definition import_interface.hpp:1164
virtual import_pivot_cache_records * create_pivot_cache_records(pivot_cache_id_t cache_id)
virtual import_reference_resolver * get_reference_resolver(formula_ref_context_t cxt)
virtual import_styles * get_styles()
virtual import_pivot_cache_definition * create_pivot_cache_definition(pivot_cache_id_t cache_id)
virtual import_sheet * append_sheet(sheet_t sheet_index, std::string_view name)=0
virtual import_sheet * get_sheet(sheet_t sheet_index)=0
virtual import_named_expression * get_named_expression()
virtual import_global_settings * get_global_settings()
virtual import_shared_strings * get_shared_strings()
virtual import_sheet * get_sheet(std::string_view name)=0
Definition import_interface.hpp:703
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
virtual void set_result_bool(bool value)=0
virtual void set_shared_formula_index(size_t index)=0
virtual void set_result_value(double value)=0
virtual void set_position(row_t row, col_t col)=0
virtual void set_result_string(std::string_view value)=0
Definition import_interface.hpp:1066
virtual void set_character_set(character_set_t charset)=0
virtual formula_grammar_t get_default_formula_grammar() const =0
virtual void set_origin_date(int year, int month, int day)=0
virtual void set_default_formula_grammar(formula_grammar_t grammar)=0
Definition import_interface.hpp:305
virtual void set_named_range(std::string_view name, std::string_view range)=0
virtual void set_named_expression(std::string_view name, std::string_view expression)=0
virtual void set_base_position(const src_address_t &pos)=0
Definition import_interface_pivot.hpp:29
Definition import_interface_pivot.hpp:293
Definition import_interface.hpp:1122
virtual src_range_t resolve_range(std::string_view range)=0
virtual src_address_t resolve_address(std::string_view address)=0
Definition import_interface.hpp:75
virtual import_strikethrough * start_strikethrough()
virtual size_t append(std::string_view s)=0
virtual void set_segment_font_size(double point)=0
virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual size_t add(std::string_view s)=0
virtual import_underline * start_underline()
virtual void append_segment(std::string_view s)=0
virtual void set_segment_font(size_t font_index)=0
virtual void set_segment_font_name(std::string_view s)=0
Definition import_interface.hpp:215
virtual void set_row_hidden(row_t row, row_t row_span, bool hidden)=0
virtual void set_merge_cell_range(const range_t &range)=0
virtual void set_column_hidden(col_t col, col_t col_span, bool hidden)=0
virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit)=0
virtual void set_row_height(row_t row, row_t row_span, double height, orcus::length_unit_t unit)=0
Definition import_interface_view.hpp:24
Definition import_interface.hpp:842
virtual void set_string(row_t row, col_t col, string_id_t sindex)=0
virtual import_array_formula * get_array_formula()
virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index)=0
virtual void set_bool(row_t row, col_t col, bool value)=0
virtual import_formula * get_formula()
virtual range_size_t get_sheet_size() const =0
virtual void set_format(row_t row_start, col_t col_start, row_t row_end, col_t col_end, size_t xf_index)=0
virtual void set_auto(row_t row, col_t col, std::string_view s)=0
virtual import_conditional_format * get_conditional_format()
virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size)=0
virtual void set_value(row_t row, col_t col, double value)=0
virtual import_table * start_table()
virtual import_data_table * get_data_table()
virtual void set_row_format(row_t row, std::size_t xf_index)=0
virtual import_sheet_view * get_sheet_view()
virtual void set_format(row_t row, col_t col, size_t xf_index)=0
virtual import_sheet_properties * get_sheet_properties()
virtual import_named_expression * get_named_expression()
virtual void set_date_time(row_t row, col_t col, int year, int month, int day, int hour, int minute, double second)=0
virtual import_auto_filter * start_auto_filter(const range_t &range)
Definition import_interface_strikethrough.hpp:19
Definition import_interface_styles.hpp:55
Definition import_interface.hpp:554
virtual void set_totals_row_count(size_t row_count)=0
virtual void set_column_totals_row_label(std::string_view label)=0
virtual import_auto_filter * start_auto_filter(const range_t &range)
virtual void set_style_show_first_column(bool b)=0
virtual void set_name(std::string_view name)=0
virtual void set_column_identifier(size_t id)=0
virtual void set_style_show_last_column(bool b)=0
virtual void set_column_totals_row_function(totals_row_function_t func)=0
virtual void set_column_name(std::string_view name)=0
virtual void set_column_count(size_t n)=0
virtual void set_range(const range_t &range)=0
virtual void set_style_show_row_stripes(bool b)=0
virtual void set_style_show_column_stripes(bool b)=0
virtual void set_style_name(std::string_view name)=0
virtual void set_display_name(std::string_view name)=0
virtual void set_identifier(size_t id)=0
Definition import_interface_underline.hpp:19
Definition types.hpp:627
Definition types.hpp:637
Definition types.hpp:647
Definition types.hpp:658