13 #include <document.hxx>
16 #include <tokenarray.hxx>
18 #include <globstr.hrc>
20 #include <compiler.hxx>
21 #include <stlpool.hxx>
43 #include <com/sun/star/task/XStatusIndicator.hpp>
49 #include <orcus/exception.hpp>
53 namespace os = orcus::spreadsheet;
62 case orcus::spreadsheet::formula_grammar_t::ods:
65 case orcus::spreadsheet::formula_grammar_t::xlsx:
68 case orcus::spreadsheet::formula_grammar_t::gnumeric:
71 case orcus::spreadsheet::formula_grammar_t::xls_xml:
74 case orcus::spreadsheet::formula_grammar_t::unknown:
85 , meCalcGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED)
86 , meOrcusGrammar(os::formula_grammar_t::unknown)
87 , mnTextEncoding(RTL_TEXTENCODING_UTF8)
100 case orcus::character_set_t::iso_2022_jp:
101 case orcus::character_set_t::iso_2022_jp_2:
104 case orcus::character_set_t::jis_x0201:
107 case orcus::character_set_t::shift_jis:
110 case orcus::character_set_t::us_ascii:
113 case orcus::character_set_t::utf_7:
116 case orcus::character_set_t::windows_1250:
119 case orcus::character_set_t::windows_1251:
122 case orcus::character_set_t::windows_1252:
125 case orcus::character_set_t::windows_1253:
128 case orcus::character_set_t::windows_1254:
131 case orcus::character_set_t::windows_1255:
134 case orcus::character_set_t::windows_1256:
137 case orcus::character_set_t::windows_1257:
140 case orcus::character_set_t::windows_1258:
160 mrGlobalSettings(rGS) {}
171 if (!aAddr.IsValid())
173 std::ostringstream os;
174 os <<
"'" << std::string(p, n) <<
"' is not a valid address expression.";
175 throw orcus::invalid_arg_error(os.str());
178 os::src_address_t ret;
179 ret.sheet = aAddr.Tab();
180 ret.column = aAddr.Col();
181 ret.row = aAddr.Row();
195 if (!aRange.IsValid())
197 std::ostringstream os;
198 os <<
"'" << std::string(p, n) <<
"' is not a valid range expression.";
199 throw orcus::invalid_arg_error(os.str());
203 ret.first.sheet = aRange.aStart.Tab();
204 ret.first.column = aRange.aStart.Col();
205 ret.first.row = aRange.aStart.Row();
206 ret.last.sheet = aRange.aEnd.Tab();
207 ret.last.column = aRange.aEnd.Col();
208 ret.last.row = aRange.aEnd.Row();
215 mrDoc(rDoc), mrGlobalSettings(rGS), mnTab(nTab) {}
241 throw std::runtime_error(
"ScOrcusNamedExpression::set_named_range not implemented yet.");
254 pNames->
insert(pRange,
false);
264 , meGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED)
275 , meGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED)
284 , meGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED)
296 , meGrammar(eGrammar)
306 maStyles(*this, bSkipDefaultStyles),
310 orcus::spreadsheet::sheet_t sheet_index,
const char* sheet_name,
size_t sheet_name_length)
314 if (sheet_index == 0)
319 maSheets.push_back(std::make_unique<ScOrcusSheet>(
maDoc, 0, *
this));
327 maSheets.push_back(std::make_unique<ScOrcusSheet>(
maDoc, nTab, *
this));
333 class FindSheetByIndex
337 explicit FindSheetByIndex(
SCTAB nTab) : mnTab(nTab) {}
338 bool operator() (
const std::unique_ptr<ScOrcusSheet>& rSheet)
const
340 return rSheet->getIndex() == mnTab;
355 std::vector< std::unique_ptr<ScOrcusSheet> >::iterator it =
363 maSheets.push_back(std::make_unique<ScOrcusSheet>(
maDoc, nTab, *
this));
371 std::vector< std::unique_ptr<ScOrcusSheet> >::iterator it =
379 maSheets.push_back(std::make_unique<ScOrcusSheet>(
maDoc, nTab, *
this));
405 auto toFormulaCell = [
this](
const CellStoreToken& rToken ) -> std::unique_ptr<ScFormulaCell>
411 return std::unique_ptr<ScFormulaCell>();
413 return std::make_unique<ScFormulaCell>(
maDoc.
getDoc(), rToken.maPos, *pArray);
420 switch (rToken.meType)
447 rToken.maPos, rToken.maStr1, rToken.meGrammar);
454 if (std::isfinite(rToken.mfValue))
464 std::unique_ptr<ScFormulaCell> pCell = toFormulaCell(rToken);
475 std::unique_ptr<ScFormulaCell> pCell = toFormulaCell(rToken);
479 if (std::isfinite(rToken.mfValue))
480 pCell->SetResultDouble(rToken.mfValue);
482 pCell->SetHybridString(
492 if (!rToken.mnIndex1 || !rToken.mnIndex2)
500 std::unique_ptr<ScTokenArray> pArray(aComp.CompileString(rToken.maStr1));
509 if (!rToken.mnIndex1)
519 if (nCellCount == 100000)
597 uint32_t nRowRange, uint32_t nColRange )
615 if (rToken.
maPos != rPos)
641 if (rToken.
maPos != rPos)
700 double translateToInternal(
double nVal, orcus::length_unit_t unit)
704 case orcus::length_unit_t::inch:
705 return nVal * 72.0 * 20.0;
706 case orcus::length_unit_t::twip:
708 case orcus::length_unit_t::point:
710 case orcus::length_unit_t::centimeter:
711 return nVal * 20.0 * 72.0 / 2.54;
712 case orcus::length_unit_t::unknown:
714 SAL_WARN(
"sc.orcus",
"unknown unit");
727 double nNewWidth = translateToInternal(width, unit);
739 double nNewHeight = translateToInternal(height, unit);
767 os::color_elem_t , os::color_elem_t )
769 SAL_INFO(
"sc.orcus.condformat",
"set_color");
775 SAL_INFO(
"sc.orcus.condformat",
"set_condition_type");
780 SAL_INFO(
"sc.orcus.condformat",
"set_formula");
786 SAL_INFO(
"sc.orcus.condformat",
"set_date");
791 SAL_INFO(
"sc.orcus.condformat",
"commit_condition");
797 SAL_INFO(
"sc.orcus.condformat",
"set_icon_name");
803 SAL_INFO(
"sc.orcus.condformat",
"set_databar_gradient");
809 SAL_INFO(
"sc.orcus.condformat",
"set_databar_axis");
813 os::color_elem_t , os::color_elem_t )
816 SAL_INFO(
"sc.orcus.condformat",
"set_databar_color_positive");
820 os::color_elem_t , os::color_elem_t )
823 SAL_INFO(
"sc.orcus.condformat",
"set_databar_color_negative");
829 SAL_INFO(
"sc.orcus.condformat",
"set_min_databar_length");
835 SAL_INFO(
"sc.orcus.condformat",
"set_max_databar_length");
840 SAL_INFO(
"sc.orcus.condformat",
"set_show_value");
846 SAL_INFO(
"sc.orcus.condformat",
"set_iconset_reverse");
851 SAL_INFO(
"sc.orcus.condformat",
"set_xf_id");
856 SAL_INFO(
"sc.orcus.condformat",
"set_operator");
863 case os::conditional_format_t::condition:
864 case os::conditional_format_t::formula:
868 case os::conditional_format_t::date:
870 case os::conditional_format_t::colorscale:
872 case os::conditional_format_t::databar:
874 case os::conditional_format_t::iconset:
877 SAL_INFO(
"sc.orcus.condformat",
"unknown conditional_format_t value");
880 SAL_INFO(
"sc.orcus.condformat",
"set_type");
885 SAL_INFO(
"sc.orcus.condformat",
"commit_entry");
890 SAL_INFO(
"sc.orcus.condformat",
"set_range");
894 os::row_t row_end, os::col_t col_end)
896 SAL_INFO(
"sc.orcus.condformat",
"set_range");
903 SAL_INFO(
"sc.orcus.condformat",
"commit_format");
911 mrStyles(static_cast<
ScOrcusStyles&>(*mrFactory.get_styles())),
912 maAutoFilter(rFactory.getGlobalSettings()),
914 maConditionalFormat(mnTab, rDoc.getDoc()),
915 maNamedExpressions(rDoc, rFactory.getGlobalSettings(), nTab),
917 maArrayFormula(*this),
939 meGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED),
940 mnSharedFormulaIndex(0),
957 meGrammar = getCalcGrammarFromOrcus(grammar);
1061 meGrammar(
formula::FormulaGrammar::GRAM_UNSPECIFIED) {}
1067 mnCol = range.first.column;
1068 mnRow = range.first.row;
1070 mnColRange = range.last.column - range.first.column + 1;
1071 mnRowRange = range.last.row - range.first.column + 1;
1076 meGrammar = getCalcGrammarFromOrcus(grammar);
1185 os::row_t row, os::col_t col,
int year,
int month,
int day,
int hour,
int minute,
double second)
1189 Date aDate(day, month, year);
1190 sal_uInt32 nSec = floor(second);
1209 SAL_INFO(
"sc.orcus.style",
"set format: " << xf_index);
1217 os::row_t row_end, os::col_t col_end,
size_t xf_index)
1219 SAL_INFO(
"sc.orcus.style",
"set format range: " << xf_index);
1227 orcus::spreadsheet::range_size_t ret;
1256 mrFactory(rFactory) {}
1291 orcus::spreadsheet::color_elem_t,
1292 orcus::spreadsheet::color_elem_t,
1293 orcus::spreadsheet::color_elem_t)
1322 mbHasFontAttr(false),
1323 mbHasUnderlineAttr(false),
1324 mbHasStrikeout(false),
1332 mePattern(orcus::spreadsheet::fill_pattern_t::
none),
1335 mbHasFillAttr(false)
1341 mbHasNumberFormatAttr(false)
1375 if (mbHasUnderlineAttr)
1378 aUnderline.
SetColor(maUnderlineColor);
1379 rSet.
Put(aUnderline);
1388 if (mePattern == orcus::spreadsheet::fill_pattern_t::none)
1390 SAL_INFO(
"sc.orcus.style",
"no fill style");
1394 if (mePattern == orcus::spreadsheet::fill_pattern_t::solid)
1401 mbPrintContent(false),
1402 mbFormulaHidden(false),
1403 mbHasProtectionAttr(false)
1413 mbHasBorderAttr(false)
1431 case os::border_direction_t::right:
1432 return SvxBoxItemLine::RIGHT;
1433 case os::border_direction_t::left:
1434 return SvxBoxItemLine::LEFT;
1435 case os::border_direction_t::top:
1436 return SvxBoxItemLine::TOP;
1437 case os::border_direction_t::bottom:
1438 return SvxBoxItemLine::BOTTOM;
1442 return SvxBoxItemLine::RIGHT;
1457 if (current_border_line.first == orcus::spreadsheet::border_direction_t::diagonal_tl_br)
1459 editeng::SvxBorderLine aLine(¤t_border_line.second.maColor, current_border_line.second.mnWidth, current_border_line.second.meStyle);
1460 aDiagonal_TLBR.
SetLine(&aLine);
1462 else if (current_border_line.first == orcus::spreadsheet::border_direction_t::diagonal_bl_tr)
1464 editeng::SvxBorderLine aLine(¤t_border_line.second.maColor, current_border_line.second.mnWidth, current_border_line.second.meStyle);
1465 aDiagonal_BLTR.
SetLine(&aLine);
1469 editeng::SvxBorderLine aLine(¤t_border_line.second.maColor, current_border_line.second.mnWidth, current_border_line.second.meStyle);
1470 aBoxItem.
SetLine(&aLine, eDir);
1473 rSet.
Put(aDiagonal_BLTR);
1474 rSet.
Put(aDiagonal_TLBR);
1481 sal_Int32 nCheckPos;
1483 OUString Code = maCode;
1496 mnNumberFormatId(0),
1507 maParentName(
"Default"),
1516 if (nFontId >=
maFonts.size())
1518 SAL_WARN(
"sc.orcus.style",
"invalid font id");
1526 if (nFillId >=
maFills.size())
1528 SAL_WARN(
"sc.orcus.style",
"invalid fill id");
1539 SAL_WARN(
"sc.orcus.style",
"invalid border id");
1549 SAL_WARN(
"sc.orcus.style",
"invalid protection id");
1559 SAL_WARN(
"sc.orcus.style",
"invalid number format id");
1577 SAL_INFO(
"sc.orcus.style",
"applyXfToitemSet: " << xfId);
1580 SAL_WARN(
"sc.orcus.style",
"invalid xf id");
1622 case orcus::spreadsheet::underline_t::single_line:
1623 case orcus::spreadsheet::underline_t::single_accounting:
1626 case orcus::spreadsheet::underline_t::double_line:
1627 case orcus::spreadsheet::underline_t::double_accounting:
1630 case orcus::spreadsheet::underline_t::none:
1633 case orcus::spreadsheet::underline_t::dotted:
1636 case orcus::spreadsheet::underline_t::dash:
1639 case orcus::spreadsheet::underline_t::long_dash:
1642 case orcus::spreadsheet::underline_t::dot_dash:
1645 case orcus::spreadsheet::underline_t::dot_dot_dot_dash:
1648 case orcus::spreadsheet::underline_t::wave:
1659 if (e == orcus::spreadsheet::underline_width_t::bold || e == orcus::spreadsheet::underline_width_t::thick)
1699 if (e == orcus::spreadsheet::underline_type_t::double_type)
1718 orcus::spreadsheet::color_elem_t red,
1719 orcus::spreadsheet::color_elem_t green,
1720 orcus::spreadsheet::color_elem_t blue)
1726 orcus::spreadsheet::color_elem_t red,
1727 orcus::spreadsheet::color_elem_t green,
1728 orcus::spreadsheet::color_elem_t blue)
1747 case os::strikethrough_type_t::unknown:
1750 case os::strikethrough_type_t::none:
1753 case os::strikethrough_type_t::single:
1756 case os::strikethrough_type_t::double_type:
1770 case os::strikethrough_width_t::bold:
1783 case os::strikethrough_text_t::slash:
1786 case os::strikethrough_text_t::cross:
1797 SAL_INFO(
"sc.orcus.style",
"commit font");
1816 orcus::spreadsheet::color_elem_t , orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
1824 orcus::spreadsheet::color_elem_t , orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
1833 SAL_INFO(
"sc.orcus.style",
"commit fill");
1847 orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::border_style_t style)
1852 case orcus::spreadsheet::border_style_t::solid:
1853 current_line.
meStyle = SvxBorderLineStyle::SOLID;
1856 case orcus::spreadsheet::border_style_t::hair:
1857 current_line.
meStyle = SvxBorderLineStyle::SOLID;
1860 case orcus::spreadsheet::border_style_t::medium:
1861 current_line.
meStyle = SvxBorderLineStyle::SOLID;
1864 case orcus::spreadsheet::border_style_t::thick:
1865 current_line.
meStyle = SvxBorderLineStyle::SOLID;
1868 case orcus::spreadsheet::border_style_t::thin:
1869 current_line.
meStyle = SvxBorderLineStyle::SOLID;
1872 case orcus::spreadsheet::border_style_t::dash_dot:
1873 current_line.
meStyle = SvxBorderLineStyle::DASH_DOT;
1876 case orcus::spreadsheet::border_style_t::dash_dot_dot:
1877 current_line.
meStyle = SvxBorderLineStyle::DASH_DOT_DOT;
1880 case orcus::spreadsheet::border_style_t::dashed:
1881 current_line.
meStyle = SvxBorderLineStyle::DASHED;
1884 case orcus::spreadsheet::border_style_t::dotted:
1885 current_line.
meStyle = SvxBorderLineStyle::DOTTED;
1888 case orcus::spreadsheet::border_style_t::double_border:
1889 current_line.
meStyle = SvxBorderLineStyle::DOUBLE;
1892 case orcus::spreadsheet::border_style_t::medium_dash_dot:
1893 case orcus::spreadsheet::border_style_t::slant_dash_dot:
1894 current_line.
meStyle = SvxBorderLineStyle::DASH_DOT;
1897 case orcus::spreadsheet::border_style_t::medium_dash_dot_dot:
1898 current_line.
meStyle = SvxBorderLineStyle::DASH_DOT_DOT;
1901 case orcus::spreadsheet::border_style_t::medium_dashed:
1902 current_line.
meStyle = SvxBorderLineStyle::DASHED;
1905 case orcus::spreadsheet::border_style_t::unknown:
1906 case orcus::spreadsheet::border_style_t::none:
1916 orcus::spreadsheet::color_elem_t ,
1917 orcus::spreadsheet::color_elem_t red,
1918 orcus::spreadsheet::color_elem_t green,
1919 orcus::spreadsheet::color_elem_t blue)
1928 current_line.
mnWidth = translateToInternal(val, unit);
1933 SAL_INFO(
"sc.orcus.style",
"commit border");
1966 SAL_INFO(
"sc.orcus.style",
"commit cell protection");
1989 SAL_INFO(
"sc.orcus.style",
"commit number format");
2004 SAL_INFO(
"sc.orcus.style",
"commit cell style xf");
2018 SAL_INFO(
"sc.orcus.style",
"commit cell xf");
2074 case os::hor_alignment_t::left:
2077 case os::hor_alignment_t::right:
2080 case os::hor_alignment_t::center:
2083 case os::hor_alignment_t::justified:
2086 case os::hor_alignment_t::distributed:
2090 case os::hor_alignment_t::unknown:
2103 case os::ver_alignment_t::top:
2106 case os::ver_alignment_t::bottom:
2109 case os::ver_alignment_t::middle:
2112 case os::ver_alignment_t::justified:
2115 case os::ver_alignment_t::distributed:
2119 case os::ver_alignment_t::unknown:
2164 SAL_WARN(
"sc.orcus.style",
"invalid xf id for commit cell style");
2189 mrGlobalSettings(rGS)
2207 SAL_INFO(
"sc.orcus.autofilter",
"set_column: " << col);
2213 SAL_INFO(
"sc.orcus.autofilter",
"append_column_match_value: " << aString);
2218 SAL_INFO(
"sc.orcus.autofilter",
"commit column");
2223 SAL_INFO(
"sc.orcus.autofilter",
"commit");
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
orcus::spreadsheet::formula_grammar_t meOrcusGrammar
virtual void set_font_underline_width(orcus::spreadsheet::underline_width_t e) override
ScOrcusFactory & mrFactory
const sal_Int16 API_LINE_THIN
virtual size_t append(const char *s, size_t n) override
virtual orcus::spreadsheet::iface::import_array_formula * get_array_formula() override
SharedString intern(const OUString &rStr)
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
virtual orcus::spreadsheet::iface::import_named_expression * get_named_expression() override
virtual void commit_column() 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
constexpr TypedWhichId< SvxBoxItem > ATTR_BORDER(150)
virtual orcus::spreadsheet::iface::import_styles * get_styles() override
#define LANGUAGE_ENGLISH_US
virtual size_t commit_cell_style() override
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
void SetColor(const Color &rCol)
virtual bool SetParent(const OUString &)
ScOrcusFactory & getFactory()
virtual void set_dxf_count(size_t count) override
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
constexpr TypedWhichId< SvxCrossedOutItem > ATTR_FONT_CROSSEDOUT(106)
SC_DLLPUBLIC ScRangeName * GetRangeName(SCTAB nTab) const
std::unique_ptr< ScTokenArray > CompileString(const OUString &rFormula)
Tokenize formula expression string into an array of tokens.
ScOrcusAutoFilter maAutoFilter
const ScOrcusGlobalSettings & mrGlobalSettings
SC_DLLPUBLIC void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, bool bHidden)
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
const sal_Int16 API_LINE_HAIR
virtual void finalize() override
ScOrcusFactory(ScDocument &rDoc, bool bSkipDefaultStyles=false)
const OUString * getString(size_t nIndex) const
const sc::SharedFormulaGroups & getSharedFormulaGroups() const
virtual void set_number_format_code(const char *s, size_t n) override
constexpr TypedWhichId< SvxFontItem > ATTR_FONT(100)
virtual SfxItemSet & GetItemSet()
void SetLine(const editeng::SvxBorderLine *pNew)
virtual void set_xf_number_format(size_t index) override
Accessor class to ScDocument.
virtual void set_font_bold(bool b) override
void setMergedCells(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
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)
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
SC_DLLPUBLIC ScDocumentPool * GetPool()
SvxBorderLineStyle meStyle
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
virtual void set_font_size(double point) override
virtual void set_cell_style_name(const char *s, size_t n) override
virtual void set_font_underline_mode(orcus::spreadsheet::underline_mode_t e) override
formula::FormulaGrammar::Grammar meCalcGrammar
SCTAB getSheetIndex(const OUString &rName) const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
virtual orcus::spreadsheet::iface::import_sheet * append_sheet(orcus::spreadsheet::sheet_t sheet_index, const char *sheet_name, size_t sheet_name_length) override
ScDocumentImport & getDoc()
virtual void set_xf_fill(size_t index) override
virtual void set_cell_style_parent_name(const char *s, size_t n) override
virtual size_t add(const char *s, size_t n) override
constexpr TypedWhichId< SvxJustifyMethodItem > ATTR_HOR_JUSTIFY_METHOD(130)
virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override
SvGenericNameContainerMapImpl maProperties
virtual void append_column_match_value(const char *p, size_t n) override
SvxCellJustifyMethod meVerAlignMethod
SvxCellVerJustify meVerAlignment
virtual size_t commit_font() override
SC_DLLPUBLIC void SetColWidthOnly(SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth)
size_t addString(const OUString &rStr)
virtual void set_strikethrough_style(orcus::spreadsheet::strikethrough_style_t s) override
SC_DLLPUBLIC void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, sal_uInt16 nNewHeight)
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
std::vector< protection > maProtections
ScOrcusRefResolver(const ScOrcusGlobalSettings &rGS)
virtual void append_segment(const char *s, size_t n) override
ScOrcusSharedStrings maSharedStrings
sc::SharedFormulaGroups maFormulaGroups
constexpr TypedWhichId< SvxUnderlineItem > ATTR_FONT_UNDERLINE(104)
virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t xf_index) override
void setMatrixCells(const ScRange &rRange, const ScTokenArray &rArray, formula::FormulaGrammar::Grammar eGrammar)
void pushSharedFormulaToken(const ScAddress &rPos, uint32_t nIndex)
constexpr TypedWhichId< SvxLineItem > ATTR_BORDER_TLBR(141)
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)
constexpr TypedWhichId< SvxPostureItem > ATTR_FONT_POSTURE(103)
SC_DLLPUBLIC SvNumberFormatter * GetFormatTable() const
virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override
virtual size_t commit_dxf() override
bool appendSheet(const OUString &rName)
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)
void fillDownCells(const ScAddress &rPos, SCROW nFillSize)
ScOrcusSheetProperties(SCTAB nTab, ScDocumentImport &rDoc)
ScOrcusFactory & mrFactory
virtual orcus::spreadsheet::iface::import_table * get_table() override
std::vector< number_format > maNumberFormats
virtual void set_font_italic(bool b) override
void IncCol(SCCOL nDelta=1)
ScOrcusAutoFilter(const ScOrcusGlobalSettings &rGS)
SvxCellHorJustify meHorAlignment
SCTAB getSheetCount() const
constexpr TypedWhichId< SvxVerJustifyItem > ATTR_VER_JUSTIFY(132)
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
SC_DLLPUBLIC void ApplyPattern(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr &rAttr)
void IncRow(SCROW nDelta=1)
OUString ScResId(const char *pId)
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char *p, size_t n) override
ScDocumentImport & getDoc() const
constexpr TypedWhichId< SfxUInt32Item > ATTR_VALUE_FORMAT(146)
virtual orcus::spreadsheet::iface::import_sheet_properties * get_sheet_properties() override
virtual void set_number_format_identifier(size_t n) override
SC_DLLPUBLIC void ApplyPatternAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScPatternAttr &rAttr)
virtual orcus::spreadsheet::iface::import_sheet * get_sheet(const char *sheet_name, size_t sheet_name_length) override
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 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
void setSheetName(SCTAB nTab, const OUString &rName)
virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar) override
std::vector< xf > maCellStyleXfs
void applyToItemSet(SfxItemSet &rSet) const
formula::FormulaGrammar::Grammar meGrammar
virtual size_t commit_cell_protection() override
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
FontLineStyle meUnderline
virtual ~ScOrcusSheetProperties() override
void setAutoInput(const ScAddress &rPos, const OUString &rStr, const ScSetStringParam *pStringParam=nullptr)
std::vector< std::unique_ptr< ScOrcusSheet > > maSheets
virtual void set_segment_bold(bool b) override
bool HasStandardStyles() const
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
void pushCellStoreToken(const ScAddress &rPos, uint32_t nStrIndex)
ScOrcusSharedStrings(ScOrcusFactory &rFactory)
virtual void set_segment_font_name(const char *s, size_t n) override
virtual void set_strikethrough_type(orcus::spreadsheet::strikethrough_type_t s) override
constexpr TypedWhichId< SvxBrushItem > ATTR_BACKGROUND(148)
virtual void set_named_range(const char *p_name, size_t n_name, const char *p_range, size_t n_range) override
virtual size_t commit_cell_style_xf() override
const sal_Int16 API_LINE_MEDIUM
number_format maCurrentNumberFormat
virtual void set_segment_font(size_t font_index) override
void setStatusIndicator(const css::uno::Reference< css::task::XStatusIndicator > &rIndicator)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
void setFormulaCell(const ScAddress &rPos, const OUString &rFormula, formula::FormulaGrammar::Grammar eGrammar, const double *pResult=nullptr)
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
constexpr TypedWhichId< SvxJustifyMethodItem > ATTR_VER_JUSTIFY_METHOD(133)
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
const sal_Int16 API_LINE_THICK
virtual void set_cell_style_count(size_t n) override
virtual void set_segment_font_size(double point) override
orcus::spreadsheet::fill_pattern_t mePattern
ScDocumentImport & getDoc()
FontStrikeout meStrikeout
virtual void set_xf_apply_alignment(bool b) override
OStringBuffer maCurSegment
ScOrcusNamedExpression(ScDocumentImport &rDoc, const ScOrcusGlobalSettings &rGS, SCTAB nTab=-1)
void setStringCell(const ScAddress &rPos, const OUString &rStr)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
void CreateStandardStyles()
#define SAL_INFO(area, stream)
virtual SfxStyleSheetBase & Make(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits nMask=SfxStyleSearchBits::All) override
void setOriginDate(sal_uInt16 nYear, sal_uInt16 nMonth, sal_uInt16 nDay)
ScOrcusNamedExpression maNamedExpressions
ScOrcusConditionalFormat maConditionalFormat
ScOrcusSheet(ScDocumentImport &rDoc, SCTAB nTab, ScOrcusFactory &rFactory)
SC_DLLPUBLIC ScRefFlags Parse(const OUString &, const ScDocument &, const ScAddress::Details &rDetails=ScAddress::detailsOOOa1, ScAddress::ExternalInfo *pExtInfo=nullptr, const css::uno::Sequence< css::sheet::ExternalLinkInfo > *pExternalLinks=nullptr, const OUString *pErrRef=nullptr)
ScOrcusFactory & mrFactory
constexpr TypedWhichId< SvxWeightItem > ATTR_FONT_WEIGHT(102)
constexpr TypedWhichId< SvxHorJustifyItem > ATTR_HOR_JUSTIFY(129)
virtual ~ScOrcusAutoFilter() override
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
orcus::spreadsheet::src_range_t resolve_range(const char *p, size_t n) override
virtual void set_column_hidden(orcus::spreadsheet::col_t col, bool hidden) override
SC_DLLPUBLIC void SetRowHidden(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bHidden)
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
virtual void set_strikethrough_width(orcus::spreadsheet::strikethrough_width_t s) override
orcus::spreadsheet::src_address_t resolve_address(const char *p, size_t n) 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)
#define SAL_WARN(area, stream)
SC_DLLPUBLIC ScRefFlags Parse(const OUString &, const ScDocument &, const Details &rDetails=detailsOOOa1, ExternalInfo *pExtInfo=nullptr, const css::uno::Sequence< css::sheet::ExternalLinkInfo > *pExternalLinks=nullptr, sal_Int32 *pSheetEndPos=nullptr, const OUString *pErrRef=nullptr)
virtual void set_row_hidden(orcus::spreadsheet::row_t row, bool hidden) override
virtual void set_cell_locked(bool b) override
void setNumericCell(const ScAddress &rPos, double fVal)
virtual void set_font_count(size_t n) override
ScOrcusGlobalSettings maGlobalSettings
virtual size_t commit_border() override
std::map< orcus::spreadsheet::border_direction_t, border_line > border_lines
virtual void set_font_name(const char *s, size_t n) override
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
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
CellStoreToken(const ScAddress &rPos, Type eType)
StringHashType maStringHash
constexpr TypedWhichId< SvxFontHeightItem > ATTR_FONT_HEIGHT(101)
protection maCurrentProtection
virtual void set_cell_print_content(bool b) override
virtual orcus::spreadsheet::iface::import_auto_filter * get_auto_filter() override
SvxCellJustifyMethod meHorAlignMethod
constexpr TypedWhichId< SvxLineItem > ATTR_BORDER_BLTR(142)
SC_DLLPUBLIC bool insert(ScRangeData *p, bool bReuseFreeIndex=true)
Insert object into set.
virtual void set_cell_style_builtin(size_t index) override
virtual void set_segment_italic(bool b) override
virtual void set_named_expression(const char *p_name, size_t n_name, const char *p_exp, size_t n_exp) override
virtual void set_strikethrough_text(orcus::spreadsheet::strikethrough_text_t s) override
std::vector< fill > maFills
void SetLine(const editeng::SvxBorderLine *pNew, SvxBoxItemLine nLine)
virtual void set_xf_border(size_t index) override
const sal_Int16 API_LINE_NONE
Font auto color (system window text color).