Kaydet (Commit) fe88fe6f authored tarafından Katarina Behrens's avatar Katarina Behrens Kaydeden (comit) Markus Mohrhard

tdf#92256: Make OOXML filter CONV_A1_XL_A1 aware too

+ don't write string ref syntax if it hasn't been read or explicitly
changed

Change-Id: Id3788a71a4a3d0672283a4770c7d7a9608beb06f
Reviewed-on: https://gerrit.libreoffice.org/17326Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst 11e6683b
...@@ -70,6 +70,7 @@ Broadcaster ...@@ -70,6 +70,7 @@ Broadcaster
Button Button
CF CF
CalcA1 CalcA1
CalcA1ExcelA1
Camera Camera
Cancel Cancel
Caption Caption
......
...@@ -881,10 +881,15 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm ) ...@@ -881,10 +881,15 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm )
if (rCaches.HasCaches()) if (rCaches.HasCaches())
rCaches.SaveXml(rStrm); rCaches.SaveXml(rStrm);
XclExtLstRef xExtLst( new XclExtLst( GetRoot() ) );
const ScCalcConfig& rCalcConfig = GetDoc().GetCalcConfig(); const ScCalcConfig& rCalcConfig = GetDoc().GetCalcConfig();
xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), rCalcConfig.meStringRefAddressSyntax )) );
xExtLst->SaveXml(rStrm); // don't write if it hasn't been read or explicitly changed
if ( rCalcConfig.mbHasStringRefSyntax )
{
XclExtLstRef xExtLst( new XclExtLst( GetRoot() ) );
xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), rCalcConfig.meStringRefAddressSyntax )) );
xExtLst->SaveXml(rStrm);
}
rWorkbook->endElement( XML_workbook ); rWorkbook->endElement( XML_workbook );
rWorkbook.reset(); rWorkbook.reset();
......
...@@ -378,12 +378,14 @@ XclExpExtCalcPr::XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGramm ...@@ -378,12 +378,14 @@ XclExpExtCalcPr::XclExpExtCalcPr( const XclExpRoot& rRoot, formula::FormulaGramm
case formula::FormulaGrammar::CONV_XL_R1C1: case formula::FormulaGrammar::CONV_XL_R1C1:
maSyntax = OString("ExcelR1C1"); maSyntax = OString("ExcelR1C1");
break; break;
case formula::FormulaGrammar::CONV_A1_XL_A1:
maSyntax = OString("CalcA1ExcelA1");
break;
case formula::FormulaGrammar::CONV_UNSPECIFIED: case formula::FormulaGrammar::CONV_UNSPECIFIED:
case formula::FormulaGrammar::CONV_ODF: case formula::FormulaGrammar::CONV_ODF:
case formula::FormulaGrammar::CONV_XL_OOX: case formula::FormulaGrammar::CONV_XL_OOX:
case formula::FormulaGrammar::CONV_LOTUS_A1: case formula::FormulaGrammar::CONV_LOTUS_A1:
case formula::FormulaGrammar::CONV_LAST: case formula::FormulaGrammar::CONV_LAST:
case formula::FormulaGrammar::CONV_A1_XL_A1:
maSyntax = OString("Unspecified"); maSyntax = OString("Unspecified");
break; break;
} }
......
...@@ -265,16 +265,19 @@ ContextHandlerRef ExtGlobalWorkbookContext::onCreateContext( sal_Int32 nElement, ...@@ -265,16 +265,19 @@ ContextHandlerRef ExtGlobalWorkbookContext::onCreateContext( sal_Int32 nElement,
switch( nToken ) switch( nToken )
{ {
case XML_CalcA1: case XML_CalcA1:
aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_OOO; aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_OOO );
break; break;
case XML_ExcelA1: case XML_ExcelA1:
aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_A1; aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_A1 );
break; break;
case XML_ExcelR1C1: case XML_ExcelR1C1:
aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_XL_R1C1; aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_XL_R1C1 );
break;
case XML_CalcA1ExcelA1:
aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_A1_XL_A1 );
break; break;
default: default:
aCalcConfig.meStringRefAddressSyntax = formula::FormulaGrammar::CONV_UNSPECIFIED; aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED );
break; break;
} }
pDoc->SetCalcConfig(aCalcConfig); pDoc->SetCalcConfig(aCalcConfig);
......
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