tdf#48140 Replace uno CellRangeAddress and CellAddress with direct calls
Change-Id: I43c5c1274c9ed45c929a2d5a8596d54626b5e4f6 Reviewed-on: https://gerrit.libreoffice.org/30994 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
This commit is contained in:
committed by
Markus Mohrhard
parent
f68340b446
commit
f6e6a6139e
@@ -18,11 +18,6 @@
|
||||
*/
|
||||
|
||||
#include "XMLExportIterator.hxx"
|
||||
#include <com/sun/star/text/XSimpleText.hpp>
|
||||
#include <com/sun/star/sheet/XCellAddressable.hpp>
|
||||
#include <com/sun/star/sheet/CellFlags.hpp>
|
||||
#include <com/sun/star/sheet/XSheetAnnotationsSupplier.hpp>
|
||||
#include <com/sun/star/container/XEnumerationAccess.hpp>
|
||||
#include <xmloff/xmlnmspe.hxx>
|
||||
#include "dociter.hxx"
|
||||
#include "convuno.hxx"
|
||||
@@ -43,14 +38,14 @@ ScMyIteratorBase::~ScMyIteratorBase()
|
||||
{
|
||||
}
|
||||
|
||||
void ScMyIteratorBase::UpdateAddress( table::CellAddress& rCellAddress )
|
||||
void ScMyIteratorBase::UpdateAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
table::CellAddress aNewAddr( rCellAddress );
|
||||
ScAddress aNewAddr( rCellAddress );
|
||||
if( GetFirstAddress( aNewAddr ) )
|
||||
{
|
||||
if( (aNewAddr.Sheet == rCellAddress.Sheet) &&
|
||||
((aNewAddr.Row < rCellAddress.Row) ||
|
||||
((aNewAddr.Row == rCellAddress.Row) && (aNewAddr.Column < rCellAddress.Column))) )
|
||||
if( ( aNewAddr.Tab() == rCellAddress.Tab() ) &&
|
||||
( ( aNewAddr.Row() < rCellAddress.Row() ) ||
|
||||
( ( aNewAddr.Row() == rCellAddress.Row() ) && ( aNewAddr.Col() < rCellAddress.Col() ) ) ) )
|
||||
rCellAddress = aNewAddr;
|
||||
}
|
||||
}
|
||||
@@ -58,11 +53,11 @@ void ScMyIteratorBase::UpdateAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyShape::operator<(const ScMyShape& aShape) const
|
||||
{
|
||||
if( aAddress.Tab() != aShape.aAddress.Tab() )
|
||||
return (aAddress.Tab() < aShape.aAddress.Tab());
|
||||
return ( aAddress.Tab() < aShape.aAddress.Tab() );
|
||||
else if( aAddress.Row() != aShape.aAddress.Row() )
|
||||
return (aAddress.Row() < aShape.aAddress.Row());
|
||||
return ( aAddress.Row() < aShape.aAddress.Row( ));
|
||||
else
|
||||
return (aAddress.Col() < aShape.aAddress.Col());
|
||||
return ( aAddress.Col() < aShape.aAddress.Col() );
|
||||
}
|
||||
|
||||
ScMyShapesContainer::ScMyShapesContainer()
|
||||
@@ -79,13 +74,13 @@ void ScMyShapesContainer::AddNewShape( const ScMyShape& aShape )
|
||||
aShapeList.push_back(aShape);
|
||||
}
|
||||
|
||||
bool ScMyShapesContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyShapesContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aShapeList.empty() )
|
||||
{
|
||||
ScUnoConversion::FillApiAddress( rCellAddress, aShapeList.begin()->aAddress );
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
rCellAddress = aShapeList.begin()->aAddress;
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -107,7 +102,7 @@ void ScMyShapesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyShapesContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyShapeList::iterator aItr = aShapeList.begin();
|
||||
while( (aItr != aShapeList.end()) && (aItr->aAddress.Tab() == nSkip) )
|
||||
while( ( aItr != aShapeList.end() ) && ( aItr->aAddress.Tab() == nSkip ) )
|
||||
aItr = aShapeList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -119,11 +114,11 @@ void ScMyShapesContainer::Sort()
|
||||
bool ScMyNoteShape::operator<(const ScMyNoteShape& aNote) const
|
||||
{
|
||||
if( aPos.Tab() != aNote.aPos.Tab() )
|
||||
return (aPos.Tab() < aNote.aPos.Tab());
|
||||
return ( aPos.Tab() < aNote.aPos.Tab() );
|
||||
else if( aPos.Row() != aNote.aPos.Row() )
|
||||
return (aPos.Row() < aNote.aPos.Row());
|
||||
return ( aPos.Row() < aNote.aPos.Row() );
|
||||
else
|
||||
return (aPos.Col() < aNote.aPos.Col());
|
||||
return ( aPos.Col() < aNote.aPos.Col() );
|
||||
}
|
||||
|
||||
ScMyNoteShapesContainer::ScMyNoteShapesContainer()
|
||||
@@ -140,13 +135,13 @@ void ScMyNoteShapesContainer::AddNewNote( const ScMyNoteShape& aNote )
|
||||
aNoteShapeList.push_back(aNote);
|
||||
}
|
||||
|
||||
bool ScMyNoteShapesContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyNoteShapesContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int16 nTable = rCellAddress.Sheet;
|
||||
sal_Int16 nTable = rCellAddress.Tab();
|
||||
if( !aNoteShapeList.empty() )
|
||||
{
|
||||
ScUnoConversion::FillApiAddress( rCellAddress, aNoteShapeList.begin()->aPos );
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
rCellAddress = aNoteShapeList.begin()->aPos;
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -163,7 +158,7 @@ void ScMyNoteShapesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyNoteShapesContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyNoteShapeList::iterator aItr = aNoteShapeList.begin();
|
||||
while( (aItr != aNoteShapeList.end()) && (aItr->aPos.Tab() == nSkip) )
|
||||
while( (aItr != aNoteShapeList.end() ) && ( aItr->aPos.Tab() == nSkip ) )
|
||||
aItr = aNoteShapeList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -174,12 +169,12 @@ void ScMyNoteShapesContainer::Sort()
|
||||
|
||||
bool ScMyMergedRange::operator<(const ScMyMergedRange& aRange) const
|
||||
{
|
||||
if( aCellRange.Sheet != aRange.aCellRange.Sheet )
|
||||
return (aCellRange.Sheet < aRange.aCellRange.Sheet);
|
||||
else if( aCellRange.StartRow != aRange.aCellRange.StartRow )
|
||||
return (aCellRange.StartRow < aRange.aCellRange.StartRow);
|
||||
if( aCellRange.aStart.Tab() != aRange.aCellRange.aStart.Tab() )
|
||||
return ( aCellRange.aStart.Tab() < aRange.aCellRange.aStart.Tab() );
|
||||
else if( aCellRange.aStart.Row() != aRange.aCellRange.aStart.Row() )
|
||||
return ( aCellRange.aStart.Row() < aRange.aCellRange.aStart.Row() );
|
||||
else
|
||||
return (aCellRange.StartColumn < aRange.aCellRange.StartColumn);
|
||||
return ( aCellRange.aStart.Col() < aRange.aCellRange.aStart.Col() );
|
||||
}
|
||||
|
||||
ScMyMergedRangesContainer::ScMyMergedRangesContainer()
|
||||
@@ -191,15 +186,17 @@ ScMyMergedRangesContainer::~ScMyMergedRangesContainer()
|
||||
{
|
||||
}
|
||||
|
||||
void ScMyMergedRangesContainer::AddRange(const table::CellRangeAddress& rMergedRange)
|
||||
void ScMyMergedRangesContainer::AddRange(const ScRange& rMergedRange)
|
||||
{
|
||||
sal_Int32 nStartRow(rMergedRange.StartRow);
|
||||
sal_Int32 nEndRow(rMergedRange.EndRow);
|
||||
sal_Int32 nStartRow( rMergedRange.aStart.Row() );
|
||||
sal_Int32 nEndRow( rMergedRange.aEnd.Row() );
|
||||
|
||||
ScMyMergedRange aRange;
|
||||
aRange.bIsFirst = true;
|
||||
|
||||
aRange.aCellRange = rMergedRange;
|
||||
aRange.aCellRange.EndRow = nStartRow;
|
||||
|
||||
aRange.aCellRange.aEnd.SetRow( nStartRow );
|
||||
aRange.nRows = nEndRow - nStartRow + 1;
|
||||
aRangeList.push_back( aRange );
|
||||
|
||||
@@ -207,18 +204,19 @@ void ScMyMergedRangesContainer::AddRange(const table::CellRangeAddress& rMergedR
|
||||
aRange.nRows = 0;
|
||||
for( sal_Int32 nRow = nStartRow + 1; nRow <= nEndRow; ++nRow )
|
||||
{
|
||||
aRange.aCellRange.StartRow = aRange.aCellRange.EndRow = nRow;
|
||||
aRange.aCellRange.aStart.SetRow( nRow );
|
||||
aRange.aCellRange.aEnd.SetRow( nRow );
|
||||
aRangeList.push_back(aRange);
|
||||
}
|
||||
}
|
||||
|
||||
bool ScMyMergedRangesContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyMergedRangesContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aRangeList.empty() )
|
||||
{
|
||||
ScUnoConversion::FillApiStartAddress( rCellAddress, aRangeList.begin()->aCellRange );
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
rCellAddress = aRangeList.begin()->aCellRange.aStart;
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -229,18 +227,16 @@ void ScMyMergedRangesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
ScMyMergedRangeList::iterator aItr(aRangeList.begin());
|
||||
if( aItr != aRangeList.end() )
|
||||
{
|
||||
table::CellAddress aFirstAddress;
|
||||
ScUnoConversion::FillApiStartAddress( aFirstAddress, aItr->aCellRange );
|
||||
if( aFirstAddress == rMyCell.aCellAddress )
|
||||
if( aItr->aCellRange.aStart == rMyCell.aCellAddress )
|
||||
{
|
||||
rMyCell.aMergeRange = aItr->aCellRange;
|
||||
if (aItr->bIsFirst)
|
||||
rMyCell.aMergeRange.EndRow = rMyCell.aMergeRange.StartRow + aItr->nRows - 1;
|
||||
rMyCell.aMergeRange.aEnd.SetRow( rMyCell.aMergeRange.aStart.Row() + aItr->nRows - 1 );
|
||||
rMyCell.bIsMergedBase = aItr->bIsFirst;
|
||||
rMyCell.bIsCovered = !aItr->bIsFirst;
|
||||
if( aItr->aCellRange.StartColumn < aItr->aCellRange.EndColumn )
|
||||
if( aItr->aCellRange.aStart.Col() < aItr->aCellRange.aEnd.Col() )
|
||||
{
|
||||
++(aItr->aCellRange.StartColumn);
|
||||
aItr->aCellRange.aStart.SetCol( aItr->aCellRange.aStart.Col() + 1 );
|
||||
aItr->bIsFirst = false;
|
||||
}
|
||||
else
|
||||
@@ -252,7 +248,7 @@ void ScMyMergedRangesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyMergedRangesContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyMergedRangeList::iterator aItr = aRangeList.begin();
|
||||
while( (aItr != aRangeList.end()) && (aItr->aCellRange.Sheet == nSkip) )
|
||||
while( ( aItr != aRangeList.end() ) && ( aItr->aCellRange.aStart.Tab() == nSkip ) )
|
||||
aItr = aRangeList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -272,12 +268,12 @@ bool ScMyAreaLink::Compare( const ScMyAreaLink& rAreaLink ) const
|
||||
|
||||
bool ScMyAreaLink::operator<(const ScMyAreaLink& rAreaLink ) const
|
||||
{
|
||||
if( aDestRange.Sheet != rAreaLink.aDestRange.Sheet )
|
||||
return (aDestRange.Sheet < rAreaLink.aDestRange.Sheet);
|
||||
else if( aDestRange.StartRow != rAreaLink.aDestRange.StartRow )
|
||||
return (aDestRange.StartRow < rAreaLink.aDestRange.StartRow);
|
||||
if( aDestRange.aStart.Tab() != rAreaLink.aDestRange.aStart.Tab() )
|
||||
return ( aDestRange.aStart.Tab() < rAreaLink.aDestRange.aStart.Tab() );
|
||||
else if( aDestRange.aStart.Row() != rAreaLink.aDestRange.aStart.Row() )
|
||||
return ( aDestRange.aStart.Row() < rAreaLink.aDestRange.aStart.Row() );
|
||||
else
|
||||
return (aDestRange.StartColumn < rAreaLink.aDestRange.StartColumn);
|
||||
return ( aDestRange.aStart.Col() < rAreaLink.aDestRange.aStart.Col() );
|
||||
}
|
||||
|
||||
ScMyAreaLinksContainer::ScMyAreaLinksContainer() :
|
||||
@@ -289,13 +285,13 @@ ScMyAreaLinksContainer::~ScMyAreaLinksContainer()
|
||||
{
|
||||
}
|
||||
|
||||
bool ScMyAreaLinksContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyAreaLinksContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aAreaLinkList.empty() )
|
||||
{
|
||||
ScUnoConversion::FillApiStartAddress( rCellAddress, aAreaLinkList.begin()->aDestRange );
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
rCellAddress = aAreaLinkList.begin()->aDestRange.aStart;
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -306,9 +302,7 @@ void ScMyAreaLinksContainer::SetCellData( ScMyCell& rMyCell )
|
||||
ScMyAreaLinkList::iterator aItr(aAreaLinkList.begin());
|
||||
if( aItr != aAreaLinkList.end() )
|
||||
{
|
||||
table::CellAddress aAddress;
|
||||
ScUnoConversion::FillApiStartAddress( aAddress, aItr->aDestRange );
|
||||
if( aAddress == rMyCell.aCellAddress )
|
||||
if( aItr->aDestRange.aStart == rMyCell.aCellAddress )
|
||||
{
|
||||
rMyCell.bHasAreaLink = true;
|
||||
rMyCell.aAreaLink = *aItr;
|
||||
@@ -316,8 +310,7 @@ void ScMyAreaLinksContainer::SetCellData( ScMyCell& rMyCell )
|
||||
bool bFound = true;
|
||||
while (aItr != aAreaLinkList.end() && bFound)
|
||||
{
|
||||
ScUnoConversion::FillApiStartAddress( aAddress, aItr->aDestRange );
|
||||
if (aAddress == rMyCell.aCellAddress)
|
||||
if ( aItr->aDestRange.aStart == rMyCell.aCellAddress )
|
||||
{
|
||||
OSL_FAIL("more than one linked range on one cell");
|
||||
aItr = aAreaLinkList.erase( aItr );
|
||||
@@ -332,7 +325,7 @@ void ScMyAreaLinksContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyAreaLinksContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyAreaLinkList::iterator aItr = aAreaLinkList.begin();
|
||||
while( (aItr != aAreaLinkList.end()) && (aItr->aDestRange.Sheet == nSkip) )
|
||||
while( ( aItr != aAreaLinkList.end() ) && ( aItr->aDestRange.aStart.Tab() == nSkip ) )
|
||||
aItr = aAreaLinkList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -341,19 +334,19 @@ void ScMyAreaLinksContainer::Sort()
|
||||
aAreaLinkList.sort();
|
||||
}
|
||||
|
||||
ScMyCellRangeAddress::ScMyCellRangeAddress(const table::CellRangeAddress& rRange)
|
||||
: table::CellRangeAddress(rRange)
|
||||
ScMyCellRangeAddress::ScMyCellRangeAddress(const ScRange& rRange)
|
||||
: ScRange(rRange)
|
||||
{
|
||||
}
|
||||
|
||||
bool ScMyCellRangeAddress::operator<(const ScMyCellRangeAddress& rRange ) const
|
||||
{
|
||||
if( Sheet != rRange.Sheet )
|
||||
return (Sheet < rRange.Sheet);
|
||||
else if( StartRow != rRange.StartRow )
|
||||
return (StartRow < rRange.StartRow);
|
||||
if( aStart.Tab() != rRange.aStart.Tab() )
|
||||
return ( aStart.Tab() < rRange.aStart.Tab() );
|
||||
else if( aStart.Row() != rRange.aStart.Row() )
|
||||
return ( aStart.Row() < rRange.aStart.Row() );
|
||||
else
|
||||
return (StartColumn < rRange.StartColumn);
|
||||
return ( aStart.Col() < rRange.aStart.Col() );
|
||||
}
|
||||
|
||||
ScMyEmptyDatabaseRangesContainer::ScMyEmptyDatabaseRangesContainer()
|
||||
@@ -369,21 +362,24 @@ void ScMyEmptyDatabaseRangesContainer::AddNewEmptyDatabaseRange(const table::Cel
|
||||
{
|
||||
sal_Int32 nStartRow(aCellRange.StartRow);
|
||||
sal_Int32 nEndRow(aCellRange.EndRow);
|
||||
ScMyCellRangeAddress aRange( aCellRange );
|
||||
ScRange aMyRange( aCellRange.StartColumn, aCellRange.StartRow, aCellRange.Sheet,
|
||||
aCellRange.EndColumn, aCellRange.EndRow, aCellRange.Sheet );
|
||||
ScMyCellRangeAddress aRange( aMyRange );
|
||||
for( sal_Int32 nRow = nStartRow; nRow <= nEndRow; ++nRow )
|
||||
{
|
||||
aRange.StartRow = aRange.EndRow = nRow;
|
||||
aRange.aStart.SetRow( nRow );
|
||||
aRange.aEnd.SetRow( nRow );
|
||||
aDatabaseList.push_back( aRange );
|
||||
}
|
||||
}
|
||||
|
||||
bool ScMyEmptyDatabaseRangesContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyEmptyDatabaseRangesContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aDatabaseList.empty() )
|
||||
{
|
||||
ScUnoConversion::FillApiStartAddress( rCellAddress, *(aDatabaseList.begin()) );
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
rCellAddress = aDatabaseList.begin()->aStart;
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -394,13 +390,11 @@ void ScMyEmptyDatabaseRangesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
ScMyEmptyDatabaseRangeList::iterator aItr(aDatabaseList.begin());
|
||||
if( aItr != aDatabaseList.end() )
|
||||
{
|
||||
table::CellAddress aFirstAddress;
|
||||
ScUnoConversion::FillApiStartAddress( aFirstAddress, *aItr );
|
||||
if( aFirstAddress == rMyCell.aCellAddress )
|
||||
if( aItr->aStart == rMyCell.aCellAddress )
|
||||
{
|
||||
rMyCell.bHasEmptyDatabase = true;
|
||||
if( aItr->StartColumn < aItr->EndColumn )
|
||||
++(aItr->StartColumn);
|
||||
if( aItr->aStart.Col() < aItr->aEnd.Col() )
|
||||
aItr->aStart.SetCol( aItr->aStart.Col() + 1 );
|
||||
else
|
||||
aDatabaseList.erase(aItr);
|
||||
}
|
||||
@@ -410,7 +404,7 @@ void ScMyEmptyDatabaseRangesContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyEmptyDatabaseRangesContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyEmptyDatabaseRangeList::iterator aItr = aDatabaseList.begin();
|
||||
while( (aItr != aDatabaseList.end()) && (aItr->Sheet == nSkip) )
|
||||
while( ( aItr != aDatabaseList.end() ) && ( aItr->aStart.Tab() == nSkip ) )
|
||||
aItr = aDatabaseList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -421,12 +415,12 @@ void ScMyEmptyDatabaseRangesContainer::Sort()
|
||||
|
||||
bool ScMyDetectiveObj::operator<( const ScMyDetectiveObj& rDetObj) const
|
||||
{
|
||||
if( aPosition.Sheet != rDetObj.aPosition.Sheet )
|
||||
return (aPosition.Sheet < rDetObj.aPosition.Sheet);
|
||||
else if( aPosition.Row != rDetObj.aPosition.Row )
|
||||
return (aPosition.Row < rDetObj.aPosition.Row);
|
||||
if( aPosition.Tab() != rDetObj.aPosition.Tab() )
|
||||
return ( aPosition.Tab() < rDetObj.aPosition.Tab() );
|
||||
else if( aPosition.Row() != rDetObj.aPosition.Row() )
|
||||
return ( aPosition.Row() < rDetObj.aPosition.Row() );
|
||||
else
|
||||
return (aPosition.Column < rDetObj.aPosition.Column);
|
||||
return ( aPosition.Col() < rDetObj.aPosition.Col() );
|
||||
}
|
||||
|
||||
ScMyDetectiveObjContainer::ScMyDetectiveObjContainer() :
|
||||
@@ -450,32 +444,33 @@ void ScMyDetectiveObjContainer::AddObject( ScDetectiveObjType eObjType, const SC
|
||||
ScMyDetectiveObj aDetObj;
|
||||
aDetObj.eObjType = eObjType;
|
||||
if( eObjType == SC_DETOBJ_TOOTHERTAB )
|
||||
ScUnoConversion::FillApiAddress( aDetObj.aPosition, rSourceRange.aStart );
|
||||
aDetObj.aPosition = rSourceRange.aStart;
|
||||
else
|
||||
ScUnoConversion::FillApiAddress( aDetObj.aPosition, rPosition );
|
||||
ScUnoConversion::FillApiRange( aDetObj.aSourceRange, rSourceRange );
|
||||
aDetObj.aPosition = rPosition;
|
||||
aDetObj.aSourceRange = rSourceRange;
|
||||
|
||||
// #111064#; take the sheet where the object is found and not the sheet given in the ranges, because they are not always true
|
||||
if (eObjType != SC_DETOBJ_FROMOTHERTAB)
|
||||
{
|
||||
// if the ObjType == SC_DETOBJ_FROMOTHERTAB then the SourceRange is not used and so it has not to be tested and changed
|
||||
OSL_ENSURE(aDetObj.aPosition.Sheet == aDetObj.aSourceRange.Sheet, "It seems to be possible to have different sheets");
|
||||
aDetObj.aSourceRange.Sheet = nSheet;
|
||||
OSL_ENSURE(aDetObj.aPosition.Tab() == aDetObj.aSourceRange.aStart.Tab(), "It seems to be possible to have different sheets");
|
||||
aDetObj.aSourceRange.aStart.SetTab( nSheet );
|
||||
aDetObj.aSourceRange.aEnd.SetTab( nSheet );
|
||||
}
|
||||
aDetObj.aPosition.Sheet = nSheet;
|
||||
aDetObj.aPosition.SetTab( nSheet );
|
||||
|
||||
aDetObj.bHasError = bHasError;
|
||||
aDetectiveObjList.push_back( aDetObj );
|
||||
}
|
||||
}
|
||||
|
||||
bool ScMyDetectiveObjContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyDetectiveObjContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aDetectiveObjList.empty() )
|
||||
{
|
||||
rCellAddress = aDetectiveObjList.begin()->aPosition;
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -496,7 +491,7 @@ void ScMyDetectiveObjContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyDetectiveObjContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyDetectiveObjList::iterator aItr = aDetectiveObjList.begin();
|
||||
while( (aItr != aDetectiveObjList.end()) && (aItr->aPosition.Sheet == nSkip) )
|
||||
while( ( aItr != aDetectiveObjList.end() ) && ( aItr->aPosition.Tab() == nSkip ) )
|
||||
aItr = aDetectiveObjList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -507,12 +502,12 @@ void ScMyDetectiveObjContainer::Sort()
|
||||
|
||||
bool ScMyDetectiveOp::operator<( const ScMyDetectiveOp& rDetOp) const
|
||||
{
|
||||
if( aPosition.Sheet != rDetOp.aPosition.Sheet )
|
||||
return (aPosition.Sheet < rDetOp.aPosition.Sheet);
|
||||
else if( aPosition.Row != rDetOp.aPosition.Row )
|
||||
return (aPosition.Row < rDetOp.aPosition.Row);
|
||||
if( aPosition.Tab() != rDetOp.aPosition.Tab() )
|
||||
return ( aPosition.Tab() < rDetOp.aPosition.Tab() );
|
||||
else if( aPosition.Row() != rDetOp.aPosition.Row() )
|
||||
return ( aPosition.Row() < rDetOp.aPosition.Row() );
|
||||
else
|
||||
return (aPosition.Column < rDetOp.aPosition.Column);
|
||||
return ( aPosition.Col() < rDetOp.aPosition.Col() );
|
||||
}
|
||||
|
||||
ScMyDetectiveOpContainer::ScMyDetectiveOpContainer() :
|
||||
@@ -528,18 +523,18 @@ void ScMyDetectiveOpContainer::AddOperation( ScDetOpType eOpType, const ScAddres
|
||||
{
|
||||
ScMyDetectiveOp aDetOp;
|
||||
aDetOp.eOpType = eOpType;
|
||||
ScUnoConversion::FillApiAddress( aDetOp.aPosition, rPosition );
|
||||
aDetOp.aPosition = rPosition;
|
||||
aDetOp.nIndex = nIndex;
|
||||
aDetectiveOpList.push_back( aDetOp );
|
||||
}
|
||||
|
||||
bool ScMyDetectiveOpContainer::GetFirstAddress( table::CellAddress& rCellAddress )
|
||||
bool ScMyDetectiveOpContainer::GetFirstAddress( ScAddress& rCellAddress )
|
||||
{
|
||||
sal_Int32 nTable(rCellAddress.Sheet);
|
||||
sal_Int32 nTable( rCellAddress.Tab() );
|
||||
if( !aDetectiveOpList.empty() )
|
||||
{
|
||||
rCellAddress = aDetectiveOpList.begin()->aPosition;
|
||||
return (nTable == rCellAddress.Sheet);
|
||||
return ( nTable == rCellAddress.Tab() );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -560,7 +555,7 @@ void ScMyDetectiveOpContainer::SetCellData( ScMyCell& rMyCell )
|
||||
void ScMyDetectiveOpContainer::SkipTable(SCTAB nSkip)
|
||||
{
|
||||
ScMyDetectiveOpList::iterator aItr = aDetectiveOpList.begin();
|
||||
while( (aItr != aDetectiveOpList.end()) && (aItr->aPosition.Sheet == nSkip) )
|
||||
while( (aItr != aDetectiveOpList.end()) && (aItr->aPosition.Tab() == nSkip) )
|
||||
aItr = aDetectiveOpList.erase(aItr);
|
||||
}
|
||||
|
||||
@@ -628,22 +623,22 @@ void ScMyNotEmptyCellsIterator::Clear()
|
||||
nCurrentTable = SCTAB_MAX;
|
||||
}
|
||||
|
||||
void ScMyNotEmptyCellsIterator::UpdateAddress( table::CellAddress& rAddress )
|
||||
void ScMyNotEmptyCellsIterator::UpdateAddress( ScAddress& rAddress )
|
||||
{
|
||||
if (mpCellItr->GetPos(nCellCol, nCellRow))
|
||||
{
|
||||
rAddress.Column = nCellCol;
|
||||
rAddress.Row = nCellRow;
|
||||
rAddress.SetCol( nCellCol );
|
||||
rAddress.SetRow( nCellRow );
|
||||
}
|
||||
}
|
||||
|
||||
void ScMyNotEmptyCellsIterator::SetCellData( ScMyCell& rMyCell, const table::CellAddress& rAddress )
|
||||
void ScMyNotEmptyCellsIterator::SetCellData( ScMyCell& rMyCell, const ScAddress& rAddress )
|
||||
{
|
||||
rMyCell.maBaseCell.clear();
|
||||
rMyCell.aCellAddress = rAddress;
|
||||
ScUnoConversion::FillScAddress(rMyCell.maCellAddress, rMyCell.aCellAddress);
|
||||
rMyCell.maCellAddress = rMyCell.aCellAddress;
|
||||
|
||||
if( (nCellCol == rAddress.Column) && (nCellRow == rAddress.Row) )
|
||||
if( ( nCellCol == rAddress.Col() ) && ( nCellRow == rAddress.Row() ) )
|
||||
{
|
||||
const ScRefCellValue* pCell = mpCellItr->GetNext(nCellCol, nCellRow);
|
||||
if (pCell)
|
||||
@@ -695,9 +690,9 @@ void ScMyNotEmptyCellsIterator::HasAnnotation(ScMyCell& aCell)
|
||||
void ScMyNotEmptyCellsIterator::SetCurrentTable(const SCTAB nTable,
|
||||
uno::Reference<sheet::XSpreadsheet>& rxTable)
|
||||
{
|
||||
aLastAddress.Row = 0;
|
||||
aLastAddress.Column = 0;
|
||||
aLastAddress.Sheet = nTable;
|
||||
aLastAddress.SetRow( 0 );
|
||||
aLastAddress.SetCol( 0 );
|
||||
aLastAddress.SetTab( nTable );
|
||||
if (nCurrentTable != nTable)
|
||||
{
|
||||
nCurrentTable = nTable;
|
||||
@@ -736,7 +731,7 @@ void ScMyNotEmptyCellsIterator::SkipTable(SCTAB nSkip)
|
||||
|
||||
bool ScMyNotEmptyCellsIterator::GetNext(ScMyCell& aCell, ScFormatRangeStyles* pCellStyles)
|
||||
{
|
||||
table::CellAddress aAddress( nCurrentTable, MAXCOL + 1, MAXROW + 1 );
|
||||
ScAddress aAddress( MAXCOL + 1, MAXROW + 1, nCurrentTable );
|
||||
|
||||
UpdateAddress( aAddress );
|
||||
|
||||
@@ -755,7 +750,7 @@ bool ScMyNotEmptyCellsIterator::GetNext(ScMyCell& aCell, ScFormatRangeStyles* pC
|
||||
if( pDetectiveOp )
|
||||
pDetectiveOp->UpdateAddress( aAddress );
|
||||
|
||||
bool bFoundCell((aAddress.Column <= MAXCOL) && (aAddress.Row <= MAXROW));
|
||||
bool bFoundCell( ( aAddress.Col() <= MAXCOL ) && ( aAddress.Row() <= MAXROW ) );
|
||||
if( bFoundCell )
|
||||
{
|
||||
SetCellData( aCell, aAddress );
|
||||
@@ -777,7 +772,7 @@ bool ScMyNotEmptyCellsIterator::GetNext(ScMyCell& aCell, ScFormatRangeStyles* pC
|
||||
HasAnnotation( aCell );
|
||||
bool bIsAutoStyle;
|
||||
// Ranges before the previous cell are not needed by ExportFormatRanges anymore and can be removed
|
||||
sal_Int32 nRemoveBeforeRow = aLastAddress.Row;
|
||||
sal_Int32 nRemoveBeforeRow = aLastAddress.Row();
|
||||
aCell.nStyleIndex = pCellStyles->GetStyleNameIndex(aCell.maCellAddress.Tab(),
|
||||
aCell.maCellAddress.Col(), aCell.maCellAddress.Row(),
|
||||
bIsAutoStyle, aCell.nValidationIndex, aCell.nNumberFormat, nRemoveBeforeRow);
|
||||
|
@@ -24,7 +24,6 @@
|
||||
#include <list>
|
||||
#include <set>
|
||||
#include <com/sun/star/sheet/XSpreadsheet.hpp>
|
||||
#include <com/sun/star/table/CellAddress.hpp>
|
||||
#include <com/sun/star/table/CellRangeAddress.hpp>
|
||||
#include <com/sun/star/table/XCell.hpp>
|
||||
#include <com/sun/star/text/XText.hpp>
|
||||
@@ -46,7 +45,7 @@ class ScFormatRangeStyles;
|
||||
class ScMyIteratorBase
|
||||
{
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) = 0;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) = 0;
|
||||
|
||||
public:
|
||||
ScMyIteratorBase();
|
||||
@@ -55,7 +54,7 @@ public:
|
||||
virtual void SetCellData( ScMyCell& rMyCell ) = 0;
|
||||
virtual void Sort() = 0;
|
||||
|
||||
void UpdateAddress( css::table::CellAddress& rCellAddress );
|
||||
void UpdateAddress( ScAddress& rCellAddress );
|
||||
};
|
||||
|
||||
struct ScMyShape
|
||||
@@ -76,7 +75,7 @@ class ScMyShapesContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyShapeList aShapeList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyShapesContainer();
|
||||
virtual ~ScMyShapesContainer() override;
|
||||
@@ -105,7 +104,7 @@ class ScMyNoteShapesContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyNoteShapeList aNoteShapeList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyNoteShapesContainer();
|
||||
virtual ~ScMyNoteShapesContainer() override;
|
||||
@@ -120,7 +119,7 @@ public:
|
||||
|
||||
struct ScMyMergedRange
|
||||
{
|
||||
css::table::CellRangeAddress aCellRange;
|
||||
ScRange aCellRange;
|
||||
sal_Int32 nRows;
|
||||
bool bIsFirst;
|
||||
bool operator<(const ScMyMergedRange& aRange) const;
|
||||
@@ -133,11 +132,11 @@ class ScMyMergedRangesContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyMergedRangeList aRangeList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyMergedRangesContainer();
|
||||
virtual ~ScMyMergedRangesContainer() override;
|
||||
void AddRange(const css::table::CellRangeAddress& rMergedRange);
|
||||
void AddRange(const ScRange& rMergedRange);
|
||||
|
||||
using ScMyIteratorBase::UpdateAddress;
|
||||
virtual void SetCellData( ScMyCell& rMyCell ) override;
|
||||
@@ -151,13 +150,13 @@ struct ScMyAreaLink
|
||||
OUString sFilterOptions;
|
||||
OUString sURL;
|
||||
OUString sSourceStr;
|
||||
css::table::CellRangeAddress aDestRange;
|
||||
ScRange aDestRange;
|
||||
sal_Int32 nRefresh;
|
||||
|
||||
inline ScMyAreaLink() : nRefresh( 0 ) {}
|
||||
|
||||
inline sal_Int32 GetColCount() const { return aDestRange.EndColumn - aDestRange.StartColumn + 1; }
|
||||
inline sal_Int32 GetRowCount() const { return aDestRange.EndRow - aDestRange.StartRow + 1; }
|
||||
inline sal_Int32 GetColCount() const { return aDestRange.aEnd.Col() - aDestRange.aStart.Col() + 1; }
|
||||
inline sal_Int32 GetRowCount() const { return aDestRange.aEnd.Row() - aDestRange.aStart.Col() + 1; }
|
||||
|
||||
bool Compare( const ScMyAreaLink& rAreaLink ) const;
|
||||
bool operator<(const ScMyAreaLink& rAreaLink ) const;
|
||||
@@ -170,7 +169,7 @@ class ScMyAreaLinksContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyAreaLinkList aAreaLinkList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyAreaLinksContainer();
|
||||
virtual ~ScMyAreaLinksContainer() override;
|
||||
@@ -184,9 +183,9 @@ public:
|
||||
void SkipTable(SCTAB nSkip);
|
||||
};
|
||||
|
||||
struct ScMyCellRangeAddress : css::table::CellRangeAddress
|
||||
struct ScMyCellRangeAddress : ScRange
|
||||
{
|
||||
explicit ScMyCellRangeAddress(const css::table::CellRangeAddress& rRange);
|
||||
explicit ScMyCellRangeAddress(const ScRange& rRange);
|
||||
bool operator<(const ScMyCellRangeAddress& rCellRangeAddress ) const;
|
||||
};
|
||||
|
||||
@@ -197,7 +196,7 @@ class ScMyEmptyDatabaseRangesContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyEmptyDatabaseRangeList aDatabaseList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyEmptyDatabaseRangesContainer();
|
||||
virtual ~ScMyEmptyDatabaseRangesContainer() override;
|
||||
@@ -211,8 +210,8 @@ public:
|
||||
|
||||
struct ScMyDetectiveObj
|
||||
{
|
||||
css::table::CellAddress aPosition;
|
||||
css::table::CellRangeAddress aSourceRange;
|
||||
ScAddress aPosition;
|
||||
ScRange aSourceRange;
|
||||
ScDetectiveObjType eObjType;
|
||||
bool bHasError;
|
||||
bool operator<(const ScMyDetectiveObj& rDetObj) const;
|
||||
@@ -226,7 +225,7 @@ class ScMyDetectiveObjContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyDetectiveObjList aDetectiveObjList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyDetectiveObjContainer();
|
||||
virtual ~ScMyDetectiveObjContainer() override;
|
||||
@@ -246,7 +245,7 @@ public:
|
||||
|
||||
struct ScMyDetectiveOp
|
||||
{
|
||||
css::table::CellAddress aPosition;
|
||||
ScAddress aPosition;
|
||||
ScDetOpType eOpType;
|
||||
sal_Int32 nIndex;
|
||||
bool operator<(const ScMyDetectiveOp& rDetOp) const;
|
||||
@@ -260,7 +259,7 @@ class ScMyDetectiveOpContainer : public ScMyIteratorBase
|
||||
private:
|
||||
ScMyDetectiveOpList aDetectiveOpList;
|
||||
protected:
|
||||
virtual bool GetFirstAddress( css::table::CellAddress& rCellAddress ) override;
|
||||
virtual bool GetFirstAddress( ScAddress& rCellAddress ) override;
|
||||
public:
|
||||
ScMyDetectiveOpContainer();
|
||||
virtual ~ScMyDetectiveOpContainer() override;
|
||||
@@ -278,9 +277,9 @@ struct ScMyCell
|
||||
{
|
||||
ScAddress maCellAddress; /// Use this instead of the UNO one.
|
||||
|
||||
css::table::CellAddress aCellAddress;
|
||||
css::table::CellRangeAddress aMergeRange;
|
||||
css::table::CellRangeAddress aMatrixRange;
|
||||
ScAddress aCellAddress;
|
||||
ScRange aMergeRange;
|
||||
ScRange aMatrixRange;
|
||||
|
||||
ScMyAreaLink aAreaLink;
|
||||
ScMyShapeList aShapeList;
|
||||
@@ -321,7 +320,7 @@ class ScMyNotEmptyCellsIterator
|
||||
|
||||
css::uno::Reference<css::sheet::XSpreadsheet> xTable;
|
||||
css::uno::Reference<css::table::XCellRange> xCellRange;
|
||||
css::table::CellAddress aLastAddress;
|
||||
ScAddress aLastAddress;
|
||||
|
||||
ScMyShapesContainer* pShapes;
|
||||
ScMyNoteShapesContainer* pNoteShapes;
|
||||
@@ -338,8 +337,8 @@ class ScMyNotEmptyCellsIterator
|
||||
SCROW nCellRow;
|
||||
SCTAB nCurrentTable;
|
||||
|
||||
void UpdateAddress( css::table::CellAddress& rAddress );
|
||||
void SetCellData( ScMyCell& rMyCell, const css::table::CellAddress& rAddress );
|
||||
void UpdateAddress( ScAddress& rAddress );
|
||||
void SetCellData( ScMyCell& rMyCell, const ScAddress& rAddress );
|
||||
|
||||
void HasAnnotation( ScMyCell& aCell );
|
||||
public:
|
||||
|
@@ -711,7 +711,7 @@ void ScXMLExport::GetAreaLinks( ScMyAreaLinksContainer& rAreaLinks )
|
||||
if (pLink)
|
||||
{
|
||||
ScMyAreaLink aAreaLink;
|
||||
ScUnoConversion::FillApiRange( aAreaLink.aDestRange, pLink->GetDestArea() );
|
||||
aAreaLink.aDestRange = pLink->GetDestArea();
|
||||
aAreaLink.sSourceStr = pLink->GetSource();
|
||||
aAreaLink.sFilter = pLink->GetFilter();
|
||||
aAreaLink.sFilterOptions = pLink->GetOptions();
|
||||
@@ -2763,14 +2763,17 @@ bool ScXMLExport::GetMerged (const table::CellRangeAddress* pCellAddress,
|
||||
uno::Reference<sheet::XCellRangeAddressable> xCellAddress (xCursor, uno::UNO_QUERY);
|
||||
xCursor->collapseToMergedArea();
|
||||
table::CellRangeAddress aCellAddress2(xCellAddress->getRangeAddress());
|
||||
if ((aCellAddress2.EndRow > nRow ||
|
||||
aCellAddress2.EndColumn > nCol) &&
|
||||
aCellAddress2.StartRow == nRow &&
|
||||
aCellAddress2.StartColumn == nCol)
|
||||
ScRange aScRange = ScRange( aCellAddress2.StartColumn, aCellAddress2.StartRow, aCellAddress2.Sheet,
|
||||
aCellAddress2.EndColumn, aCellAddress2.EndRow, aCellAddress2.Sheet );
|
||||
|
||||
if ((aScRange.aEnd.Row() > nRow ||
|
||||
aScRange.aEnd.Col() > nCol) &&
|
||||
aScRange.aStart.Row() == nRow &&
|
||||
aScRange.aStart.Col() == nCol)
|
||||
{
|
||||
pMergedRangesContainer->AddRange(aCellAddress2);
|
||||
pSharedData->SetLastColumn(aCellAddress2.Sheet, aCellAddress2.EndColumn);
|
||||
pSharedData->SetLastRow(aCellAddress2.Sheet, aCellAddress2.EndRow);
|
||||
pMergedRangesContainer->AddRange(aScRange);
|
||||
pSharedData->SetLastColumn(aScRange.aEnd.Tab(), aScRange.aEnd.Col());
|
||||
pSharedData->SetLastRow(aScRange.aEnd.Tab(), aScRange.aEnd.Row());
|
||||
}
|
||||
else
|
||||
bReady = true;
|
||||
@@ -2789,7 +2792,7 @@ bool ScXMLExport::GetMerged (const table::CellRangeAddress* pCellAddress,
|
||||
}
|
||||
|
||||
bool ScXMLExport::IsMatrix (const ScAddress& aCell,
|
||||
table::CellRangeAddress& aCellAddress, bool& bIsFirst) const
|
||||
ScRange& aCellAddress, bool& bIsFirst) const
|
||||
{
|
||||
bIsFirst = false;
|
||||
|
||||
@@ -2797,15 +2800,15 @@ bool ScXMLExport::IsMatrix (const ScAddress& aCell,
|
||||
|
||||
if (pDoc && pDoc->GetMatrixFormulaRange(aCell, aMatrixRange))
|
||||
{
|
||||
ScUnoConversion::FillApiRange( aCellAddress, aMatrixRange );
|
||||
if ((aCellAddress.StartColumn == aCell.Col() && aCellAddress.StartRow == aCell.Row()) &&
|
||||
(aCellAddress.EndColumn > aCell.Col() || aCellAddress.EndRow > aCell.Row()))
|
||||
aCellAddress = aMatrixRange;
|
||||
if ((aCellAddress.aStart.Col() == aCell.Col() && aCellAddress.aStart.Row() == aCell.Row()) &&
|
||||
(aCellAddress.aEnd.Col() > aCell.Col() || aCellAddress.aEnd.Row() > aCell.Row()))
|
||||
{
|
||||
bIsFirst = true;
|
||||
return true;
|
||||
}
|
||||
else if (aCellAddress.StartColumn != aCell.Col() || aCellAddress.StartRow != aCell.Row() ||
|
||||
aCellAddress.EndColumn != aCell.Col() || aCellAddress.EndRow != aCell.Row())
|
||||
else if (aCellAddress.aStart.Col() != aCell.Col() || aCellAddress.aStart.Row() != aCell.Row() ||
|
||||
aCellAddress.aEnd.Col() != aCell.Col() || aCellAddress.aEnd.Row()!= aCell.Row())
|
||||
return true;
|
||||
else
|
||||
{
|
||||
@@ -3148,8 +3151,8 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
|
||||
bool bIsFirstMatrixCell(aCell.bIsMatrixBase);
|
||||
if (bIsFirstMatrixCell)
|
||||
{
|
||||
sal_Int32 nColumns(aCell.aMatrixRange.EndColumn - aCell.aMatrixRange.StartColumn + 1);
|
||||
sal_Int32 nRows(aCell.aMatrixRange.EndRow - aCell.aMatrixRange.StartRow + 1);
|
||||
sal_Int32 nColumns(aCell.aMatrixRange.aEnd.Col() - aCell.aMatrixRange.aStart.Col() + 1);
|
||||
sal_Int32 nRows(aCell.aMatrixRange.aEnd.Row() - aCell.aMatrixRange.aStart.Row() + 1);
|
||||
OUStringBuffer sColumns;
|
||||
OUStringBuffer sRows;
|
||||
::sax::Converter::convertNumber(sColumns, nColumns);
|
||||
@@ -3264,8 +3267,8 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
|
||||
{
|
||||
if (aCell.bIsMergedBase)
|
||||
{
|
||||
sal_Int32 nColumns(aCell.aMergeRange.EndColumn - aCell.aMergeRange.StartColumn + 1);
|
||||
sal_Int32 nRows(aCell.aMergeRange.EndRow - aCell.aMergeRange.StartRow + 1);
|
||||
sal_Int32 nColumns(aCell.aMergeRange.aEnd.Col() - aCell.aMergeRange.aStart.Col() + 1);
|
||||
sal_Int32 nRows(aCell.aMergeRange.aEnd.Row() - aCell.aMergeRange.aStart.Row() + 1);
|
||||
OUStringBuffer sColumns;
|
||||
OUStringBuffer sRows;
|
||||
::sax::Converter::convertNumber(sColumns, nColumns);
|
||||
|
@@ -238,7 +238,7 @@ public:
|
||||
inline ScDocument* GetDocument() { return pDoc; }
|
||||
inline const ScDocument* GetDocument() const { return pDoc; }
|
||||
bool IsMatrix (const ScAddress& aCell,
|
||||
css::table::CellRangeAddress& aCellAddress, bool& bIsFirst) const;
|
||||
ScRange& aCellAddress, bool& bIsFirst) const;
|
||||
|
||||
const rtl::Reference < XMLPropertySetMapper >& GetCellStylesPropertySetMapper() { return xCellStylesPropertySetMapper; }
|
||||
const rtl::Reference < XMLPropertySetMapper >& GetTableStylesPropertySetMapper() { return xTableStylesPropertySetMapper; }
|
||||
|
Reference in New Issue
Block a user