23 #include <rtl/strbuf.hxx>
26 #include <orcus/spreadsheet/import_interface.hpp>
30 #include <unordered_map>
78 orcus::spreadsheet::src_address_t
resolve_address(std::string_view address)
override;
79 orcus::spreadsheet::src_range_t
resolve_range(std::string_view range)
override;
96 virtual void set_base_position(
const orcus::spreadsheet::src_address_t& pos)
override;
98 virtual void set_named_range(std::string_view name, std::string_view range)
override;
99 virtual void commit()
override;
110 virtual size_t append(std::string_view s)
override;
111 virtual size_t add(std::string_view s)
override;
119 orcus::spreadsheet::color_elem_t red,
120 orcus::spreadsheet::color_elem_t green,
121 orcus::spreadsheet::color_elem_t blue)
override;
133 virtual void set_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red,
134 orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
override;
140 virtual void set_date(orcus::spreadsheet::condition_date_t date)
override;
148 virtual void set_databar_axis(orcus::spreadsheet::databar_axis_t axis)
override;
151 orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
override;
154 orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
override;
164 virtual void set_xf_id(
size_t xf)
override;
166 virtual void set_operator(orcus::spreadsheet::condition_operator_t condition_type)
override;
168 virtual void set_type(orcus::spreadsheet::conditional_format_t type)
override;
172 virtual void set_range(std::string_view range)
override;
174 virtual void set_range(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start,
175 orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end)
override;
196 virtual void set_range(
const orcus::spreadsheet::range_t& range)
override;
198 virtual void set_column(orcus::spreadsheet::col_t col)
override;
204 virtual void commit()
override;
219 virtual void set_column_width(orcus::spreadsheet::col_t col,
double width, orcus::length_unit_t unit)
override;
221 virtual void set_column_hidden(orcus::spreadsheet::col_t col,
bool hidden)
override;
223 virtual void set_row_height(orcus::spreadsheet::row_t row,
double height, orcus::length_unit_t unit)
override;
225 virtual void set_row_hidden(orcus::spreadsheet::row_t row,
bool hidden)
override;
255 virtual void set_position(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col)
override;
256 virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, std::string_view
formula)
override;
262 virtual void commit()
override;
284 virtual void set_range(
const orcus::spreadsheet::range_t& range)
override;
285 virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, std::string_view
formula)
override;
286 virtual void set_result_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
double value)
override;
287 virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, std::string_view value)
override;
288 virtual void set_result_empty(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col)
override;
289 virtual void set_result_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
bool value)
override;
290 virtual void commit()
override;
320 virtual orcus::spreadsheet::iface::import_auto_filter*
get_auto_filter()
override;
321 virtual orcus::spreadsheet::iface::import_table*
get_table()
override;
325 virtual orcus::spreadsheet::iface::import_formula*
get_formula()
override;
326 virtual orcus::spreadsheet::iface::import_array_formula*
get_array_formula()
override;
329 virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, std::string_view value)
override;
330 virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::string_id_t sindex)
override;
331 virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
double value)
override;
332 virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
bool value)
override;
334 orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
int year,
int month,
int day,
int hour,
int minute,
double second)
override;
336 virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col,
size_t xf_index)
override;
337 virtual void set_format(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start,
338 orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end,
size_t xf_index)
override;
340 virtual orcus::spreadsheet::range_size_t
get_sheet_size()
const override;
342 virtual void fill_down_cells(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::row_t range_size)
override;
375 std::optional<orcus::spreadsheet::fill_pattern_t>
mePattern;
394 std::map<orcus::spreadsheet::border_direction_t, border_line>
maBorders;
478 orcus::spreadsheet::color_elem_t red,
479 orcus::spreadsheet::color_elem_t green,
480 orcus::spreadsheet::color_elem_t blue)
override;
481 virtual void set_font_color( orcus::spreadsheet::color_elem_t alpha,
482 orcus::spreadsheet::color_elem_t red,
483 orcus::spreadsheet::color_elem_t green,
484 orcus::spreadsheet::color_elem_t blue)
override;
495 virtual void set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
override;
496 virtual void set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
override;
503 virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::border_style_t style)
override;
505 orcus::spreadsheet::color_elem_t alpha,
506 orcus::spreadsheet::color_elem_t red,
507 orcus::spreadsheet::color_elem_t green,
508 orcus::spreadsheet::color_elem_t blue)
override;
509 virtual void set_border_width(orcus::spreadsheet::border_direction_t dir,
double val, orcus::length_unit_t unit)
override;
608 std::vector<std::unique_ptr<ScOrcusSheet>>
maSheets;
618 virtual orcus::spreadsheet::iface::import_sheet*
append_sheet(
619 orcus::spreadsheet::sheet_t sheet_index, std::string_view sheet_name)
override;
620 virtual orcus::spreadsheet::iface::import_sheet*
get_sheet(std::string_view sheet_name)
override;
621 virtual orcus::spreadsheet::iface::import_sheet*
get_sheet(orcus::spreadsheet::sheet_t sheet_index)
override;
623 virtual orcus::spreadsheet::iface::import_shared_strings*
get_shared_strings()
override;
625 virtual orcus::spreadsheet::iface::import_styles*
get_styles()
override;
632 const OUString*
getString(
size_t nIndex)
const;
644 uint32_t nRowRange, uint32_t nColRange );
651 void setStatusIndicator(
const css::uno::Reference<css::task::XStatusIndicator>& rIndicator);
virtual void set_row_height(orcus::spreadsheet::row_t row, double height, orcus::length_unit_t unit) override
void applyXfToItemSet(SfxItemSet &rSet, const xf &rXf)
virtual void set_range(const orcus::spreadsheet::range_t &range) override
virtual void set_cell_style_name(std::string_view name) override
orcus::spreadsheet::formula_grammar_t meOrcusGrammar
virtual void set_font_underline_width(orcus::spreadsheet::underline_width_t e) override
ScOrcusFactory & mrFactory
std::optional< double > mnSize
virtual orcus::spreadsheet::iface::import_array_formula * get_array_formula() override
virtual orcus::spreadsheet::iface::import_named_expression * get_named_expression() override
virtual void commit_column() override
virtual void set_named_expression(std::string_view name, std::string_view expression) override
ScOrcusStyles(ScOrcusFactory &rFactory, bool bSkipDefaultStyles=false)
size_t appendString(const OUString &rStr)
void applyToItemSet(SfxItemSet &rSet) const
rtl_TextEncoding mnTextEncoding
virtual void set_cell_xf_count(size_t n) override
virtual orcus::spreadsheet::iface::import_styles * get_styles() override
virtual size_t commit_cell_style() override
std::optional< orcus::spreadsheet::fill_pattern_t > mePattern
virtual void set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
virtual orcus::spreadsheet::iface::import_global_settings * get_global_settings() override
virtual void set_base_position(const orcus::spreadsheet::src_address_t &pos) override
virtual void set_fill_count(size_t n) override
const ScOrcusGlobalSettings & getGlobalSettings() const
ScOrcusFactory & getFactory()
virtual void set_dxf_count(size_t count) override
std::unordered_map< OUString, size_t > StringHashType
virtual size_t commit_number_format() override
std::vector< OUString > maStrings
std::vector< font > maFonts
css::uno::Reference< css::task::XStatusIndicator > mxStatusIndicator
virtual orcus::spreadsheet::iface::import_formula * get_formula() override
virtual void set_border_count(size_t n) override
ScOrcusArrayFormula maArrayFormula
virtual void set_xf_protection(size_t index) override
std::optional< Color > maColor
ScOrcusAutoFilter maAutoFilter
const ScOrcusGlobalSettings & mrGlobalSettings
virtual void set_font_underline_type(orcus::spreadsheet::underline_type_t e) override
virtual void set_cell_style_xf(size_t index) override
formula::FormulaGrammar::Grammar getCalcGrammar() const
virtual void commit() override
virtual void finalize() override
ScOrcusFactory(ScDocument &rDoc, bool bSkipDefaultStyles=false)
const OUString * getString(size_t nIndex) const
std::optional< OUString > maName
const sc::SharedFormulaGroups & getSharedFormulaGroups() const
virtual orcus::spreadsheet::iface::import_sheet * get_sheet(std::string_view sheet_name) override
virtual void set_xf_number_format(size_t index) override
virtual void append_segment(std::string_view s) override
Accessor class to ScDocument.
virtual void set_font_bold(bool b) override
virtual void set_number_format_count(size_t n) override
virtual void set_xf_font(size_t index) override
void pushFillDownCellsToken(const ScAddress &rPos, uint32_t nFillSize)
std::optional< FontLineStyle > meUnderline
ScOrcusNamedExpression maNamedExpressions
virtual size_t commit_fill() override
virtual void set_cell_hidden(bool b) override
rtl_TextEncoding getTextEncoding() const
virtual orcus::spreadsheet::formula_grammar_t get_default_formula_grammar() const override
virtual size_t commit_segments() override
virtual void commit() override
virtual void set_font_underline(orcus::spreadsheet::underline_t e) override
virtual void set_cell_formula_hidden(bool b) override
std::optional< bool > mbFormulaHidden
virtual void set_font_size(double point) override
virtual void set_font_underline_mode(orcus::spreadsheet::underline_mode_t e) override
formula::FormulaGrammar::Grammar meCalcGrammar
ScDocumentImport & getDoc()
virtual void set_xf_fill(size_t index) override
virtual void set_cell_style_parent_name(std::string_view name) override
SvxCellJustifyMethod meVerAlignMethod
SvxCellVerJustify meVerAlignment
virtual size_t commit_font() override
size_t addString(const OUString &rStr)
virtual void set_strikethrough_style(orcus::spreadsheet::strikethrough_style_t s) override
std::optional< bool > mbHidden
const ScOrcusGlobalSettings & mrGlobalSettings
virtual void set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
virtual orcus::spreadsheet::iface::import_sheet * append_sheet(orcus::spreadsheet::sheet_t sheet_index, std::string_view sheet_name) override
std::vector< protection > maProtections
ScOrcusRefResolver(const ScOrcusGlobalSettings &rGS)
ScOrcusSharedStrings maSharedStrings
sc::SharedFormulaGroups maFormulaGroups
std::optional< Color > maUnderlineColor
virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t xf_index) override
orcus::spreadsheet::src_range_t resolve_range(std::string_view range) override
std::optional< SvxBorderLineStyle > meStyle
void pushSharedFormulaToken(const ScAddress &rPos, uint32_t nIndex)
std::optional< bool > mbPrintContent
virtual void set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t align) override
std::vector< xf > maCellXfs
virtual orcus::spreadsheet::range_size_t get_sheet_size() const override
virtual void set_character_set(orcus::character_set_t cs) override
void pushFormulaResult(const ScAddress &rPos, double fValue)
std::optional< Color > maColor
virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override
virtual size_t commit_dxf() override
ScOrcusSheetProperties maProperties
virtual void set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) override
void pushMatrixFormulaToken(const ScAddress &rPos, const OUString &rFormula, formula::FormulaGrammar::Grammar eGrammar, uint32_t nRowRange, uint32_t nColRange)
ScOrcusSheetProperties(SCTAB nTab, ScDocumentImport &rDoc)
std::optional< Color > maBgColor
ScOrcusFactory & mrFactory
virtual orcus::spreadsheet::iface::import_table * get_table() override
std::vector< number_format > maNumberFormats
std::optional< double > mnWidth
virtual void set_font_italic(bool b) override
ScOrcusAutoFilter(const ScOrcusGlobalSettings &rGS)
virtual size_t append(std::string_view s) override
SvxCellHorJustify meHorAlignment
virtual void 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) override
virtual orcus::spreadsheet::iface::import_shared_strings * get_shared_strings() override
virtual void set_font_underline_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
CellStoreTokensType maCellStoreTokens
virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::border_style_t style) override
ScDocumentImport & getDoc() const
virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::string_id_t sindex) override
virtual orcus::spreadsheet::iface::import_sheet_properties * get_sheet_properties() override
virtual void set_number_format_identifier(size_t n) override
std::vector< CellStoreToken > CellStoreTokensType
void applyToItemSet(SfxItemSet &rSet) const
ScOrcusGlobalSettings(ScDocumentImport &rDoc)
virtual void set_border_color(orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
void applyToItemSet(SfxItemSet &rSet) const
virtual size_t add(std::string_view s) override
std::optional< bool > mbItalic
virtual void set_column_width(orcus::spreadsheet::col_t col, double width, orcus::length_unit_t unit) override
virtual void set_merge_cell_range(const orcus::spreadsheet::range_t &range) override
virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar) override
std::vector< xf > maCellStyleXfs
void applyToItemSet(SfxItemSet &rSet) const
virtual void set_number_format_code(std::string_view s) override
formula::FormulaGrammar::Grammar meGrammar
virtual size_t commit_cell_protection() override
std::optional< bool > mbLocked
virtual void set_cell_style_xf_count(size_t n) override
virtual void set_segment_font_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
virtual void set_xf_style_xf(size_t index) override
virtual void set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t align) override
virtual ~ScOrcusSheetProperties() override
std::vector< std::unique_ptr< ScOrcusSheet > > maSheets
virtual void set_segment_bold(bool b) override
virtual void fill_down_cells(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::row_t range_size) override
virtual void set_column(orcus::spreadsheet::col_t col) override
orcus::spreadsheet::src_address_t resolve_address(std::string_view address) override
void pushCellStoreToken(const ScAddress &rPos, uint32_t nStrIndex)
ScOrcusSharedStrings(ScOrcusFactory &rFactory)
virtual void set_strikethrough_type(orcus::spreadsheet::strikethrough_type_t s) override
virtual void set_font_name(std::string_view name) override
virtual size_t commit_cell_style_xf() override
number_format maCurrentNumberFormat
virtual void set_segment_font(size_t font_index) override
void setStatusIndicator(const css::uno::Reference< css::task::XStatusIndicator > &rIndicator)
std::optional< bool > mbBold
virtual void set_font_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override
virtual orcus::spreadsheet::iface::import_named_expression * get_named_expression() override
const ScOrcusGlobalSettings & mrGlobalSettings
virtual orcus::spreadsheet::iface::import_conditional_format * get_conditional_format() override
virtual void set_segment_font_name(std::string_view s) override
virtual void set_cell_style_count(size_t n) override
virtual void set_segment_font_size(double point) override
ScDocumentImport & getDoc()
virtual void set_xf_apply_alignment(bool b) override
OStringBuffer maCurSegment
ScOrcusNamedExpression(ScDocumentImport &rDoc, const ScOrcusGlobalSettings &rGS, SCTAB nTab=-1)
ScOrcusNamedExpression maNamedExpressions
ScOrcusConditionalFormat maConditionalFormat
ScOrcusSheet(ScDocumentImport &rDoc, SCTAB nTab, ScOrcusFactory &rFactory)
ScOrcusFactory & mrFactory
virtual ~ScOrcusAutoFilter() override
std::optional< FontStrikeout > meStrikeout
virtual void set_column_hidden(orcus::spreadsheet::col_t col, bool hidden) override
virtual void set_strikethrough_width(orcus::spreadsheet::strikethrough_width_t s) override
cell_style maCurrentCellStyle
virtual void set_border_width(orcus::spreadsheet::border_direction_t dir, double val, orcus::length_unit_t unit) override
virtual size_t commit_cell_xf() override
void pushCellStoreAutoToken(const ScAddress &rPos, const OUString &rVal)
virtual void set_row_hidden(orcus::spreadsheet::row_t row, bool hidden) override
virtual void set_cell_locked(bool b) override
virtual void set_font_count(size_t n) override
ScOrcusGlobalSettings maGlobalSettings
virtual size_t commit_border() override
std::optional< Color > maFgColor
virtual void set_origin_date(int year, int month, int day) override
std::vector< border > maBorders
virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override
CellStoreToken(const ScAddress &rPos, Type eType)
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, std::string_view value) override
StringHashType maStringHash
protection maCurrentProtection
virtual void set_cell_print_content(bool b) override
virtual orcus::spreadsheet::iface::import_auto_filter * get_auto_filter() override
SvxCellJustifyMethod meHorAlignMethod
virtual void set_named_range(std::string_view name, std::string_view range) override
virtual void set_cell_style_builtin(size_t index) override
virtual void set_segment_italic(bool b) override
virtual void set_strikethrough_text(orcus::spreadsheet::strikethrough_text_t s) override
std::vector< fill > maFills
virtual void append_column_match_value(std::string_view value) override
virtual void set_xf_border(size_t index) override
std::map< orcus::spreadsheet::border_direction_t, border_line > maBorders