diff options
author | Mohammed Abdul Azeem <azeemmysore@gmail.com> | 2016-02-09 03:54:15 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-02-17 08:41:12 +0000 |
commit | 2c02986b76f26d6f09d5b1f9d209879bfa427ea1 (patch) | |
tree | 60cb199d609d1b8f5f36ddfdefcc25bdd1065556 /sc/source/filter/oox/worksheethelper.cxx | |
parent | e327587699ed9e071da68bf7b2a3eb62c34af135 (diff) |
tdf#97654 - replaced UNO cell types in xlsx import with calc internal ones
All reference to CellAddress in ApiCellRangeList::getBaseAddress() is changed to ScAddress and its chain of changes has been made.
Change-Id: I43d9eb8dc02c74640d9fac11a44429850f31ade1
Reviewed-on: https://gerrit.libreoffice.org/22222
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc/source/filter/oox/worksheethelper.cxx')
-rw-r--r-- | sc/source/filter/oox/worksheethelper.cxx | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/sc/source/filter/oox/worksheethelper.cxx b/sc/source/filter/oox/worksheethelper.cxx index 2c2dba1d0faf..7b86d8573e16 100644 --- a/sc/source/filter/oox/worksheethelper.cxx +++ b/sc/source/filter/oox/worksheethelper.cxx @@ -225,6 +225,7 @@ public: /** Returns the XCell interface for the passed cell address. */ Reference< XCell > getCell( const CellAddress& rAddress ) const; + Reference< XCell > getCell( const ScAddress& rAddress ) const; /** Returns the XCellRange interface for the passed cell range address. */ Reference< XCellRange > getCellRange( const CellRangeAddress& rRange ) const; /** Returns the XSheetCellRanges interface for the passed cell range addresses. */ @@ -480,6 +481,19 @@ Reference< XCell > WorksheetGlobals::getCell( const CellAddress& rAddress ) cons return xCell; } +Reference< XCell > WorksheetGlobals::getCell( const ScAddress& rAddress ) const +{ + Reference< XCell > xCell; + if( mxSheet.is() ) try + { + xCell = mxSheet->getCellByPosition( rAddress.Col(), rAddress.Row() ); + } + catch( Exception& ) + { + } + return xCell; +} + Reference< XCellRange > WorksheetGlobals::getCellRange( const CellRangeAddress& rRange ) const { Reference< XCellRange > xRange; @@ -1429,6 +1443,11 @@ Reference< XCell > WorksheetHelper::getCell( const CellAddress& rAddress ) const return mrSheetGlob.getCell( rAddress ); } +Reference< XCell > WorksheetHelper::getCell( const ScAddress& rAddress ) const +{ + return mrSheetGlob.getCell( rAddress ); +} + Reference< XCellRange > WorksheetHelper::getCellRange( const CellRangeAddress& rRange ) const { return mrSheetGlob.getCellRange( rRange ); @@ -1576,12 +1595,23 @@ void WorksheetHelper::putValue( const CellAddress& rAddress, double fValue ) getDocImport().setNumericCell(aAddress, fValue); } +void WorksheetHelper::putValue( const ScAddress& rAddress, double fValue ) +{ + getDocImport().setNumericCell(rAddress, fValue); +} + void WorksheetHelper::setCellFormulaValue( const css::table::CellAddress& rAddress, const OUString& rValueStr, sal_Int32 nCellType ) { getFormulaBuffer().setCellFormulaValue(rAddress, rValueStr, nCellType); } +void WorksheetHelper::setCellFormulaValue( + const ScAddress& rAddress, const OUString& rValueStr, sal_Int32 nCellType ) +{ + getFormulaBuffer().setCellFormulaValue(rAddress, rValueStr, nCellType); +} + void WorksheetHelper::putString( const CellAddress& rAddress, const OUString& rText ) { ScAddress aAddress; @@ -1590,6 +1620,12 @@ void WorksheetHelper::putString( const CellAddress& rAddress, const OUString& rT getDocImport().setStringCell(aAddress, rText); } +void WorksheetHelper::putString( const ScAddress& rAddress, const OUString& rText ) +{ + if ( !rText.isEmpty() ) + getDocImport().setStringCell(rAddress, rText); +} + void WorksheetHelper::putRichString( const CellAddress& rAddress, const RichString& rString, const oox::xls::Font* pFirstPortionFont ) { ScEditEngineDefaulter& rEE = getEditEngine(); @@ -1600,6 +1636,14 @@ void WorksheetHelper::putRichString( const CellAddress& rAddress, const RichStri getDocImport().setEditCell(aAddress, rString.convert(rEE, pFirstPortionFont)); } +void WorksheetHelper::putRichString( const ScAddress& rAddress, const RichString& rString, const oox::xls::Font* pFirstPortionFont ) +{ + ScEditEngineDefaulter& rEE = getEditEngine(); + + // The cell will own the text object instance returned from convert(). + getDocImport().setEditCell(rAddress, rString.convert(rEE, pFirstPortionFont)); +} + void WorksheetHelper::putFormulaTokens( const CellAddress& rAddress, const ApiTokenSequence& rTokens ) { ScDocumentImport& rDoc = getDocImport(); @@ -1610,6 +1654,14 @@ void WorksheetHelper::putFormulaTokens( const CellAddress& rAddress, const ApiTo rDoc.setFormulaCell(aCellPos, new ScTokenArray(aTokenArray)); } +void WorksheetHelper::putFormulaTokens( const ScAddress& rAddress, const ApiTokenSequence& rTokens ) +{ + ScDocumentImport& rDoc = getDocImport(); + ScTokenArray aTokenArray; + ScTokenConversion::ConvertToTokenArray(rDoc.getDoc(), aTokenArray, rTokens); + rDoc.setFormulaCell(rAddress, new ScTokenArray(aTokenArray)); +} + void WorksheetHelper::initializeWorksheetImport() { mrSheetGlob.initializeWorksheetImport(); @@ -1630,6 +1682,11 @@ void WorksheetHelper::setCellFormula( const css::table::CellAddress& rTokenAddre getFormulaBuffer().setCellFormula( rTokenAddress, rTokenStr ); } +void WorksheetHelper::setCellFormula( const ScAddress& rTokenAddress, const OUString& rTokenStr ) +{ + getFormulaBuffer().setCellFormula( rTokenAddress, rTokenStr ); +} + void WorksheetHelper::setCellFormula( const css::table::CellAddress& rAddr, sal_Int32 nSharedId, const OUString& rCellValue, sal_Int32 nValueType ) @@ -1637,6 +1694,13 @@ void WorksheetHelper::setCellFormula( getFormulaBuffer().setCellFormula(rAddr, nSharedId, rCellValue, nValueType); } +void WorksheetHelper::setCellFormula( + const ScAddress& rAddr, sal_Int32 nSharedId, + const OUString& rCellValue, sal_Int32 nValueType ) +{ + getFormulaBuffer().setCellFormula(rAddr, nSharedId, rCellValue, nValueType); +} + void WorksheetHelper::setCellArrayFormula( const css::table::CellRangeAddress& rRangeAddress, const css::table::CellAddress& rTokenAddress, const OUString& rTokenStr ) { getFormulaBuffer().setCellArrayFormula( rRangeAddress, rTokenAddress, rTokenStr ); @@ -1648,6 +1712,12 @@ void WorksheetHelper::createSharedFormulaMapEntry( getFormulaBuffer().createSharedFormulaMapEntry(rAddress, nSharedId, rTokens); } +void WorksheetHelper::createSharedFormulaMapEntry( + const ScAddress& rAddress, sal_Int32 nSharedId, const OUString& rTokens ) +{ + getFormulaBuffer().createSharedFormulaMapEntry(rAddress, nSharedId, rTokens); +} + } // namespace xls } // namespace oox |