diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-08-17 09:47:28 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2015-01-09 18:41:33 +0100 |
commit | 84993c08be9ec2ab0104bd8cdb89341ecbc53ccf (patch) | |
tree | 474b28e763dfbe4391b1c2ef003064a2261bc8ec /sc/source/filter/orcus/interface.cxx | |
parent | b7d07699c8142e33f9d05d4e203b6fb567f36a9b (diff) |
make the code work against current orcus master
Change-Id: I9840b3b2a2d01514ba7b15112e66c878b7b395b1
Diffstat (limited to 'sc/source/filter/orcus/interface.cxx')
-rw-r--r-- | sc/source/filter/orcus/interface.cxx | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index 3735f28c82b2..660512c534e6 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -35,6 +35,16 @@ void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day) mrDoc.setOriginDate(year, month, day); } +void ScOrcusGlobalSettings::set_default_formula_grammar(os::formula_grammar_t eGrammar) +{ + meGrammar = eGrammar; +} + +os::formula_grammar_t ScOrcusGlobalSettings::get_default_formula_grammar() const +{ + return meGrammar; +} + ScOrcusFactory::StringCellCache::StringCellCache(const ScAddress& rPos, size_t nIndex) : maPos(rPos), mnIndex(nIndex) {} @@ -270,16 +280,18 @@ formula::FormulaGrammar::Grammar getCalcGrammarFromOrcus( os::formula_grammar_t formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_ODFF; switch(grammar) { - case orcus::spreadsheet::ods: + case orcus::spreadsheet::formula_grammar_ods: eGrammar = formula::FormulaGrammar::GRAM_ODFF; break; - case orcus::spreadsheet::xlsx_2007: - case orcus::spreadsheet::xlsx_2010: + case orcus::spreadsheet::formula_grammar_xlsx_2007: + case orcus::spreadsheet::formula_grammar_xlsx_2010: eGrammar = formula::FormulaGrammar::GRAM_OOXML; break; - case orcus::spreadsheet::gnumeric: + case orcus::spreadsheet::formula_grammar_gnumeric: eGrammar = formula::FormulaGrammar::GRAM_ENGLISH_XL_A1; break; + default: + break; } return eGrammar; @@ -309,6 +321,18 @@ void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, const char* pCell->SetHybridString(mrDoc.getDoc().GetSharedStringPool().intern(aResult)); } +void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, double value) +{ + ScFormulaCell* pCell = mrDoc.getDoc().GetFormulaCell(ScAddress(col, row, mnTab)); + if (!pCell) + { + SAL_WARN("sc", "trying to set formula result for non formula \ + cell! Col: " << col << ";Row: " << row << ";Tab: " << mnTab); + return; + } + pCell->SetHybridDouble(value); +} + void ScOrcusSheet::set_shared_formula( os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex, const char* p_formula, size_t n_formula) |