summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel/xipivot.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/excel/xipivot.cxx')
-rw-r--r--sc/source/filter/excel/xipivot.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index b756f273aca5..aee3afb72dca 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1396,6 +1396,11 @@ void XclImpPivotTable::ReadSxViewEx9( XclImpStream& rStrm )
rStrm >> maPTViewEx9Info;
}
+void XclImpPivotTable::ReadSxAddl( XclImpStream& rStrm )
+{
+ rStrm >> maPTAddlInfo;
+}
+
void XclImpPivotTable::Convert()
{
if( !mxPCache || !mxPCache->IsValid() )
@@ -1514,6 +1519,7 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
mpDPObj->SetHeaderLayout( maPTInfo.mnFirstHeadRow - 2 == static_cast<sal_uInt16>(aGeometry.getRowFieldHeaderRow()) );
}
aGeometry.setHeaderLayout(mpDPObj->GetHeaderLayout());
+ aGeometry.setCompactMode(maPTAddlInfo.mbCompactMode);
ScDocument& rDoc = GetDoc();
@@ -1555,7 +1561,7 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
aGeometry.getRowFieldPositions(aFieldBtns);
rSaveData.GetAllDimensionsByOrientation(sheet::DataPilotFieldOrientation_ROW, aFieldDims);
- if (aFieldBtns.size() == aFieldDims.size())
+ if ((aFieldBtns.size() == aFieldDims.size()) || (maPTAddlInfo.mbCompactMode && aFieldBtns.size() == 1))
{
itr = aFieldBtns.begin();
itrEnd = aFieldBtns.end();
@@ -1702,6 +1708,12 @@ void XclImpPivotTableManager::ReadSxViewEx9( XclImpStream& rStrm )
maPTables.back()->ReadSxViewEx9( rStrm );
}
+void XclImpPivotTableManager::ReadSxAddl( XclImpStream& rStrm )
+{
+ if( !maPTables.empty() )
+ maPTables.back()->ReadSxAddl( rStrm );
+}
+
void XclImpPivotTableManager::ReadPivotCaches( const XclImpStream& rStrm )
{
for( XclImpPivotCacheVec::iterator aIt = maPCaches.begin(), aEnd = maPCaches.end(); aIt != aEnd; ++aIt )