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;
31
75class ORCUS_DLLPUBLIC import_shared_strings
76{
77public:
78 virtual ~import_shared_strings();
79
90 virtual size_t append(std::string_view s) = 0;
91
101 virtual size_t add(std::string_view s) = 0;
102
112 virtual void set_segment_font(size_t font_index) = 0;
113
119 virtual void set_segment_bold(bool b) = 0;
120
126 virtual void set_segment_italic(bool b) = 0;
127
133 virtual void set_segment_superscript(bool b) = 0;
134
140 virtual void set_segment_subscript(bool b) = 0;
141
147 virtual void set_segment_font_name(std::string_view s) = 0;
148
154 virtual void set_segment_font_size(double point) = 0;
155
164 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
165
175
185
192 virtual void append_segment(std::string_view s) = 0;
193
203 virtual size_t commit_segments() = 0;
204};
205
215class ORCUS_DLLPUBLIC import_sheet_properties
216{
217public:
218 virtual ~import_sheet_properties();
219
228 virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit) = 0;
229
237 virtual void set_column_hidden(col_t col, col_t col_span, bool hidden) = 0;
238
249 virtual void set_row_height(row_t row, row_t row_span, double height, orcus::length_unit_t unit) = 0;
250
260 virtual void set_row_hidden(row_t row, row_t row_span, bool hidden) = 0;
261
268 virtual void set_merge_cell_range(const range_t& range) = 0;
269};
270
305class ORCUS_DLLPUBLIC import_named_expression
306{
307public:
308 virtual ~import_named_expression();
309
317 virtual void set_base_position(const src_address_t& pos) = 0;
318
325 virtual void set_named_expression(std::string_view name, std::string_view expression) = 0;
326
333 virtual void set_named_range(std::string_view name, std::string_view range) = 0;
334
339 virtual void commit() = 0;
340};
341
345class ORCUS_DLLPUBLIC import_data_table
346{
347public:
348 virtual ~import_data_table();
349
359 virtual void set_type(data_table_type_t type) = 0;
360
366 virtual void set_range(const range_t& range) = 0;
367
374 virtual void set_first_reference(std::string_view ref, bool deleted) = 0;
375
385 virtual void set_second_reference(std::string_view ref, bool deleted) = 0;
386
391 virtual void commit() = 0;
392};
393
437class ORCUS_DLLPUBLIC import_conditional_format
438{
439public:
441
446 virtual void set_color(color_elem_t alpha, color_elem_t red,
447 color_elem_t green, color_elem_t blue) = 0;
448
452 virtual void set_formula(std::string_view formula) = 0;
453
458 virtual void set_condition_type(condition_type_t type) = 0;
459
463 virtual void set_date(condition_date_t date) = 0;
464
468 virtual void commit_condition() = 0;
469
474 virtual void set_icon_name(std::string_view name) = 0;
475
480 virtual void set_databar_gradient(bool gradient) = 0;
481
486 virtual void set_databar_axis(databar_axis_t axis) = 0;
487
492 virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red,
493 color_elem_t green, color_elem_t blue) = 0;
494
499 virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red,
500 color_elem_t green, color_elem_t blue) = 0;
501
506 virtual void set_min_databar_length(double length) = 0;
507
512 virtual void set_max_databar_length(double length) = 0;
513
518 virtual void set_show_value(bool show) = 0;
519
524 virtual void set_iconset_reverse(bool reverse) = 0;
525
529 virtual void set_xf_id(size_t xf) = 0;
530
535 virtual void set_operator(condition_operator_t condition_type) = 0;
536
537 virtual void set_type(conditional_format_t type) = 0;
538
539 virtual void commit_entry() = 0;
540
541 virtual void set_range(std::string_view range) = 0;
542
543 virtual void set_range(row_t row_start, col_t col_start,
544 row_t row_end, col_t col_end) = 0;
545
546 virtual void commit_format() = 0;
547};
548
554class ORCUS_DLLPUBLIC import_table
555{
556public:
557 virtual ~import_table();
558
572
578 virtual void set_identifier(size_t id) = 0;
579
585 virtual void set_range(const range_t& range) = 0;
586
592 virtual void set_totals_row_count(size_t row_count) = 0;
593
599 virtual void set_name(std::string_view name) = 0;
600
606 virtual void set_display_name(std::string_view name) = 0;
607
617 virtual void set_column_count(size_t n) = 0;
618
624 virtual void set_column_identifier(size_t id) = 0;
625
631 virtual void set_column_name(std::string_view name) = 0;
632
638 virtual void set_column_totals_row_label(std::string_view label) = 0;
639
645 virtual void set_column_totals_row_function(totals_row_function_t func) = 0;
646
651 virtual void commit_column() = 0;
652
658 virtual void set_style_name(std::string_view name) = 0;
659
667 virtual void set_style_show_first_column(bool b) = 0;
668
676 virtual void set_style_show_last_column(bool b) = 0;
677
683 virtual void set_style_show_row_stripes(bool b) = 0;
684
690 virtual void set_style_show_column_stripes(bool b) = 0;
691
695 virtual void commit() = 0;
696};
697
703class ORCUS_DLLPUBLIC import_formula
704{
705public:
706 virtual ~import_formula();
707
714 virtual void set_position(row_t row, col_t col) = 0;
715
723 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
724
736 virtual void set_shared_formula_index(size_t index) = 0;
737
743 virtual void set_result_string(std::string_view value) = 0;
744
750 virtual void set_result_value(double value) = 0;
751
757 virtual void set_result_bool(bool value) = 0;
758
762 virtual void set_result_empty() = 0;
763
767 virtual void commit() = 0;
768};
769
775class ORCUS_DLLPUBLIC import_array_formula
776{
777public:
778 virtual ~import_array_formula();
779
785 virtual void set_range(const range_t& range) = 0;
786
794 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
795
803 virtual void set_result_string(row_t row, col_t col, std::string_view value) = 0;
804
812 virtual void set_result_value(row_t row, col_t col, double value) = 0;
813
821 virtual void set_result_bool(row_t row, col_t col, bool value) = 0;
822
830 virtual void set_result_empty(row_t row, col_t col) = 0;
831
836 virtual void commit() = 0;
837};
838
842class ORCUS_DLLPUBLIC import_sheet
843{
844public:
845 virtual ~import_sheet();
846
855
863
876
889
900
909
917
927
935
944 virtual void set_auto(row_t row, col_t col, std::string_view s) = 0;
945
953 virtual void set_string(row_t row, col_t col, string_id_t sindex) = 0;
954
962 virtual void set_value(row_t row, col_t col, double value) = 0;
963
971 virtual void set_bool(row_t row, col_t col, bool value) = 0;
972
986 virtual void set_date_time(
987 row_t row, col_t col,
988 int year, int month, int day, int hour, int minute, double second) = 0;
989
1001 virtual void set_format(row_t row, col_t col, size_t xf_index) = 0;
1002
1013 virtual void set_format(row_t row_start, col_t col_start,
1014 row_t row_end, col_t col_end, size_t xf_index) = 0;
1015
1028 virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index) = 0;
1029
1040 virtual void set_row_format(row_t row, std::size_t xf_index) = 0;
1041
1051 virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size) = 0;
1052
1063 virtual range_size_t get_sheet_size() const = 0;
1064};
1065
1070class ORCUS_DLLPUBLIC import_global_settings
1071{
1072public:
1073 virtual ~import_global_settings();
1074
1085 virtual void set_origin_date(int year, int month, int day) = 0;
1086
1101 virtual void set_default_formula_grammar(formula_grammar_t grammar) = 0;
1102
1109 virtual formula_grammar_t get_default_formula_grammar() const = 0;
1110
1116 virtual void set_character_set(character_set_t charset) = 0;
1117};
1118
1126class ORCUS_DLLPUBLIC import_reference_resolver
1127{
1128public:
1130
1142 virtual src_address_t resolve_address(std::string_view address) = 0;
1143
1156 virtual src_range_t resolve_range(std::string_view range) = 0;
1157};
1158
1168class ORCUS_DLLPUBLIC import_factory
1169{
1170public:
1171 virtual ~import_factory();
1172
1183
1193
1204
1213
1224 virtual import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt);
1225
1238 pivot_cache_id_t cache_id);
1239
1250 pivot_cache_id_t cache_id);
1251
1252 virtual import_pivot_table_definition* create_pivot_table_definition();
1253
1269 virtual import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) = 0;
1270
1281 virtual import_sheet* get_sheet(std::string_view name) = 0;
1282
1291 virtual import_sheet* get_sheet(sheet_t sheet_index) = 0;
1292
1297 virtual void finalize() = 0;
1298};
1299
1300}}}
1301
1302#endif
1303
1304/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition import_interface.hpp:776
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:438
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:346
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:1169
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:704
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:1071
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:306
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_pivot_table_def.hpp:201
Definition import_interface.hpp:1127
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:76
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:216
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:843
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:555
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:698
Definition types.hpp:708
Definition types.hpp:718
Definition types.hpp:729