diff options
author | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-01-01 14:36:03 +0100 |
---|---|---|
committer | Jochen Nitschke <j.nitschke+logerrit@ok.de> | 2017-01-03 00:19:55 +0000 |
commit | a1a44eb3b305f1aad77b0cc1532c98016482f620 (patch) | |
tree | ec12c74f4dba86e98655ed6b5c2ca32a58c3e0ad | |
parent | 99577bfa80cb926ff9a1710905036e2d09747ddb (diff) |
tdf#48140 replace CellRangeAddress in xlsx import (9)
Change-Id: If0b9d35305c4e109cb3edf8c5041d95854cd6c28
Reviewed-on: https://gerrit.libreoffice.org/32578
Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
-rw-r--r-- | sc/source/filter/inc/workbookhelper.hxx | 6 | ||||
-rw-r--r-- | sc/source/filter/oox/autofilterbuffer.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/oox/tablebuffer.cxx | 6 | ||||
-rw-r--r-- | sc/source/filter/oox/workbookhelper.cxx | 35 |
4 files changed, 22 insertions, 29 deletions
diff --git a/sc/source/filter/inc/workbookhelper.hxx b/sc/source/filter/inc/workbookhelper.hxx index 2ea53ca69f66..7b6a07354a92 100644 --- a/sc/source/filter/inc/workbookhelper.hxx +++ b/sc/source/filter/inc/workbookhelper.hxx @@ -36,8 +36,6 @@ namespace com { namespace sun { namespace star { namespace sheet { class XSpreadsheetDocument; } namespace sheet { struct FormulaToken; } namespace style { class XStyle; } - namespace table { struct CellAddress; } - namespace table { struct CellRangeAddress; } namespace table { class XCell; } namespace table { class XCellRange; } } } } @@ -187,13 +185,13 @@ public: css::uno::Reference< css::sheet::XDatabaseRange > createDatabaseRangeObject( OUString& orName, - const css::table::CellRangeAddress& rRangeAddr ) const; + const ScRange& rRangeAddr ) const; /** Creates and returns an unnamed database range on-the-fly in the Calc document. The range will not be buffered in the global table buffer. */ css::uno::Reference< css::sheet::XDatabaseRange > createUnnamedDatabaseRangeObject( - const css::table::CellRangeAddress& rRangeAddr ) const; + const ScRange& rRangeAddr ) const; /** Finds the (already existing) database range of the given formula token index. */ ScDBData* findDatabaseRangeByIndex( sal_uInt16 nIndex ) const; diff --git a/sc/source/filter/oox/autofilterbuffer.cxx b/sc/source/filter/oox/autofilterbuffer.cxx index a657834dcf90..fab96383b0e5 100644 --- a/sc/source/filter/oox/autofilterbuffer.cxx +++ b/sc/source/filter/oox/autofilterbuffer.cxx @@ -651,8 +651,8 @@ void AutoFilterBuffer::finalizeImport( sal_Int16 nSheet ) // rely on existence of the defined name '_FilterDatabase' containing the range address of the filtered area if( const DefinedName* pFilterDBName = getDefinedNames().getByBuiltinId( BIFF_DEFNAME_FILTERDATABASE, nSheet ).get() ) { - CellRangeAddress aFilterRange; - if( pFilterDBName->getAbsoluteRange( aFilterRange ) && (aFilterRange.Sheet == nSheet) ) + ScRange aFilterRange; + if( pFilterDBName->getAbsoluteRange( aFilterRange ) && (aFilterRange.aStart.Tab() == nSheet) ) { // use the same name for the database range as used for the defined name '_FilterDatabase' Reference< XDatabaseRange > xDatabaseRange = createUnnamedDatabaseRangeObject( aFilterRange ); diff --git a/sc/source/filter/oox/tablebuffer.cxx b/sc/source/filter/oox/tablebuffer.cxx index 737d0ce05655..e3fdbe31850b 100644 --- a/sc/source/filter/oox/tablebuffer.cxx +++ b/sc/source/filter/oox/tablebuffer.cxx @@ -90,13 +90,9 @@ void Table::finalizeImport() if( (maModel.mnId > 0) && !maModel.maDisplayName.isEmpty() ) try { maDBRangeName = maModel.maDisplayName; - ::css::table::CellRangeAddress aCellRangeAddress = ::css::table::CellRangeAddress( - maModel.maRange.aStart.Tab(), - maModel.maRange.aStart.Col(), maModel.maRange.aStart.Row(), - maModel.maRange.aEnd.Col(), maModel.maRange.aEnd.Row() ); Reference< XDatabaseRange > xDatabaseRange( - createDatabaseRangeObject( maDBRangeName, aCellRangeAddress ), UNO_SET_THROW); + createDatabaseRangeObject( maDBRangeName, maModel.maRange ), UNO_SET_THROW); ::css::table::CellRangeAddress aAddressRange = xDatabaseRange->getDataArea(); maDestRange = ScRange( aAddressRange.StartColumn, aAddressRange.StartRow, aAddressRange.Sheet, aAddressRange.EndColumn, aAddressRange.EndRow, aAddressRange.Sheet ); diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx index 0e67c303aaf1..5dd584a85fe9 100644 --- a/sc/source/filter/oox/workbookhelper.cxx +++ b/sc/source/filter/oox/workbookhelper.cxx @@ -63,7 +63,6 @@ #include "rangenam.hxx" #include "tokenarray.hxx" #include "tokenuno.hxx" -#include "convuno.hxx" #include "dbdata.hxx" #include "datauno.hxx" #include "globalnames.hxx" @@ -157,9 +156,9 @@ public: /** Creates and returns a defined name on the-fly in the correct Calc sheet. */ ScRangeData* createLocalNamedRangeObject( OUString& orName, const Sequence< FormulaToken>& rTokens, sal_Int32 nIndex, sal_Int32 nNameFlags, sal_Int32 nTab ); /** Creates and returns a database range on-the-fly in the Calc document. */ - Reference< XDatabaseRange > createDatabaseRangeObject( OUString& orName, const CellRangeAddress& rRangeAddr ); + Reference< XDatabaseRange > createDatabaseRangeObject( OUString& orName, const ScRange& rRangeAddr ); /** Creates and returns an unnamed database range on-the-fly in the Calc document. */ - Reference< XDatabaseRange > createUnnamedDatabaseRangeObject( const CellRangeAddress& rRangeAddr ); + Reference< XDatabaseRange > createUnnamedDatabaseRangeObject( const ScRange& rRangeAddr ); /** Finds the (already existing) database range of the given formula token index. */ ScDBData* findDatabaseRangeByIndex( sal_uInt16 nIndex ); /** Creates and returns a com.sun.star.style.Style object for cells or pages. */ @@ -423,10 +422,10 @@ ScRangeData* WorkbookGlobals::createLocalNamedRangeObject( return pScRangeData; } -Reference< XDatabaseRange > WorkbookGlobals::createDatabaseRangeObject( OUString& orName, const CellRangeAddress& rRangeAddr ) +Reference< XDatabaseRange > WorkbookGlobals::createDatabaseRangeObject( OUString& orName, const ScRange& rRangeAddr ) { // validate cell range - CellRangeAddress aDestRange = rRangeAddr; + ScRange aDestRange = rRangeAddr; bool bValidRange = getAddressConverter().validateCellRange( aDestRange, true, true ); // create database range and insert it into the Calc document @@ -438,7 +437,9 @@ Reference< XDatabaseRange > WorkbookGlobals::createDatabaseRangeObject( OUString Reference< XDatabaseRanges > xDatabaseRanges( aDocProps.getAnyProperty( PROP_DatabaseRanges ), UNO_QUERY_THROW ); orName = ContainerHelper::getUnusedName( xDatabaseRanges, orName, '_' ); // create the database range - xDatabaseRanges->addNewByName( orName, aDestRange ); + CellRangeAddress aApiRange( aDestRange.aStart.Tab(), aDestRange.aStart.Col(), aDestRange.aStart.Row(), + aDestRange.aEnd.Col(), aDestRange.aEnd.Row() ); + xDatabaseRanges->addNewByName( orName, aApiRange ); xDatabaseRange.set( xDatabaseRanges->getByName( orName ), UNO_QUERY ); } catch( Exception& ) @@ -448,10 +449,10 @@ Reference< XDatabaseRange > WorkbookGlobals::createDatabaseRangeObject( OUString return xDatabaseRange; } -Reference< XDatabaseRange > WorkbookGlobals::createUnnamedDatabaseRangeObject( const CellRangeAddress& rRangeAddr ) +Reference< XDatabaseRange > WorkbookGlobals::createUnnamedDatabaseRangeObject( const ScRange& rRangeAddr ) { // validate cell range - CellRangeAddress aDestRange = rRangeAddr; + ScRange aDestRange = rRangeAddr; bool bValidRange = getAddressConverter().validateCellRange( aDestRange, true, true ); // create database range and insert it into the Calc document @@ -459,16 +460,14 @@ Reference< XDatabaseRange > WorkbookGlobals::createUnnamedDatabaseRangeObject( c if( bValidRange ) try { ScDocument& rDoc = getScDocument(); - if( rDoc.GetTableCount() <= aDestRange.Sheet ) + if( rDoc.GetTableCount() <= aDestRange.aStart.Tab() ) throw css::lang::IndexOutOfBoundsException(); - ScRange aScRange; - ScUnoConversion::FillScRange(aScRange, aDestRange); - ScDBData* pNewDBData = new ScDBData( STR_DB_LOCAL_NONAME, aScRange.aStart.Tab(), - aScRange.aStart.Col(), aScRange.aStart.Row(), - aScRange.aEnd.Col(), aScRange.aEnd.Row() ); - rDoc.SetAnonymousDBData( aScRange.aStart.Tab() , pNewDBData ); + ScDBData* pNewDBData = new ScDBData( STR_DB_LOCAL_NONAME, aDestRange.aStart.Tab(), + aDestRange.aStart.Col(), aDestRange.aStart.Row(), + aDestRange.aEnd.Col(), aDestRange.aEnd.Row() ); + rDoc.SetAnonymousDBData( aDestRange.aStart.Tab() , pNewDBData ); ScDocShell* pDocSh = static_cast< ScDocShell* >(rDoc.GetDocumentShell()); - xDatabaseRange.set(new ScDatabaseRangeObj(pDocSh, aScRange.aStart.Tab())); + xDatabaseRange.set(new ScDatabaseRangeObj(pDocSh, aDestRange.aStart.Tab())); } catch( Exception& ) { @@ -819,12 +818,12 @@ ScRangeData* WorkbookHelper::createLocalNamedRangeObject( OUString& orName, cons return mrBookGlob.createLocalNamedRangeObject( orName, rTokens, nIndex, nNameFlags, nTab ); } -Reference< XDatabaseRange > WorkbookHelper::createDatabaseRangeObject( OUString& orName, const CellRangeAddress& rRangeAddr ) const +Reference< XDatabaseRange > WorkbookHelper::createDatabaseRangeObject( OUString& orName, const ScRange& rRangeAddr ) const { return mrBookGlob.createDatabaseRangeObject( orName, rRangeAddr ); } -Reference< XDatabaseRange > WorkbookHelper::createUnnamedDatabaseRangeObject( const CellRangeAddress& rRangeAddr ) const +Reference< XDatabaseRange > WorkbookHelper::createUnnamedDatabaseRangeObject( const ScRange& rRangeAddr ) const { return mrBookGlob.createUnnamedDatabaseRangeObject( rRangeAddr ); } |