Kaydet (Commit) 2f4ff04f authored tarafından Markus Mohrhard's avatar Markus Mohrhard

export more conditional formats

Change-Id: I334c8416e74df39bc2a5832b6accf1dba38c245f
üst c13c0ac9
......@@ -3837,10 +3837,75 @@ void ScXMLExport::ExportConditionalFormat(SCTAB nTab)
for(ScConditionalFormatList::const_iterator itr = pCondFormatList->begin();
itr != pCondFormatList->end(); ++itr)
{
rtl::OUString sRanges;
const ScRangeList* pRangeList = itr->GetRangeInfo();
ScRangeStringConverter::GetStringFromRangeList( sRanges, pRangeList, pDoc, formula::FormulaGrammar::CONV_ODF );
AddAttribute(XML_NAMESPACE_CALC_EXT, XML_TARGET_RANGE_ADDRESS, sRanges);
SvXMLElementExport aElementCondFormat(*this, XML_NAMESPACE_CALC_EXT, XML_CONDITIONAL_FORMAT, true, true);
rtl::OUString sRangeList;
//ScRangeStringConverter::GetStringFromRangeList( sRanges, rRangeList, pDoc, FormulaGrammar::CONV_OOO );
AddAttribute(XML_NAMESPACE_CALC_EXT, XML_TARGET_RANGE_ADDRESS, sRangeList);
sal_Int32 nEntries = itr->Count();
for(sal_Int32 i = 0; i < nEntries; ++i)
{
const ScCondFormatEntry* pEntry = itr->GetEntry(i);
rtl::OUStringBuffer aCond;
switch(pEntry->GetOperation())
{
case SC_COND_EQUAL:
aCond.append('=');
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_LESS:
aCond.append('<');
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_GREATER:
aCond.append('>');
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_EQLESS:
aCond.append("<=");
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_EQGREATER:
aCond.append(">=");
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_NOTEQUAL:
aCond.append("!=");
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
break;
case SC_COND_BETWEEN:
aCond.append(rtl::OUString("between("));
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
aCond.append(',');
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 1, 0, formula::FormulaGrammar::GRAM_ODFF));
aCond.append(')');
break;
case SC_COND_NOTBETWEEN:
aCond.append(rtl::OUString("not-between("));
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
aCond.append(',');
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 1, 0, formula::FormulaGrammar::GRAM_ODFF));
aCond.append(')');
break;
case SC_COND_DUPLICATE:
aCond.append("duplicate");
break;
case SC_COND_NOTDUPLICATE:
aCond.append("unique");
break;
case SC_COND_DIRECT:
aCond.append("formula-is(");
aCond.append(pEntry->GetExpression(pEntry->GetSrcPos(), 0, 0, formula::FormulaGrammar::GRAM_ODFF));
aCond.append(')');
break;
case SC_COND_NONE:
continue;
}
rtl::OUString sStyle = pEntry->GetStyle();
AddAttribute(XML_NAMESPACE_CALC_EXT, XML_APPLY_STYLE_NAME, sStyle);
AddAttribute(XML_NAMESPACE_CALC_EXT, XML_VALUE, aCond.makeStringAndClear());
SvXMLElementExport aElementCondEntry(*this, XML_NAMESPACE_CALC_EXT, XML_CONDITION, true, true);
}
}
}
......@@ -3851,7 +3916,7 @@ void ScXMLExport::ExportConditionalFormat(SCTAB nTab)
{
rtl::OUString sRangeList;
const ScRangeList& rRangeList = itr->GetRange();
ScRangeStringConverter::GetStringFromRangeList( sRangeList, &rRangeList, pDoc, FormulaGrammar::CONV_OOO );
ScRangeStringConverter::GetStringFromRangeList( sRangeList, &rRangeList, pDoc, formula::FormulaGrammar::CONV_ODF );
AddAttribute(XML_NAMESPACE_CALC_EXT, XML_TARGET_RANGE_ADDRESS, sRangeList);
SvXMLElementExport aElementColFormat(*this, XML_NAMESPACE_CALC_EXT, XML_CONDITIONAL_FORMAT, true, true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment