summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-07-09 01:40:58 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-07-09 01:40:58 +0200
commit6c8ec4ad8e816157799cd164d9f9a837efa0f9a7 (patch)
treebcdcc3021ef45243c2cbbd8266120ac4e32ffa07
parent9e9e53a2d961d489440f4addc25af90d3a6b793b (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.hxx2
-rw-r--r--sc/inc/column.hxx2
-rw-r--r--sc/inc/document.hxx1
-rw-r--r--sc/inc/table.hxx2
-rw-r--r--sc/source/core/data/attarray.cxx2
-rw-r--r--sc/source/core/data/column2.cxx4
-rw-r--r--sc/source/core/data/document.cxx13
-rw-r--r--sc/source/core/data/table1.cxx4
-rw-r--r--sc/source/filter/excel/xetable.cxx2
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;