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

r is an optional attribute in c and r, fdo#65059

Change-Id: Ic954cc5692ddc899f8a6fa99466bc0c8a83da352
üst 7e1c6616
...@@ -117,6 +117,9 @@ private: ...@@ -117,6 +117,9 @@ private:
BinAddress maCurrPos; /// Current cell position (BIFF12 only). BinAddress maCurrPos; /// Current cell position (BIFF12 only).
bool mbHasFormula; /// True = current cell has formula data (OOXML only). bool mbHasFormula; /// True = current cell has formula data (OOXML only).
bool mbValidRange; /// True = maFmlaData.maFormulaRef is valid (OOXML only). bool mbValidRange; /// True = maFmlaData.maFormulaRef is valid (OOXML only).
sal_Int32 mnRow;
sal_Int32 mnCol;
}; };
// ============================================================================ // ============================================================================
......
...@@ -110,7 +110,9 @@ SheetDataContext::SheetDataContext( WorksheetFragmentBase& rFragment ) : ...@@ -110,7 +110,9 @@ SheetDataContext::SheetDataContext( WorksheetFragmentBase& rFragment ) :
WorksheetContextBase( rFragment ), WorksheetContextBase( rFragment ),
SheetDataContextBase( rFragment ), SheetDataContextBase( rFragment ),
mbHasFormula( false ), mbHasFormula( false ),
mbValidRange( false ) mbValidRange( false ),
mnRow( -1 ),
mnCol( -1 )
{ {
} }
...@@ -293,7 +295,13 @@ ContextHandlerRef SheetDataContext::onCreateRecordContext( sal_Int32 nRecId, Seq ...@@ -293,7 +295,13 @@ ContextHandlerRef SheetDataContext::onCreateRecordContext( sal_Int32 nRecId, Seq
void SheetDataContext::importRow( const AttributeList& rAttribs ) void SheetDataContext::importRow( const AttributeList& rAttribs )
{ {
RowModel aModel; RowModel aModel;
aModel.mnRow = rAttribs.getInteger( XML_r, -1 ); sal_Int32 nRow = rAttribs.getInteger( XML_r, -1 );
if(nRow != -1)
aModel.mnRow = nRow;
else
aModel.mnRow = ++mnRow;
mnCol = -1;
aModel.mfHeight = rAttribs.getDouble( XML_ht, -1.0 ); aModel.mfHeight = rAttribs.getDouble( XML_ht, -1.0 );
aModel.mnXfId = rAttribs.getInteger( XML_s, -1 ); aModel.mnXfId = rAttribs.getInteger( XML_s, -1 );
aModel.mnLevel = rAttribs.getInteger( XML_outlineLevel, 0 ); aModel.mnLevel = rAttribs.getInteger( XML_outlineLevel, 0 );
...@@ -327,8 +335,21 @@ void SheetDataContext::importRow( const AttributeList& rAttribs ) ...@@ -327,8 +335,21 @@ void SheetDataContext::importRow( const AttributeList& rAttribs )
bool SheetDataContext::importCell( const AttributeList& rAttribs ) bool SheetDataContext::importCell( const AttributeList& rAttribs )
{ {
bool bValidAddr = mrAddressConv.convertToCellAddress( maCellData.maCellAddr, rAttribs.getString( XML_r, OUString() ), mnSheet, true ); OUString aCellAddrStr = rAttribs.getString( XML_r, OUString() );
if( bValidAddr ) bool bValid = true;
if(aCellAddrStr.isEmpty())
{
++mnCol;
maCellData.maCellAddr = CellAddress( mnSheet, mnCol, mnRow );
}
else
{
bValid = mrAddressConv.convertToCellAddress( maCellData.maCellAddr, aCellAddrStr, mnSheet, true );
mnCol = maCellData.maCellAddr.Column;
}
if( bValid )
{ {
maCellData.mnCellType = rAttribs.getToken( XML_t, XML_n ); maCellData.mnCellType = rAttribs.getToken( XML_t, XML_n );
maCellData.mnXfId = rAttribs.getInteger( XML_s, -1 ); maCellData.mnXfId = rAttribs.getInteger( XML_s, -1 );
...@@ -342,7 +363,7 @@ bool SheetDataContext::importCell( const AttributeList& rAttribs ) ...@@ -342,7 +363,7 @@ bool SheetDataContext::importCell( const AttributeList& rAttribs )
// update used area of the sheet // update used area of the sheet
extendUsedArea( maCellData.maCellAddr ); extendUsedArea( maCellData.maCellAddr );
} }
return bValidAddr; return bValid;
} }
void SheetDataContext::importFormula( const AttributeList& rAttribs ) void SheetDataContext::importFormula( const AttributeList& rAttribs )
......
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