summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJochen Nitschke <j.nitschke+logerrit@ok.de>2017-01-01 14:36:03 +0100
committerJochen Nitschke <j.nitschke+logerrit@ok.de>2017-01-03 00:19:55 +0000
commita1a44eb3b305f1aad77b0cc1532c98016482f620 (patch)
treeec12c74f4dba86e98655ed6b5c2ca32a58c3e0ad
parent99577bfa80cb926ff9a1710905036e2d09747ddb (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.hxx6
-rw-r--r--sc/source/filter/oox/autofilterbuffer.cxx4
-rw-r--r--sc/source/filter/oox/tablebuffer.cxx6
-rw-r--r--sc/source/filter/oox/workbookhelper.cxx35
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 );
}