summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2017-01-12 02:28:54 +0100
committerJochen Nitschke <j.nitschke+logerrit@ok.de>2017-01-15 23:50:42 +0000
commit98f2431d3bba2004174673294e28bf208bf9939e (patch)
tree65e80a42393ecf5d757da920d27ccbf32b8caa80
parentfef38c79e46feaf72e31253d80a82f26b4c2bcc7 (diff)
tdf#48140 replace CellRangeAddress in xlsx import (15)
Change-Id: I31d10a481063f42f1504d0066d8364102d17a1fb Reviewed-on: https://gerrit.libreoffice.org/33090 Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de> Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
-rw-r--r--sc/source/filter/inc/sheetdatabuffer.hxx2
-rw-r--r--sc/source/filter/oox/sheetdatabuffer.cxx19
2 files changed, 12 insertions, 9 deletions
diff --git a/sc/source/filter/inc/sheetdatabuffer.hxx b/sc/source/filter/inc/sheetdatabuffer.hxx
index bfef48c0c593..40d9b15092b9 100644
--- a/sc/source/filter/inc/sheetdatabuffer.hxx
+++ b/sc/source/filter/inc/sheetdatabuffer.hxx
@@ -167,7 +167,7 @@ private:
/** Writes all cell formatting attributes to the passed cell range list. (depreciates writeXfIdRangeProperties) */
void applyCellMerging( const ScRange& rRange );
- void addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const css::table::CellRangeAddress& rAddress, bool bProcessRowRange = false );
+ void addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const ScRange& rAddress, bool bProcessRowRange = false );
private:
/** Stores cell range address and formula token array of an array formula. */
typedef std::pair< ScRange, ApiTokenSequence > ArrayFormula;
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx
index dc13e2d140c8..239a54264a67 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -349,14 +349,14 @@ void addIfNotInMyMap( StylesBuffer& rStyles, std::map< FormatKeyPair, ApiCellRan
}
}
-void SheetDataBuffer::addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const css::table::CellRangeAddress& rAddress, bool bProcessRowRange )
+void SheetDataBuffer::addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const ScRange& rAddress, bool bProcessRowRange )
{
RowRangeStyle aStyleRows;
aStyleRows.mnNumFmt.first = nXfId;
aStyleRows.mnNumFmt.second = nFormatId;
- aStyleRows.mnStartRow = rAddress.StartRow;
- aStyleRows.mnEndRow = rAddress.EndRow;
- for ( sal_Int32 nCol = rAddress.StartColumn; nCol <= rAddress.EndColumn; ++nCol )
+ aStyleRows.mnStartRow = rAddress.aStart.Row();
+ aStyleRows.mnEndRow = rAddress.aEnd.Row();
+ for ( sal_Int32 nCol = rAddress.aStart.Col(); nCol <= rAddress.aEnd.Col(); ++nCol )
{
if ( !bProcessRowRange )
maStylesPerColumn[ nCol ].insert( aStyleRows );
@@ -364,8 +364,8 @@ void SheetDataBuffer::addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const
{
RowStyles& rRowStyles = maStylesPerColumn[ nCol ];
// Reset row range for each column
- aStyleRows.mnStartRow = rAddress.StartRow;
- aStyleRows.mnEndRow = rAddress.EndRow;
+ aStyleRows.mnStartRow = rAddress.aStart.Row();
+ aStyleRows.mnEndRow = rAddress.aEnd.Row();
// If aStyleRows includes rows already allocated to a style
// in rRowStyles, then we need to split it into parts.
@@ -427,7 +427,9 @@ void SheetDataBuffer::finalizeImport()
{
const ApiCellRangeList& rRanges( it->second );
for ( ::std::vector< CellRangeAddress >::const_iterator it_range = rRanges.begin(), it_rangeend = rRanges.end(); it_range!=it_rangeend; ++it_range )
- addColXfStyle( it->first.first, it->first.second, *it_range );
+ addColXfStyle( it->first.first, it->first.second,
+ ScRange( (*it_range).StartColumn, (*it_range).StartRow, (*it_range).Sheet,
+ (*it_range).EndColumn, (*it_range).EndRow, (*it_range).Sheet ));
}
for ( std::map< sal_Int32, std::vector< ValueRange > >::iterator it = maXfIdRowRangeList.begin(), it_end = maXfIdRowRangeList.end(); it != it_end; ++it )
@@ -439,7 +441,8 @@ void SheetDataBuffer::finalizeImport()
{
if ( it->first == -1 ) // it's a dud skip it
continue;
- CellRangeAddress aRange( getSheetIndex(), 0, rangeIter->mnFirst, rAddrConv.getMaxApiAddress().Col(), rangeIter->mnLast );
+ ScRange aRange( 0, rangeIter->mnFirst, getSheetIndex(),
+ rAddrConv.getMaxApiAddress().Col(), rangeIter->mnLast, getSheetIndex() );
addColXfStyle( it->first, -1, aRange, true );
}