diff options
Diffstat (limited to 'sc/source/filter/excel/excdoc.cxx')
-rw-r--r-- | sc/source/filter/excel/excdoc.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sc/source/filter/excel/excdoc.cxx b/sc/source/filter/excel/excdoc.cxx index 37450ca9e445..ee4c4cce8846 100644 --- a/sc/source/filter/excel/excdoc.cxx +++ b/sc/source/filter/excel/excdoc.cxx @@ -888,15 +888,23 @@ void ExcDocument::WriteXml( XclExpXmlStream& rStrm ) rCaches.SaveXml(rStrm); const ScCalcConfig& rCalcConfig = GetDoc().GetCalcConfig(); + formula::FormulaGrammar::AddressConvention eConv = rCalcConfig.meStringRefAddressSyntax; + + // don't save "unspecified" string ref syntax ... query formula grammar + // and save that instead + if( eConv == formula::FormulaGrammar::CONV_UNSPECIFIED) + { + eConv = GetDoc().GetAddressConvention(); + } // write if it has been read|imported or explicitly changed // or if ref syntax isn't what would be native for our file format // i.e. ExcelA1 in this case if ( rCalcConfig.mbHasStringRefSyntax || - (rCalcConfig.meStringRefAddressSyntax != formula::FormulaGrammar::CONV_XL_A1) ) + (eConv != formula::FormulaGrammar::CONV_XL_A1) ) { XclExtLstRef xExtLst( new XclExtLst( GetRoot() ) ); - xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), rCalcConfig.meStringRefAddressSyntax )) ); + xExtLst->AddRecord( XclExpExtRef( new XclExpExtCalcPr( GetRoot(), eConv )) ); xExtLst->SaveXml(rStrm); } |