diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-07-09 01:40:58 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-07-09 01:40:58 +0200 |
commit | 6c8ec4ad8e816157799cd164d9f9a837efa0f9a7 (patch) | |
tree | bcdcc3021ef45243c2cbbd8266120ac4e32ffa07 | |
parent | 9e9e53a2d961d489440f4addc25af90d3a6b793b (diff) |
Revert "Revert "export all style information to xls/xlsx, fdo#46738""
Lesson: Never trust that nobody was crazy enough to use my commits!
This reverts commit 9e9e53a2d961d489440f4addc25af90d3a6b793b.
-rw-r--r-- | sc/inc/attarray.hxx | 2 | ||||
-rw-r--r-- | sc/inc/column.hxx | 2 | ||||
-rw-r--r-- | sc/inc/document.hxx | 1 | ||||
-rw-r--r-- | sc/inc/table.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/attarray.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/column2.cxx | 4 | ||||
-rw-r--r-- | sc/source/core/data/document.cxx | 13 | ||||
-rw-r--r-- | sc/source/core/data/table1.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/excel/xetable.cxx | 2 |
9 files changed, 23 insertions, 9 deletions
diff --git a/sc/inc/attarray.hxx b/sc/inc/attarray.hxx index 1509f40f08c3..9b81440b668d 100644 --- a/sc/inc/attarray.hxx +++ b/sc/inc/attarray.hxx @@ -172,7 +172,7 @@ public: bool IsEmpty() const; bool GetFirstVisibleAttr( SCROW& rFirstRow ) const; - bool GetLastVisibleAttr( SCROW& rLastRow, SCROW nLastData ) const; + bool GetLastVisibleAttr( SCROW& rLastRow, SCROW nLastData, bool bFullFormattedArea = false ) const; bool HasVisibleAttrIn( SCROW nStartRow, SCROW nEndRow ) const; bool IsVisibleEqual( const ScAttrArray& rOther, SCROW nStartRow, SCROW nEndRow ) const; diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 721683daf369..6f776e1cc810 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -175,7 +175,7 @@ public: bool HasSelectionMatrixFragment(const ScMarkData& rMark) const; bool GetFirstVisibleAttr( SCROW& rFirstRow ) const; - bool GetLastVisibleAttr( SCROW& rLastRow ) const; + bool GetLastVisibleAttr( SCROW& rLastRow, bool bFullFormattedArea = false ) const; bool HasVisibleAttrIn( SCROW nStartRow, SCROW nEndRow ) const; bool IsVisibleAttrEqual( const ScColumn& rCol, SCROW nStartRow = 0, SCROW nEndRow = MAXROW ) const; diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index bbb062efbdff..72d5168bbc32 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -935,6 +935,7 @@ public: SCCOL& rEndCol, SCROW& rEndRow, bool bIncludeOld, bool bOnlyDown ) const; SC_DLLPUBLIC bool GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const; SC_DLLPUBLIC bool GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const; + SC_DLLPUBLIC void GetFormattedAndUsedArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const; SC_DLLPUBLIC bool GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow, bool bNotes = true ) const; SC_DLLPUBLIC bool GetPrintAreaHor( SCTAB nTab, SCROW nStartRow, SCROW nEndRow, diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 78fe25c5a1ae..966c458379a7 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -404,7 +404,7 @@ public: bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow ) const; - bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes ) const; + bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bFullFormattedArea = false ) const; bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow, SCCOL& rEndCol, bool bNotes ) const; bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol, diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx index 100dcfe924ee..6cf487fb612b 100644 --- a/sc/source/core/data/attarray.cxx +++ b/sc/source/core/data/attarray.cxx @@ -1732,7 +1732,7 @@ bool ScAttrArray::GetFirstVisibleAttr( SCROW& rFirstRow ) const const SCROW SC_VISATTR_STOP = 84; -bool ScAttrArray::GetLastVisibleAttr( SCROW& rLastRow, SCROW nLastData ) const +bool ScAttrArray::GetLastVisibleAttr( SCROW& rLastRow, SCROW nLastData, bool bFullFormattedArea ) const { OSL_ENSURE( nCount, "nCount == 0" ); diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 62fc4ea32eea..57a4e87a2e6b 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -1423,14 +1423,14 @@ bool ScColumn::GetFirstVisibleAttr( SCROW& rFirstRow ) const return false; } -bool ScColumn::GetLastVisibleAttr( SCROW& rLastRow ) const +bool ScColumn::GetLastVisibleAttr( SCROW& rLastRow, bool bFullFormattedArea ) const { if (pAttrArray) { // row of last cell is needed SCROW nLastData = GetLastVisDataPos(); // always including notes, 0 if none - return pAttrArray->GetLastVisibleAttr( rLastRow, nLastData ); + return pAttrArray->GetLastVisibleAttr( rLastRow, nLastData, bFullFormattedArea ); } else return false; diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index f2cdf5d90dcb..965f09c544db 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -940,6 +940,19 @@ bool ScDocument::GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) cons return false; } +void ScDocument::GetFormattedAndUsedArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const +{ + if (VALIDTAB(nTab) && nTab < static_cast<SCTAB> (maTabs.size())) + if (maTabs[nTab]) + { + maTabs[nTab]->GetPrintArea( rEndCol, rEndRow, true, true ); + return; + } + + rEndCol = 0; + rEndRow = 0; +} + bool ScDocument::ShrinkToDataArea(SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow) const { if (!ValidTab(nTab) || nTab >= static_cast<SCTAB> (maTabs.size()) || !maTabs[nTab]) diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx index f3e0e6e62242..090345a66807 100644 --- a/sc/source/core/data/table1.cxx +++ b/sc/source/core/data/table1.cxx @@ -568,7 +568,7 @@ bool ScTable::GetTableArea( SCCOL& rEndCol, SCROW& rEndRow ) const const SCCOL SC_COLUMNS_STOP = 30; -bool ScTable::GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes ) const +bool ScTable::GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bFullFormattedArea ) const { bool bFound = false; SCCOL nMaxX = 0; @@ -605,7 +605,7 @@ bool ScTable::GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes ) const for (i=0; i<=MAXCOL; i++) // Attribute testen { SCROW nLastRow; - if (aCol[i].GetLastVisibleAttr( nLastRow )) + if (aCol[i].GetLastVisibleAttr( nLastRow, bFullFormattedArea )) { bFound = true; nMaxX = i; diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 69db2be39527..150c730f5169 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -2208,7 +2208,7 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) : // find used area (non-empty cells) SCCOL nLastUsedScCol; SCROW nLastUsedScRow; - rDoc.GetTableArea( nScTab, nLastUsedScCol, nLastUsedScRow ); + rDoc.GetFormattedAndUsedArea( nScTab, nLastUsedScCol, nLastUsedScRow ); if(nLastUsedScCol > nMaxScCol) nLastUsedScCol = nMaxScCol; |