diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-11-04 02:23:26 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-11-04 16:33:16 +0100 |
commit | 13fa07a4e369ad24ce7279292fb6604f57f86691 (patch) | |
tree | 61bcb4d2c3501d888011285be94640778b2e1482 | |
parent | bca1f6b9cae0aacf4b49b237a913510c91ca10d1 (diff) |
implement text cond formats ooxml import
Change-Id: Icf6677131c6602e539515d73b1f08abd6e883dc9
-rw-r--r-- | sc/source/filter/oox/condformatbuffer.cxx | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index eb0f1dc77d6a..4929e1925643 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -676,20 +676,20 @@ void CondFormatRule::finalizeImport() break; case XML_containsText: OSL_ENSURE( maModel.mnOperator == XML_containsText, "CondFormatRule::finalizeImport - unexpected operator" ); - aReplaceFormula = "NOT(ISERROR(SEARCH(#T,#B)))"; + eOperator = SC_COND_CONTAINS_TEXT; break; case XML_notContainsText: // note: type XML_notContainsText vs. operator XML_notContains OSL_ENSURE( maModel.mnOperator == XML_notContains, "CondFormatRule::finalizeImport - unexpected operator" ); - aReplaceFormula = "ISERROR(SEARCH(#T,#B))"; + eOperator = SC_COND_NOT_CONTAINS_TEXT; break; case XML_beginsWith: OSL_ENSURE( maModel.mnOperator == XML_beginsWith, "CondFormatRule::finalizeImport - unexpected operator" ); - aReplaceFormula = "LEFT(#B,#L)=#T"; + eOperator = SC_COND_BEGINS_WITH; break; case XML_endsWith: OSL_ENSURE( maModel.mnOperator == XML_endsWith, "CondFormatRule::finalizeImport - unexpected operator" ); - aReplaceFormula = "RIGHT(#B,#L)=#T"; + eOperator = SC_COND_ENDS_WITH; break; case XML_timePeriod: switch( maModel.mnTimePeriod ) @@ -831,6 +831,16 @@ void CondFormatRule::finalizeImport() ScCondFormatEntry* pNewEntry = new ScCondFormatEntry( eOperator, NULL, NULL, &rDoc, aPos, aStyleName ); mpFormat->AddEntry(pNewEntry); } + else if( eOperator == SC_COND_BEGINS_WITH || eOperator == SC_COND_ENDS_WITH || + eOperator == SC_COND_CONTAINS_TEXT || eOperator == SC_COND_NOT_CONTAINS_TEXT ) + { + ScDocument& rDoc = getScDocument(); + ScTokenArray aTokenArray; + aTokenArray.AddString(maModel.maText); + OUString aStyleName = getStyles().createDxfStyle( maModel.mnDxfId ); + ScCondFormatEntry* pNewEntry = new ScCondFormatEntry( eOperator, &aTokenArray, NULL, &rDoc, aPos, aStyleName ); + mpFormat->AddEntry(pNewEntry); + } else if( (eOperator != SC_COND_NONE) && !maModel.maFormulas.empty() ) { ScDocument& rDoc = getScDocument(); |