[Libreoffice-commits] core.git: sc/source
Jochen Nitschke
j.nitschke+logerrit at ok.de
Tue Jan 3 00:20:20 UTC 2017
sc/source/filter/inc/workbookhelper.hxx | 6 +----
sc/source/filter/oox/autofilterbuffer.cxx | 4 +--
sc/source/filter/oox/tablebuffer.cxx | 6 -----
sc/source/filter/oox/workbookhelper.cxx | 35 ++++++++++++++----------------
4 files changed, 22 insertions(+), 29 deletions(-)
New commits:
commit a1a44eb3b305f1aad77b0cc1532c98016482f620
Author: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Date: Sun Jan 1 14:36:03 2017 +0100
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 at ok.de>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
diff --git a/sc/source/filter/inc/workbookhelper.hxx b/sc/source/filter/inc/workbookhelper.hxx
index 2ea53ca..7b6a073 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 a657834..fab9638 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 737d0ce..e3fdbe3 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 0e67c30..5dd584a 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 );
}
More information about the Libreoffice-commits
mailing list