summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-11-04 02:23:26 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-11-04 16:33:16 +0100
commit13fa07a4e369ad24ce7279292fb6604f57f86691 (patch)
tree61bcb4d2c3501d888011285be94640778b2e1482
parentbca1f6b9cae0aacf4b49b237a913510c91ca10d1 (diff)
implement text cond formats ooxml import
Change-Id: Icf6677131c6602e539515d73b1f08abd6e883dc9
-rw-r--r--sc/source/filter/oox/condformatbuffer.cxx18
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();