diff options
author | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-01-03 11:30:17 +0100 |
---|---|---|
committer | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-01-03 17:11:02 +0000 |
commit | 4c53e17d47bea97168bd07630ccf781639dd03d1 (patch) | |
tree | 89c76887ddba65cdc1a8ccb301d56de30a5ea8b1 /sc | |
parent | 2b2c764044659b233f57dd20b9f3c9d0d1e6f7e6 (diff) |
tdf#48140 replace CellRangeAddress in xlsx import (12)
Change-Id: Iec9ea10992ae031c4362a913792f738b2b45f199
Reviewed-on: https://gerrit.libreoffice.org/32662
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/inc/sheetdatabuffer.hxx | 9 | ||||
-rw-r--r-- | sc/source/filter/oox/sheetdatabuffer.cxx | 30 | ||||
-rw-r--r-- | sc/source/filter/oox/worksheetfragment.cxx | 5 |
3 files changed, 20 insertions, 24 deletions
diff --git a/sc/source/filter/inc/sheetdatabuffer.hxx b/sc/source/filter/inc/sheetdatabuffer.hxx index 9da32e68a304..79758dd15316 100644 --- a/sc/source/filter/inc/sheetdatabuffer.hxx +++ b/sc/source/filter/inc/sheetdatabuffer.hxx @@ -139,7 +139,7 @@ public: /** Sets default cell formatting for the specified range of rows. */ void setRowFormat( sal_Int32 nRow, sal_Int32 nXfId, bool bCustomFormat ); /** Merges the cells in the passed cell range. */ - void setMergedRange( const css::table::CellRangeAddress& rRange ); + void setMergedRange( const ScRange& rRange ); /** Processes the cell formatting data of the passed cell. */ void setCellFormat( const CellModel& rModel ); @@ -167,7 +167,7 @@ private: const css::table::CellRangeAddress& rRange, const DataTableModel& rModel ); /** Writes all cell formatting attributes to the passed cell range list. (depreciates writeXfIdRangeProperties) */ - void applyCellMerging( const css::table::CellRangeAddress& rRange ); + void applyCellMerging( const ScRange& rRange ); void addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId, const css::table::CellRangeAddress& rAddress, bool bProcessRowRange = false ); private: /** Stores cell range address and formula token array of an array formula. */ @@ -211,11 +211,10 @@ private: /** Stores information about a merged cell range. */ struct MergedRange { - css::table::CellRangeAddress - maRange; /// The formatted cell range. + ScRange maRange; /// The formatted cell range. sal_Int32 mnHorAlign; /// Horizontal alignment in the range. - explicit MergedRange( const css::table::CellRangeAddress& rRange ); + explicit MergedRange( const ScRange& rRange ); explicit MergedRange( const ScAddress& rAddress, sal_Int32 nHorAlign ); bool tryExpand( const ScAddress& rAddress, sal_Int32 nHorAlign ); }; diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx index 8f0cb3221503..e0025ec81779 100644 --- a/sc/source/filter/oox/sheetdatabuffer.cxx +++ b/sc/source/filter/oox/sheetdatabuffer.cxx @@ -322,7 +322,7 @@ void SheetDataBuffer::setRowFormat( sal_Int32 nRow, sal_Int32 nXfId, bool bCusto } } -void SheetDataBuffer::setMergedRange( const CellRangeAddress& rRange ) +void SheetDataBuffer::setMergedRange( const ScRange& rRange ) { maMergedRanges.push_back( MergedRange( rRange ) ); } @@ -526,24 +526,24 @@ bool SheetDataBuffer::XfIdRowRange::tryExpand( sal_Int32 nRow, sal_Int32 nXfId ) return false; } -SheetDataBuffer::MergedRange::MergedRange( const CellRangeAddress& rRange ) : +SheetDataBuffer::MergedRange::MergedRange( const ScRange& rRange ) : maRange( rRange ), mnHorAlign( XML_TOKEN_INVALID ) { } SheetDataBuffer::MergedRange::MergedRange( const ScAddress& rAddress, sal_Int32 nHorAlign ) : - maRange( rAddress.Tab(), rAddress.Col(), rAddress.Row(), rAddress.Col(), rAddress.Row() ), + maRange( rAddress, rAddress ), mnHorAlign( nHorAlign ) { } bool SheetDataBuffer::MergedRange::tryExpand( const ScAddress& rAddress, sal_Int32 nHorAlign ) { - if( (mnHorAlign == nHorAlign) && (maRange.StartRow == rAddress.Row() ) && - (maRange.EndRow == rAddress.Row() ) && (maRange.EndColumn + 1 == rAddress.Col() ) ) + if( (mnHorAlign == nHorAlign) && (maRange.aStart.Row() == rAddress.Row() ) && + (maRange.aEnd.Row() == rAddress.Row() ) && (maRange.aEnd.Col() + 1 == rAddress.Col() ) ) { - ++maRange.EndColumn; + maRange.aEnd.IncCol(); return true; } return false; @@ -714,7 +714,7 @@ void SheetDataBuffer::setCellFormat( const CellModel& rModel ) } } -void lcl_SetBorderLine( ScDocument& rDoc, ScRange& rRange, SCTAB nScTab, SvxBoxItemLine nLine ) +void lcl_SetBorderLine( ScDocument& rDoc, const ScRange& rRange, SCTAB nScTab, SvxBoxItemLine nLine ) { SCCOL nFromScCol = (nLine == SvxBoxItemLine::RIGHT) ? rRange.aEnd.Col() : rRange.aStart.Col(); SCROW nFromScRow = (nLine == SvxBoxItemLine::BOTTOM) ? rRange.aEnd.Row() : rRange.aStart.Row(); @@ -729,22 +729,20 @@ void lcl_SetBorderLine( ScDocument& rDoc, ScRange& rRange, SCTAB nScTab, SvxBoxI rDoc.ApplyAttr( rRange.aStart.Col(), rRange.aStart.Row(), nScTab, aNewItem ); } -void SheetDataBuffer::applyCellMerging( const CellRangeAddress& rRange ) +void SheetDataBuffer::applyCellMerging( const ScRange& rRange ) { - bool bMultiCol = rRange.StartColumn < rRange.EndColumn; - bool bMultiRow = rRange.StartRow < rRange.EndRow; + bool bMultiCol = rRange.aStart.Col() < rRange.aEnd.Col(); + bool bMultiRow = rRange.aStart.Row() < rRange.aEnd.Row(); - ScRange aRange; - ScUnoConversion::FillScRange( aRange, rRange ); - const ScAddress& rStart = aRange.aStart; - const ScAddress& rEnd = aRange.aEnd; + const ScAddress& rStart = rRange.aStart; + const ScAddress& rEnd = rRange.aEnd; ScDocument& rDoc = getScDocument(); // set correct right border if( bMultiCol ) - lcl_SetBorderLine( rDoc, aRange, getSheetIndex(), SvxBoxItemLine::RIGHT ); + lcl_SetBorderLine( rDoc, rRange, getSheetIndex(), SvxBoxItemLine::RIGHT ); // set correct lower border if( bMultiRow ) - lcl_SetBorderLine( rDoc, aRange, getSheetIndex(), SvxBoxItemLine::BOTTOM ); + lcl_SetBorderLine( rDoc, rRange, getSheetIndex(), SvxBoxItemLine::BOTTOM ); // do merge if( bMultiCol || bMultiRow ) rDoc.DoMerge( getSheetIndex(), rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row() ); diff --git a/sc/source/filter/oox/worksheetfragment.cxx b/sc/source/filter/oox/worksheetfragment.cxx index 4871671adf06..15b8a6183973 100644 --- a/sc/source/filter/oox/worksheetfragment.cxx +++ b/sc/source/filter/oox/worksheetfragment.cxx @@ -47,7 +47,6 @@ namespace oox { namespace xls { -using namespace ::com::sun::star::table; using namespace ::com::sun::star::uno; using namespace ::oox::core; @@ -694,7 +693,7 @@ void WorksheetFragment::importCol( const AttributeList& rAttribs ) void WorksheetFragment::importMergeCell( const AttributeList& rAttribs ) { - CellRangeAddress aRange; + ScRange aRange; if( getAddressConverter().convertToCellRange( aRange, rAttribs.getString( XML_ref, OUString() ), getSheetIndex(), true, true ) ) getSheetData().setMergedRange( aRange ); } @@ -825,7 +824,7 @@ void WorksheetFragment::importMergeCell( SequenceInputStream& rStrm ) { BinRange aBinRange; rStrm >> aBinRange; - CellRangeAddress aRange; + ScRange aRange; if( getAddressConverter().convertToCellRange( aRange, aBinRange, getSheetIndex(), true, true ) ) getSheetData().setMergedRange( aRange ); } |