26#include <com/sun/star/frame/XModel.hpp>
27#include <com/sun/star/drawing/Direction3D.hpp>
28#include <com/sun/star/drawing/ProjectionMode.hpp>
29#include <com/sun/star/drawing/ShadeMode.hpp>
30#include <com/sun/star/drawing/XShape.hpp>
31#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
32#include <com/sun/star/chart/ChartAxisArrangeOrderType.hpp>
33#include <com/sun/star/chart/ChartAxisLabelPosition.hpp>
34#include <com/sun/star/chart/ChartAxisMarkPosition.hpp>
35#include <com/sun/star/chart/ChartAxisPosition.hpp>
36#include <com/sun/star/chart/ChartLegendExpansion.hpp>
37#include <com/sun/star/chart/TimeInterval.hpp>
38#include <com/sun/star/chart/TimeUnit.hpp>
39#include <com/sun/star/chart/XChartDocument.hpp>
40#include <com/sun/star/chart/XDiagramPositioning.hpp>
41#include <com/sun/star/chart/DataLabelPlacement.hpp>
42#include <com/sun/star/chart/ErrorBarStyle.hpp>
43#include <com/sun/star/chart/MissingValueTreatment.hpp>
44#include <com/sun/star/chart2/LinearRegressionCurve.hpp>
45#include <com/sun/star/chart2/ExponentialRegressionCurve.hpp>
46#include <com/sun/star/chart2/LogarithmicRegressionCurve.hpp>
47#include <com/sun/star/chart2/PotentialRegressionCurve.hpp>
48#include <com/sun/star/chart2/PolynomialRegressionCurve.hpp>
49#include <com/sun/star/chart2/MovingAverageRegressionCurve.hpp>
50#include <com/sun/star/chart2/CartesianCoordinateSystem2d.hpp>
51#include <com/sun/star/chart2/CartesianCoordinateSystem3d.hpp>
52#include <com/sun/star/chart2/FormattedString.hpp>
53#include <com/sun/star/chart2/LogarithmicScaling.hpp>
54#include <com/sun/star/chart2/LinearScaling.hpp>
55#include <com/sun/star/chart2/PolarCoordinateSystem2d.hpp>
56#include <com/sun/star/chart2/PolarCoordinateSystem3d.hpp>
57#include <com/sun/star/chart2/XChartDocument.hpp>
58#include <com/sun/star/chart2/XDiagram.hpp>
59#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
60#include <com/sun/star/chart2/XChartTypeContainer.hpp>
61#include <com/sun/star/chart2/XDataSeriesContainer.hpp>
62#include <com/sun/star/chart2/XRegressionCurveContainer.hpp>
63#include <com/sun/star/chart2/XTitled.hpp>
64#include <com/sun/star/chart2/AxisType.hpp>
65#include <com/sun/star/chart2/CurveStyle.hpp>
66#include <com/sun/star/chart2/DataPointGeometry3D.hpp>
67#include <com/sun/star/chart2/DataPointLabel.hpp>
68#include <com/sun/star/chart2/LegendPosition.hpp>
69#include <com/sun/star/chart2/StackingDirection.hpp>
70#include <com/sun/star/chart2/TickmarkStyle.hpp>
71#include <com/sun/star/chart2/RelativePosition.hpp>
72#include <com/sun/star/chart2/RelativeSize.hpp>
73#include <com/sun/star/chart2/data/XDataProvider.hpp>
74#include <com/sun/star/chart2/data/XDataReceiver.hpp>
75#include <com/sun/star/chart2/data/XDataSink.hpp>
76#include <com/sun/star/chart2/data/LabeledDataSequence.hpp>
86#include <document.hxx>
88#include <tokenarray.hxx>
89#include <compiler.hxx>
102using ::com::sun::star::uno::Any;
103using ::com::sun::star::uno::Reference;
104using ::com::sun::star::uno::Sequence;
105using ::com::sun::star::uno::UNO_QUERY;
106using ::com::sun::star::uno::UNO_QUERY_THROW;
107using ::com::sun::star::uno::UNO_SET_THROW;
108using ::com::sun::star::uno::Exception;
109using ::com::sun::star::beans::XPropertySet;
110using ::com::sun::star::frame::XModel;
111using ::com::sun::star::util::XNumberFormatsSupplier;
112using ::com::sun::star::drawing::XDrawPage;
113using ::com::sun::star::drawing::XDrawPageSupplier;
114using ::com::sun::star::drawing::XShape;
118using ::com::sun::star::chart2::data::XDataProvider;
119using ::com::sun::star::chart2::data::XDataReceiver;
120using ::com::sun::star::chart2::data::XDataSequence;
121using ::com::sun::star::chart2::data::XDataSink;
122using ::com::sun::star::chart2::data::XLabeledDataSequence;
123using ::com::sun::star::chart2::data::LabeledDataSequence;
125using ::formula::FormulaToken;
126using ::formula::FormulaTokenArrayPlainIterator;
127using ::std::unique_ptr;
129namespace cssc = ::com::sun::star::chart;
130namespace cssc2 = ::com::sun::star::chart2;
145void lclSetValueOrClearAny( Any& rAny,
double fValue,
bool bClear )
153void lclSetExpValueOrClearAny( Any& rAny,
double fValue,
bool bLogScale,
bool bClear )
155 if( !bClear && bLogScale )
156 fValue = pow( 10.0, fValue );
157 lclSetValueOrClearAny( rAny, fValue, bClear );
160double lclGetSerialDay(
const XclImpRoot& rRoot, sal_uInt16 nValue, sal_uInt16 nTimeUnit )
171 OSL_ENSURE(
false,
"lclGetSerialDay - unexpected time unit" );
176void lclConvertTimeValue(
const XclImpRoot& rRoot, Any& rAny, sal_uInt16 nValue,
bool bAuto, sal_uInt16 nTimeUnit )
181 rAny <<= lclGetSerialDay( rRoot, nValue, nTimeUnit );
184sal_Int32 lclGetApiTimeUnit( sal_uInt16 nTimeUnit )
191 default: OSL_ENSURE(
false,
"lclGetApiTimeUnit - unexpected time unit" );
193 return cssc::TimeUnit::DAY;
196void lclConvertTimeInterval( Any& rInterval, sal_uInt16 nValue,
bool bAuto, sal_uInt16 nTimeUnit )
198 if( bAuto || (nValue == 0) )
201 rInterval <<= cssc::TimeInterval( nValue, lclGetApiTimeUnit( nTimeUnit ) );
238 return mxChData->mxTypeInfoProv->GetTypeInfoFromRecId( nRecId );
243 return mxChData->mxFmtInfoProv->GetFormatInfo( eObjType );
271 xChartDoc->lockControllers();
274 Reference< XDataReceiver > xDataRec( xChartDoc, UNO_QUERY );
275 if( pDocShell && xDataRec.is() )
278 Reference< XDataProvider > xDataProv(
281 xDataRec->attachDataProvider( xDataProv );
283 Reference< XNumberFormatsSupplier > xNumFmtSupp( pDocShell->
GetModel(), UNO_QUERY );
284 if( xNumFmtSupp.is() )
285 xDataRec->attachNumberFormatsSupplier( xNumFmtSupp );
295 xModel->unlockControllers();
303 return mxChData->mxChartDoc->getDataProvider();
308 return mxChData->GetTitleShape( rTitleKey );
313 return static_cast< sal_Int32
>(
mxChData->mfUnitSizeX * nPosX +
mxChData->mnBorderGapX + 0.5 );
318 return static_cast< sal_Int32
>(
mxChData->mfUnitSizeY * nPosY +
mxChData->mnBorderGapY + 0.5 );
323 return css::awt::Rectangle(
335 return static_cast<double>(nPosX) / nWidth;
343 return static_cast<double >(nPosY) / nHeight;
360 rPropSet, *
mxChData->mxLineDashTable, rLineFmt, ePropMode );
375 rEscherFmt, pPicFmt, nDffFillType, ePropMode );
379 sal_uInt16 nFontIdx,
const Color* pFontColor )
const
386 sal_Int32 nApiRot = (450 - (nAngle % 360)) % 360;
404 rStrm.StartNextRecord();
409 while( bLoop &&
rStrm.StartNextRecord() )
411 sal_uInt16 nRecId =
rStrm.GetRecId();
426 OSL_ENSURE(
rStrm.GetRecId() ==
EXC_ID_CHBEGIN,
"XclImpChGroupBase::SkipBlock - no CHBEGIN record" );
429 while( bLoop &&
rStrm.StartNextRecord() )
431 sal_uInt16 nRecId =
rStrm.GetRecId();
542 switch(
rStrm.GetRecId() )
570 mxAreaFmt = std::make_shared<XclImpChAreaFormat>();
583 mxAreaFmt = std::make_shared<XclImpChAreaFormat>( aAreaFmt );
588 OSL_FAIL(
"XclImpChFrameBase::XclImpChFrameBase - unknown frame type" );
594 switch(
rStrm.GetRecId() )
601 mxAreaFmt = std::make_shared<XclImpChAreaFormat>();
615 mxLineFmt->Convert( rRoot, rPropSet, eObjType, nFormatIdx );
625 mxEscherFmt->Convert( rRoot, rPropSet, eObjType, bUsePicFmt );
627 mxAreaFmt->Convert( rRoot, rPropSet, eObjType, nFormatIdx );
693 mxAreaFmt = std::make_shared<XclImpChAreaFormat>( aAreaFmt );
707Reference< XLabeledDataSequence > lclCreateLabeledDataSequence(
712 Reference< XDataSequence > xValueSeq;
714 xValueSeq = xValueLink->CreateDataSequence( rValueRole );
715 Reference< XDataSequence > xTitleSeq;
720 Reference< XLabeledDataSequence > xLabeledSeq;
721 if( xValueSeq.is() || xTitleSeq.is() )
723 if( xLabeledSeq.is() )
726 xLabeledSeq->setValues( xValueSeq );
728 xLabeledSeq->setLabel( xTitleSeq );
766 mxString = std::make_shared<XclImpString>();
775 mxString = std::make_shared<XclImpString>();
782 mxString->SetFormats( std::move(rFormats) );
787 sal_uInt32 nCellCount = 0;
791 for(
const FormulaToken* pToken = aIter.First(); pToken; pToken = aIter.Next() )
793 switch( pToken->GetType() )
795 case ::formula::svSingleRef:
796 case ::formula::svExternalSingleRef:
800 case ::formula::svDoubleRef:
801 case ::formula::svExternalDoubleRef:
807 sal_uInt32 nTabs =
static_cast<sal_uInt32
>(aAbs2.
Tab() - aAbs1.
Tab() + 1);
808 sal_uInt32 nCols =
static_cast<sal_uInt32
>(aAbs2.
Col() - aAbs1.
Col() + 1);
809 sal_uInt32 nRows =
static_cast<sal_uInt32
>(aAbs2.
Row() - aAbs1.
Row() + 1);
810 nCellCount += nCols * nRows * nTabs;
817 return limit_cast< sal_uInt16 >( nCellCount );
834 Reference< XDataSequence > xDataSeq;
841 OUStringBuffer aRangeRep;
845 xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aRangeRep.makeStringAndClear() );
859 OUString aString(
"\"");
860 xDataSeq = xDataProv->createDataSequenceByRangeRepresentation( aString +
mxString->GetText() + aString );
872 const XclImpChRoot& rRoot, sal_uInt16 nLeadFontIdx,
const Color& rLeadFontColor )
const
874 ::std::vector< Reference< XFormattedString > > aStringVec;
881 xFmtStr->setString( aIt.GetPortionText() );
885 sal_uInt16 nFontIdx = aIt.GetPortionFont();
888 rRoot.
ConvertFont( aStringProp, nLeadFontIdx, &rLeadFontColor );
893 aStringVec.emplace_back(xFmtStr );
906 for (FormulaToken*
p = aIter.First();
p;
p = aIter.Next())
979 switch(
rStrm.GetRecId() )
982 mxFramePos = std::make_shared<XclImpChFramePos>();
986 mxFont = std::make_shared<XclImpChFont>();
1083 mxSrcLink->ConvertNumFmt( rPropSet, bPercent );
1097 bool bShowCateg = !bShowNone &&
::get_flag( nShowFlags, SHOWANYCATEG );
1098 bool bShowPercent = !bShowNone &&
::get_flag( nShowFlags, SHOWANYPERCENT );
1099 bool bShowValue = !bShowNone &&
::get_flag( nShowFlags, SHOWANYVALUE );
1100 bool bShowBubble = !bShowNone &&
::get_flag( nShowFlags, SHOWANYBUBBLE );
1104 bShowValue = bShowBubble;
1107 bool bShowAny = bShowValue || bShowPercent || bShowCateg;
1111 cssc2::DataPointLabel aPointLabel( bShowValue, bShowPercent, bShowCateg, bShowSymbol,
false,
false );
1114 if( aSep.isEmpty() )
1125 using namespace cssc::DataLabelPlacement;
1140 sal_Int32 nGlobalPlacement = 0;
1143 nPlacement = nGlobalPlacement;
1147 if( bShowPercent || bShowValue )
1153 Reference< XTitle > xTitle;
1157 Sequence< Reference< XFormattedString > > aStringSeq(
1159 if( aStringSeq.hasElements() )
1166 xTitle->setText( aStringSeq );
1183 "XclImpChText::ConvertTitlePosition - unexpected frame position mode" );
1207 Reference< XShape > xTitleShape(
GetTitleShape( rTitleKey ), UNO_SET_THROW );
1209 css::awt::Size aTitleSize = xTitleShape->getSize();
1213 double fSin = fabs( sin( fRad ) );
1215 css::awt::Point aTitlePos(
1219 if( nScRot > 18000_deg100 )
1220 aTitlePos.X +=
static_cast< sal_Int32
>( fSin * aTitleSize.Height + 0.5 );
1222 else if( nScRot > 0_deg100 )
1223 aTitlePos.Y +=
static_cast< sal_Int32
>( fSin * aTitleSize.Width + 0.5 );
1225 xTitleShape->setPosition( aTitlePos );
1240 nSepLen =
rStrm.ReaduInt16();
1251 rxText->UpdateText( xDefText );
1254 rxText = std::make_shared<XclImpChText>(*xDefText);
1264 if( !rxTitle->HasString() )
1265 rxTitle->SetString( rAutoTitle );
1266 if( rxTitle->HasString() )
1267 rxTitle->UpdateText(pDefText);
1296 ScfPropertySet& rPropSet, sal_uInt16 nFormatIdx, sal_Int16 nLineWeight )
const
1304 switch( nLineWeight )
1340 double fApiDist = ::std::min< double >(
mnPieDist / 100.0, 1.0 );
1362 using namespace ::com::sun::star::chart2::DataPointGeometry3D;
1388 xLabel = std::make_shared<XclImpChText>( *pParent );
1390 xLabel = std::make_shared<XclImpChText>(
GetChRoot() );
1391 xLabel->UpdateDataLabel(
1413 switch(
rStrm.GetRecId() )
1416 mxMarkerFmt = std::make_shared<XclImpChMarkerFormat>();
1420 mxPieFmt = std::make_shared<XclImpChPieFormat>();
1424 mxSeriesFmt = std::make_shared<XclImpChSeriesFormat>();
1428 mx3dDataFmt = std::make_shared<XclImpCh3dDataFormat>();
1481 mxAreaFmt = std::make_shared<XclImpChAreaFormat>();
1483 mxMarkerFmt = std::make_shared<XclImpChMarkerFormat>();
1545 rPropSet.
SetProperty< sal_Int32 >(
"BorderWidth", 0 );
1555 mxLabel->ConvertDataLabel( rPropSet, rTypeInfo, pGlobalPropSet );
1603 mxLabel->UpdateText(pDefText);
1627 Reference< XRegressionCurve > xRegCurve;
1666 if (bForceIntercept)
1679 pLabel->ConvertFont( aLabelProp );
1680 pLabel->ConvertFrame( aLabelProp );
1681 pLabel->ConvertNumFmt( aLabelProp,
false );
1716 Reference< XPropertySet > xErrorBar;
1728 switch( pPrimaryBar->maData.mnSourceType )
1751 Reference< XDataSink > xDataSink( xErrorBar, UNO_QUERY );
1752 if( xDataSink.is() )
1755 ::std::vector< Reference< XLabeledDataSequence > > aLabeledSeqVec;
1760 if( xValueSeq.is() )
1761 aLabeledSeqVec.push_back( xValueSeq );
1767 if( xValueSeq.is() )
1768 aLabeledSeqVec.push_back( xValueSeq );
1771 if( aLabeledSeqVec.empty() )
1783 if( pPrimaryBar->mxDataFmt && xErrorBar.is() )
1793 mnSeriesIdx( nSeriesIdx ),
1795 mbLabelDeleted( false )
1814 switch(
rStrm.GetRecId() )
1845 sal_uInt16 nPointIdx = xDataFmt->GetPointPos().mnPointIdx;
1858 pTypeGroup->SetUsedFormatIndex(xDataFmt->GetFormatIdx());
1867 XclImpChDataFormatMap::iterator itr =
maPointFmts.lower_bound(nPointIdx);
1871 itr =
maPointFmts.insert(itr, XclImpChDataFormatMap::value_type(nPointIdx, xDataFmt));
1880 sal_uInt16 nPointIdx = xLabel->GetPointPos().mnPointIdx;
1885 XclImpChTextMap::iterator itr =
maLabels.lower_bound(nPointIdx);
1889 itr =
maLabels.insert(itr, XclImpChTextMap::value_type(nPointIdx, xLabel));
1895 OSL_ENSURE( !
HasParentSeries(),
"XclImpChSeries::AddChildSeries - not allowed for child series" );
1896 if (&rSeries ==
this)
1898 SAL_WARN(
"sc.filter",
"self add attempt");
1908 m_ErrorBars.insert(std::make_pair(it.first, std::make_unique<XclImpChSerErrorBar>(*it.second)));
1928 xLabel = itr->second;
1940 trendLine->SetTrendlineName(
mxTitleLink->GetString());
1956 sal_uInt16 nFormatIdx = pTypeGroup->PopUnusedFormatIndex();
1963 sal_uInt16 nPointIdx =
label.first;
1973 XclImpChDataFormatMap::iterator itr =
maPointFmts.lower_bound(nPointIdx);
1980 itr, XclImpChDataFormatMap::value_type(nPointIdx,
p));
1984 p->SetDataLabel(
label.second);
1990 mxSeriesFmt->UpdateSeriesFormat( pTypeGroup->GetTypeInfo(), pTypeGroup->GetGroupFormat().get() );
1994 pointFormat.second->UpdatePointFormat( pTypeGroup->GetTypeInfo(),
mxSeriesFmt.get() );
2001ScfPropertySet lclGetPointPropSet( Reference< XDataSeries >
const & xDataSeries, sal_uInt16 nPointIdx )
2006 aPropSet.
Set( xDataSeries->getDataPointByIndex(
static_cast< sal_Int32
>( nPointIdx ) ) );
2010 OSL_FAIL(
"lclGetPointPropSet - no data point property set" );
2024 return lclCreateLabeledDataSequence(
mxCategLink, rCategRole );
2029 Reference< XDataSeries > xDataSeries;
2038 Reference< XDataSink > xDataSink( xDataSeries, UNO_QUERY );
2039 if( xDataSink.is() )
2042 ::std::vector< Reference< XLabeledDataSequence > > aLabeledSeqVec;
2044 Reference< XLabeledDataSequence > xYValueSeq =
2046 if( xYValueSeq.is() )
2047 aLabeledSeqVec.push_back( xYValueSeq );
2051 Reference< XLabeledDataSequence > xXValueSeq =
2053 if( xXValueSeq.is() )
2054 aLabeledSeqVec.push_back( xXValueSeq );
2058 Reference< XLabeledDataSequence > xSizeValueSeq =
2060 if( xSizeValueSeq.is() )
2061 aLabeledSeqVec.push_back( xSizeValueSeq );
2065 if( !aLabeledSeqVec.empty() )
2082 if( xErrorBarX.is() )
2085 if( xErrorBarY.is() )
2094 for( sal_uInt16 nPointIdx = 0, nPointCount =
mxValueLink->GetCellCount(); nPointIdx < nPointCount; ++nPointIdx )
2096 ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, nPointIdx );
2104 ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, pointFormat.first );
2105 pointFormat.second->Convert( aPointProp, rTypeInfo, &aSeriesProp );
2126 xSrcLink->ReadChSourceLink(
rStrm );
2127 switch( xSrcLink->GetDestType() )
2155 xTrendLine->ReadChSerTrendLine(
rStrm );
2162 pErrorBar->ReadChSerErrorBar(
rStrm);
2163 sal_uInt8 nBarType = pErrorBar->GetBarType();
2164 m_ErrorBars.insert(std::make_pair(nBarType, std::move(pErrorBar)));
2176 Reference< XRegressionCurveContainer > xRegCurveCont( xDataSeries, UNO_QUERY );
2177 if( !xRegCurveCont.is() )
2184 Reference< XRegressionCurve > xRegCurve = trendLine->CreateRegressionCurve();
2185 if( xRegCurve.is() )
2187 xRegCurveCont->addRegressionCurve( xRegCurve );
2192 OSL_FAIL(
"XclImpChSeries::ConvertTrendLines - cannot add regression curve" );
2199 XclImpChSerErrorBarMap::const_iterator itrPosBar =
m_ErrorBars.find(nPosBarId);
2200 XclImpChSerErrorBarMap::const_iterator itrNegBar =
m_ErrorBars.find(nNegBarId);
2201 XclImpChSerErrorBarMap::const_iterator itrEnd =
m_ErrorBars.end();
2202 if (itrPosBar == itrEnd || itrNegBar == itrEnd)
2203 return Reference<XPropertySet>();
2211 sal_uInt16 nFlags =
rStrm.ReaduInt16();
2226 sal_uInt16 nRecId =
rStrm.GetRecId();
2227 bool bKnownType =
true;
2322 bool bStacked =
false;
2342 bool bPercent =
false;
2370 Reference< XCoordinateSystem > xCoordSystem;
2374 xCoordSystem = css::chart2::PolarCoordinateSystem3d::create(xContext);
2376 xCoordSystem = css::chart2::PolarCoordinateSystem2d::create(xContext);
2381 xCoordSystem = css::chart2::CartesianCoordinateSystem3d::create(xContext);
2383 xCoordSystem = css::chart2::CartesianCoordinateSystem2d::create(xContext);
2393 return xCoordSystem;
2446 namespace cssd = ::com::sun::star::drawing;
2451 sal_Int32 nRotationY = 0;
2452 sal_Int32 nRotationX = 0;
2453 sal_Int32 nPerspective = 15;
2454 bool bRightAngled =
false;
2455 cssd::ProjectionMode eProjMode = cssd::ProjectionMode_PERSPECTIVE;
2456 Color aAmbientColor, aLightColor;
2465 nPerspective = limit_cast< sal_Int32, sal_Int32 >(
maData.
mnEyeDist, 0, 100 );
2469 bool bParallel = bRightAngled || (nPerspective == 0);
2470 eProjMode = bParallel ? cssd::ProjectionMode_PARALLEL : cssd::ProjectionMode_PERSPECTIVE;
2472 aAmbientColor =
Color( 204, 204, 204 );
2474 aLightColor =
Color( 102, 102, 102 );
2482 nRotationX = limit_cast< sal_Int32, sal_Int32 >(
maData.
mnElevation, 10, 80 ) - 90;
2484 nPerspective = limit_cast< sal_Int32, sal_Int32 >(
maData.
mnEyeDist, 0, 100 );
2486 bRightAngled =
false;
2487 eProjMode = cssd::ProjectionMode_PARALLEL;
2489 aAmbientColor =
Color( 179, 179, 179 );
2491 aLightColor =
Color( 76, 76, 76 );
2535 switch(
rStrm.GetRecId() )
2538 mxFramePos = std::make_shared<XclImpChFramePos>();
2571 mxFrame->Convert( aLegendProp );
2574 mxText->ConvertFont( aLegendProp );
2580 cssc2::LegendPosition eApiPos = cssc2::LegendPosition_LINE_END;
2581 cssc::ChartLegendExpansion eApiExpand = cssc::ChartLegendExpansion_CUSTOM;
2585 eApiPos = cssc2::LegendPosition_LINE_START;
2586 eApiExpand = cssc::ChartLegendExpansion_HIGH;
2591 eApiPos = cssc2::LegendPosition_LINE_END;
2592 eApiExpand = cssc::ChartLegendExpansion_HIGH;
2595 eApiPos = cssc2::LegendPosition_PAGE_START;
2596 eApiExpand = cssc::ChartLegendExpansion_WIDE;
2599 eApiPos = cssc2::LegendPosition_PAGE_END;
2600 eApiExpand = cssc::ChartLegendExpansion_WIDE;
2614 RelativePosition aRelPos(
2617 css::drawing::Alignment_TOP_LEFT );
2623 eApiPos = cssc2::LegendPosition_LINE_END;
2632 eApiExpand = cssc::ChartLegendExpansion_CUSTOM;
2642 cssc::ChartLegendExpansion_HIGH, cssc::ChartLegendExpansion_WIDE );
2652 mnDropBar( nDropBar ),
2692 switch(
rStrm.GetRecId() )
2695 mxChart3d = std::make_shared<XclImpChChart3d>();
2757 OSL_ENSURE( !
maUnusedFormats.empty(),
"XclImpChTypeGroup::PopUnusedFormatIndex - no more format indexes available" );
2777 return (aConLine !=
m_ChartLines.end() && aConLine->second.HasLine());
2801 OSL_ENSURE(
IsValidGroup(),
"XclImpChTypeGroup::CreateChartType - type group without series" );
2825 Reference< XLabeledDataSequence > xLabeledSeq;
2837 p->ReadRecordGroup(
rStrm);
2843 p->ReadRecordGroup(
rStrm);
2850 sal_uInt16 nLineId =
rStrm.ReaduInt16();
2863 xDataFmt->ReadRecordGroup(
rStrm );
2871 Reference< XDataSeries >
const & xSeries, sal_Int32 nApiAxesSetIdx )
const
2873 Reference< XDataSeriesContainer > xSeriesCont( xChartType, UNO_QUERY );
2874 if( !(xSeriesCont.is() && xSeries.is()) )
2878 cssc2::StackingDirection eStacking = cssc2::StackingDirection_NO_STACKING;
2881 eStacking = cssc2::StackingDirection_Y_STACKING;
2883 eStacking = cssc2::StackingDirection_Z_STACKING;
2893 xSeriesCont->addDataSeries( xSeries );
2897 OSL_FAIL(
"XclImpChTypeGroup::InsertDataSeries - cannot add data series" );
2903 bool bSpline =
false;
2906 Reference< XDataSeries > xDataSeries = elem->CreateDataSeries();
2908 bSpline |= elem->HasSpline();
2922 Reference< XDataSink > xDataSink( xDataSeries, UNO_QUERY );
2923 if( !xDataSink.is() )
2927 ::std::vector< Reference< XLabeledDataSequence > > aLabeledSeqVec;
2928 OSL_ENSURE(
maSeries.size() >= 3,
"XclImpChTypeGroup::CreateChartType - missing stock series" );
2929 int nRoleIdx = (
maSeries.size() == 3) ? 1 : 0;
2930 for(
const auto& rxSeries :
maSeries )
2941 Reference< XLabeledDataSequence > xDataSeq = rxSeries->CreateValueSequence( aRole );
2943 aLabeledSeqVec.push_back( xDataSeq );
2966 Reference<XPropertySet> xWhitePropSet;
2970 itr->second->Convert(
GetChRoot(), aBarProp);
2974 Reference<XPropertySet> xBlackPropSet;
2978 itr->second->Convert(
GetChRoot(), aBarProp);
3030 cssc::TimeIncrement& rTimeIncrement = rScaleData.TimeIncrement;
3035 rTimeIncrement.TimeResolution.clear();
3051 rScaleData.Orientation = bReverse ? cssc2::AxisOrientation_REVERSE : cssc2::AxisOrientation_MATHEMATICAL;
3063 cssc::ChartAxisPosition eAxisPos = bMaxCross ? cssc::ChartAxisPosition_END : cssc::ChartAxisPosition_VALUE;
3119 IncrementData& rIncrementData = rScaleData.IncrementData;
3120 lclSetValueOrClearAny( rIncrementData.Distance,
maData.
mfMajorStep, bAutoMajor );
3122 Sequence< SubIncrement >& rSubIncrementSeq = rIncrementData.SubIncrements;
3123 rSubIncrementSeq.realloc( 1 );
3124 Any& rIntervalCount = rSubIncrementSeq.getArray()[ 0 ].IntervalCount;
3125 rIntervalCount.clear();
3129 rIntervalCount <<= sal_Int32( 9 );
3134 if( (1.0 <= fCount) && (fCount < 1001.0) )
3135 rIntervalCount <<= static_cast< sal_Int32 >( fCount );
3137 else if( bAutoMinor )
3140 rIntervalCount <<= static_cast< sal_Int32 >( 5 );
3145 rScaleData.Orientation = bReverse ? cssc2::AxisOrientation_REVERSE : cssc2::AxisOrientation_MATHEMATICAL;
3155 cssc::ChartAxisPosition eAxisPos = bMaxCross ? cssc::ChartAxisPosition_END : cssc::ChartAxisPosition_VALUE;
3160 if( bLogScale ) fCrossingPos = pow( 10.0, fCrossingPos );
3166sal_Int32 lclGetApiTickmarks(
sal_uInt8 nXclTickPos )
3168 using namespace ::com::sun::star::chart2::TickmarkStyle;
3172 return nApiTickmarks;
3175cssc::ChartAxisLabelPosition lclGetApiLabelPosition(
sal_Int8 nXclLabelPos )
3178 switch( nXclLabelPos )
3180 case EXC_CHTICK_LOW:
return ChartAxisLabelPosition_OUTSIDE_START;
3184 return ChartAxisLabelPosition_NEAR_AXIS;
3258 switch(
rStrm.GetRecId() )
3281 mxFont = std::make_shared<XclImpChFont>();
3348 mxTick->Convert( aAxisProp );
3366 bool bLinkNumberFmtToSource =
true;
3373 bLinkNumberFmtToSource =
false;
3383 ScaleData aScaleData = xAxis->getScaleData();
3390 aScaleData.AxisType = cssc2::AxisType::CATEGORY;
3394 aScaleData.AxisType = cssc2::AxisType::REALNUMBER;
3397 aScaleData.AxisType = rTypeGroup.
IsPercent() ?
3401 aScaleData.AxisType = cssc2::AxisType::SERIES;
3405 switch( aScaleData.AxisType )
3407 case cssc2::AxisType::CATEGORY:
3408 case cssc2::AxisType::SERIES:
3413 SAL_WARN(
"sc.filter",
"missing LabelRange");
3415 case cssc2::AxisType::REALNUMBER:
3421 SAL_WARN(
"sc.filter",
"missing ValueRange");
3424 OSL_FAIL(
"XclImpChAxis::CreateAxis - unknown axis type" );
3429 aScaleData.Origin.clear();
3432 xAxis->setScaleData( aScaleData );
3442 Sequence< Reference< XPropertySet > > aSubGridPropSeq = xAxis->getSubGridProperties();
3443 if( aSubGridPropSeq.hasElements() )
3473 SAL_WARN(
"sc.filter",
"missing LabelRange");
3480 SAL_WARN(
"sc.filter",
"missing ValueRange");
3487 bool bWallFrame =
false;
3488 switch(
rStrm.ReaduInt16() )
3498 bool bLoop = pxLineFmt || bWallFrame;
3501 sal_uInt16 nRecId =
rStrm.GetNextRecId();
3505 &&
rStrm.StartNextRecord();
3511 (*pxLineFmt)->ReadChLineFormat(
rStrm );
3550 switch(
rStrm.GetRecId() )
3553 mxFramePos = std::make_shared<XclImpChFramePos>();
3580 xTypeGroup->Finalize();
3581 if( xTypeGroup->IsValidGroup() )
3582 aValidGroups.emplace(typeGroup.first, xTypeGroup);
3606 OUString aAutoTitle(
ScResId(STR_AXISTITLE));
3607 lclFinalizeTitle(
mxXAxisTitle, pDefText, aAutoTitle );
3608 lclFinalizeTitle(
mxYAxisTitle, pDefText, aAutoTitle );
3609 lclFinalizeTitle(
mxZAxisTitle, pDefText, aAutoTitle );
3618 XclImpChTypeGroupMap::const_iterator itr =
maTypeGroups.find(nGroupIdx);
3635 xLegend = rEntry.second->GetLegend();
3658 if( !xCoordSystem.is() )
3664 Reference< XCoordinateSystemContainer > xCoordSystemCont( xDiagram, UNO_QUERY_THROW );
3665 Sequence< Reference< XCoordinateSystem > > aCoordSystems = xCoordSystemCont->getCoordinateSystems();
3666 if( !aCoordSystems.hasElements() )
3667 xCoordSystemCont->addCoordinateSystem( xCoordSystem );
3671 OSL_FAIL(
"XclImpChAxesSet::Convert - cannot insert coordinate system" );
3693 xAxis->ReadRecordGroup(
rStrm );
3695 switch( xAxis->GetAxisType() )
3706 xText->ReadRecordGroup(
rStrm );
3708 switch( xText->GetLinkTarget() )
3728 xTypeGroup->ReadRecordGroup(
rStrm );
3729 sal_uInt16 nGroupIdx = xTypeGroup->GetGroupIdx();
3730 XclImpChTypeGroupMap::iterator itr =
maTypeGroups.lower_bound(nGroupIdx);
3733 itr->second = xTypeGroup;
3736 itr, XclImpChTypeGroupMap::value_type(nGroupIdx, xTypeGroup));
3741 Reference< XCoordinateSystem > xCoordSystem;
3746 Reference< XCoordinateSystemContainer > xCoordSystemCont( xDiagram, UNO_QUERY );
3747 if( xCoordSystemCont.is() )
3749 Sequence< Reference< XCoordinateSystem > > aCoordSystems = xCoordSystemCont->getCoordinateSystems();
3750 OSL_ENSURE( aCoordSystems.getLength() <= 1,
"XclImpChAxesSet::CreateCoordSystem - too many existing coordinate systems" );
3751 if( aCoordSystems.hasElements() )
3752 xCoordSystem = aCoordSystems[ 0 ];
3756 if( !xCoordSystem.is() )
3761 xCoordSystem = xTypeGroup->CreateCoordSystem();
3764 xTypeGroup->ConvertChart3d( aDiaProp );
3770 Reference< XChartTypeContainer > xChartTypeCont( xCoordSystem, UNO_QUERY );
3771 if( xChartTypeCont.is() )
3778 Reference< XChartType > xChartType = rEntry.second->CreateChartType( xDiagram, nApiAxesSetIdx );
3779 if( xChartType.is() )
3780 xChartTypeCont->addChartType( xChartType );
3784 OSL_FAIL(
"XclImpChAxesSet::CreateCoordSystem - cannot add chart type" );
3789 return xCoordSystem;
3794 Reference< XCoordinateSystem >
const & xCoordSystem,
const XclImpChAxis* pCrossingAxis )
const
3800 Reference< XAxis > xAxis =
CreateAxis( *xChAxis, pCrossingAxis );
3805 if( xChAxisTitle )
try
3807 Reference< XTitled > xTitled( xAxis, UNO_QUERY_THROW );
3808 Reference< XTitle > xTitle( xChAxisTitle->CreateTitle(), UNO_SET_THROW );
3809 xTitled->setTitleObject( xTitle );
3813 OSL_FAIL(
"XclImpChAxesSet::ConvertAxis - cannot set axis title" );
3819 sal_Int32 nApiAxisDim = xChAxis->GetApiAxisDimension();
3821 xCoordSystem->setAxisByDimension( nApiAxisDim, xAxis, nApiAxesSetIdx );
3825 OSL_FAIL(
"XclImpChAxesSet::ConvertAxis - cannot set axis" );
3831 Reference< XAxis > xAxis;
3833 xAxis = rChAxis.
CreateAxis( *pTypeGroup, pCrossingAxis );
3840 if( xTypeGroup && xTypeGroup->Is3dWallChart() )
3846 mxXAxis->ConvertWall( aWallProp );
3851 mxYAxis->ConvertWall( aFloorProp );
3883 switch(
rStrm.GetRecId() )
3912 sal_uInt16 nTextId =
rStrm.ReaduInt16();
3916 pText->ReadRecordGroup(
rStrm);
3917 m_DefTexts.insert(std::make_pair(nTextId, std::move(pText)));
3924 xDataFmt->ReadRecordGroup(
rStrm );
3928 XclImpChDataFormatMap::iterator itr =
maDataFmts.lower_bound(rPos);
3932 itr, XclImpChDataFormatMap::value_type(rPos, xDataFmt));
3943 mxFrame->UpdateObjFrame( rLineData, rFillData );
3949 if( !xTypeGroup ) xTypeGroup =
mxSecnAxesSet->GetTypeGroup( nGroupIdx );
3950 if( !xTypeGroup ) xTypeGroup =
mxPrimAxesSet->GetFirstTypeGroup();
3967 XclImpChTextMap::const_iterator
const itr =
m_DefTexts.find(nDefTextId);
3968 return itr ==
m_DefTexts.end() ? nullptr : itr->second.get();
3987 mxFrame->Convert( aFrameProp );
3993 Reference< XTitled > xTitled( xChartDoc, UNO_QUERY_THROW );
3994 Reference< XTitle > xTitle(
mxTitle->CreateTitle(), UNO_SET_THROW );
3995 xTitled->setTitleObject( xTitle );
4004 xChartDoc->setFirstDiagram( xDiagram );
4012 xDiagram->setLegend(
mxLegend->CreateLegend() );
4016 Reference< cssc::XChartDocument > xChart1Doc( xChartDoc, UNO_QUERY );
4017 if( xChart1Doc.is() )
4019 Reference< cssc::XDiagram > xDiagram1 = xChart1Doc->getDiagram();
4032 const XclChFramePos& rFramePos = xPlotAreaPos->GetFramePosData();
4035 Reference< cssc::XDiagramPositioning > xPositioning( xDiagram1, UNO_QUERY_THROW );
4040 xPositioning->setDiagramPositionExcludingAxes( aDiagramRect );
4041 else if( pFirstTypeGroup && pFirstTypeGroup->
Is3dChart() )
4042 xPositioning->setDiagramPositionIncludingAxesAndAxisTitles( aDiagramRect );
4044 xPositioning->setDiagramPositionIncludingAxes( aDiagramRect );
4064 if(!pChartCollection)
4067 std::vector< ScTokenRef > aRefTokens;
4068 for(
const auto& rxSeries :
maSeries )
4069 rxSeries->FillAllSourceLinks( aRefTokens );
4070 if( !aRefTokens.empty() )
4072 ::std::unique_ptr< ScChartListener > xListener(
new ScChartListener( rObjName, rDoc, std::move(aRefTokens) ) );
4073 xListener->SetUsed(
true );
4074 xListener->StartListeningTo();
4075 pChartCollection->
insert( xListener.release() );
4081 sal_uInt16 nNewSeriesIdx =
static_cast< sal_uInt16
>(
maSeries.size() );
4083 xSeries->ReadRecordGroup(
rStrm );
4096 xAxesSet->ReadRecordGroup(
rStrm );
4097 switch( xAxesSet->GetAxesSetId() )
4107 xText->ReadRecordGroup(
rStrm );
4108 switch( xText->GetLinkTarget() )
4115 sal_uInt16 nSeriesIdx = xText->GetPointPos().mnSeriesIdx;
4117 maSeries[ nSeriesIdx ]->SetDataLabel( xText );
4149 if( xSeries->HasParentSeries() )
4153 if( xSeries->GetParentIdx() <
maSeries.size() )
4154 maSeries[ xSeries->GetParentIdx() ]->AddChildSeries( *xSeries );
4160 pTypeGroup->AddSeries( xSeries );
4175 for(
const auto& [rPos, rDataFmt] :
maDataFmts )
4177 sal_uInt16 nSeriesIdx = rPos.mnSeriesIdx;
4179 maSeries[ nSeriesIdx ]->SetDataFormat( rDataFmt );
4186 rxSeries->FinalizeDataFormats();
4192 OUString aAutoTitle;
4198 if(
mxTitle || (!aAutoTitle.isEmpty()) )
4202 if( aAutoTitle.isEmpty() )
4203 aAutoTitle =
ScResId(STR_CHARTTITLE);
4220 using namespace cssc::MissingValueTreatment;
4221 sal_Int32 nMissingValues = LEAVE_GAP;
4235 mnScTab( rRoot.GetCurrScTab() ),
4258 Reference< XDrawPageSupplier > xDrawPageSupp( rxModel, UNO_QUERY_THROW );
4259 Reference< XDrawPage > xDrawPage( xDrawPageSupp->getDrawPage(), UNO_SET_THROW );
4260 pSdrPage = ::GetSdrPageFromXDrawPage( xDrawPage );
4268 if( pSdrModel && pSdrPage )
4295 mbOwnTab( bOwnTab ),
4296 mbIsPivotChart( false )
4310 while( bLoop &&
rStrm.StartNextRecord() )
4345 switch(
rStrm.GetRecId() )
4387 mxChartData->UpdateObjFrame( rLineData, rFillData );
4399 Reference< XChartDocument > xChartDoc(
xModel, UNO_QUERY );
4400 if( xChartDoc.is() )
4403 mxChartData->Convert( xChartDoc, rDffConv, rObjName, rChartRect );
bool insert(ScChartListener *pListener)
SC_DLLPUBLIC ScChartListenerCollection * GetChartListenerCollection() const
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
static css::uno::Sequence< Type > VectorToSequence(const ::std::vector< Type > &rVector)
Converts a non-empty vector into a UNO sequence containing elements of the same type.
static css::uno::Reference< css::uno::XInterface > CreateInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > &xFactory, const OUString &rServiceName)
Creates an instance from the passed service name, using the passed service factory.
A wrapper for a UNO property set.
void SetProperty(const OUString &rPropName, const Type &rValue)
Puts the passed value into the property set.
void Set(css::uno::Reference< css::beans::XPropertySet > const &xPropSet)
Sets the passed UNO property set and releases the old UNO property set.
void SetColorProperty(const OUString &rPropName, const Color &rColor)
Puts the passed color into the property set.
void SetStringProperty(const OUString &rPropName, const OUString &rValue)
Puts the passed string into the property set.
void SetBoolProperty(const OUString &rPropName, bool bValue)
Puts the passed Boolean value into the property set.
bool GetProperty(Type &rValue, const OUString &rPropName) const
Gets the specified property from the property set.
void SetAnyProperty(const OUString &rPropName, const css::uno::Any &rValue)
Puts the passed Any into the property set.
const SfxItemPool & GetItemPool() const
SdrModel & getSdrModelFromSdrPage() const
css::uno::Reference< css::frame::XModel3 > GetModel() const
SvStream & ReadDouble(double &rDouble)
SvStream & ReadInt16(sal_Int16 &rInt16)
SvStream & ReadInt32(sal_Int32 &rInt32)
static void WriteMarkerProperties(ScfPropertySet &rPropSet, const XclChMarkerFormat &rMarkerFmt)
Writes all marker properties to the passed property set.
static void WriteRotationProperties(ScfPropertySet &rPropSet, sal_uInt16 nRotation, bool bSupportsStacked)
Writes rotation properties to the passed property set.
void WriteAreaProperties(ScfPropertySet &rPropSet, const XclChAreaFormat &rAreaFmt, XclChPropertyMode ePropMode)
Writes solid area properties to the passed property set.
void WriteEscherProperties(ScfPropertySet &rPropSet, XclChObjectTable &rGradientTable, XclChObjectTable &rBitmapTable, const XclChEscherFormat &rEscherFmt, const XclChPicFormat *pPicFmt, sal_uInt32 nDffFillType, XclChPropertyMode ePropMode)
Writes gradient or bitmap area properties to the passed property set.
void WriteLineProperties(ScfPropertySet &rPropSet, XclChObjectTable &rDashTable, const XclChLineFormat &rLineFmt, XclChPropertyMode ePropMode)
Writes all line properties to the passed property set.
static sal_uInt16 GetSeriesFillAutoColorIdx(sal_uInt16 nFormatIdx)
Returns a palette index for automatic series fill colors.
static sal_uInt16 GetSeriesLineAutoColorIdx(sal_uInt16 nFormatIdx)
Returns a palette index for automatic series line colors.
static sal_uInt8 GetSeriesFillAutoTransp(sal_uInt16 nFormatIdx)
Returns a transparency value for automatic series fill colors.
static sal_uInt16 GetAutoMarkerType(sal_uInt16 nFormatIdx)
Returns an automatic symbol index for the passed format index.
static OUString GetErrorBarValuesRole(sal_uInt8 nBarType)
Returns the role name for a manual data source for error bars.
void ReadChAttachedLabel(XclImpStream &rStrm)
Reads the CHATTACHEDLABEL record (data series/point labels).
XclImpChAttachedLabel(const XclImpChRoot &rRoot)
XclImpChTextRef CreateDataLabel(const XclImpChText *pParent) const
Creates a CHTEXT group for the label.
void ConvertBackground(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Writes all properties of the background area to the passed diagram.
XclImpChTextRef mxXAxisTitle
The Z axis (CHAXIS group).
::std::map< sal_uInt16, XclImpChTypeGroupRef > XclImpChTypeGroupMap
void Convert(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Creates a coordinate system and converts all series and axis settings.
XclImpChAxesSet(const XclImpChRoot &rRoot, sal_uInt16 nAxesSetId)
sal_Int32 GetApiAxesSetIndex() const
Returns the axes set index used by the chart API.
OUString GetSingleSeriesTitle() const
Returns series title, if the axes set contains only one single series.
void ConvertTitlePositions() const
Converts the manual positions of all axis titles.
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem(css::uno::Reference< css::chart2::XDiagram > const &xDiagram) const
Creates a coordinate system that contains all chart types for this axes set.
bool IsValidAxesSet() const
Returns true, if this axes set exists (returns false if this is a dummy object).
void Finalize()
Final processing after reading the entire chart.
XclImpChTextRef mxYAxisTitle
The X axis title (CHTEXT group).
XclImpChAxisRef mxXAxis
Outer plot area position (CHFRAMEPOS record).
XclImpChAxisRef mxZAxis
The Y axis (CHAXIS group).
XclImpChAxisRef mxYAxis
The X axis (CHAXIS group).
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHAXESSET group (called by base class).
void ReadChPlotFrame(XclImpStream &rStrm)
Reads the CHPLOTFRAME record group containing diagram area formatting.
void ReadChAxis(XclImpStream &rStrm)
Reads a CHAXIS record group containing a single axis.
void ReadChText(XclImpStream &rStrm)
Reads a CHTEXT record group containing an axis title.
XclImpChLegendRef GetLegend() const
Looks for a legend in all chart type groups and returns it.
css::uno::Reference< css::chart2::XAxis > CreateAxis(const XclImpChAxis &rChAxis, const XclImpChAxis *pCrossingAxis) const
Creates and returns an API axis object.
void ConvertAxis(XclImpChAxisRef const &xChAxis, XclImpChTextRef const &xChAxisTitle, css::uno::Reference< css::chart2::XCoordinateSystem > const &xCoordSystem, const XclImpChAxis *pCrossingAxis) const
Creates and inserts an axis into the container and registers the coordinate system.
sal_uInt16 GetAxesSetId() const
Returns the index of the axes set (primary/secondary).
XclImpChTextRef mxZAxisTitle
The Y axis title (CHTEXT group).
XclImpChFrameRef mxPlotFrame
The Z axis title (CHTEXT group).
XclImpChFramePosRef mxFramePos
Contents of the CHAXESSET record.
XclImpChTypeGroupRef GetTypeGroup(sal_uInt16 nGroupIdx) const
Returns the specified chart type group.
XclImpChTypeGroupMap maTypeGroups
Plot area (CHPLOTFRAME group).
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHAXESSET record (called by base class).
void ReadChTypeGroup(XclImpStream &rStrm)
Reads a CHTYPEGROUP record group containing chart type and chart settings.
XclImpChTypeGroupRef GetFirstTypeGroup() const
Returns the first chart type group.
Represents the CHAXIS record group describing an entire chart axis.
virtual sal_uInt16 GetFontIndex() const override
Returns the font index for the axis labels.
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHAXIS record (called by base class).
XclImpChFrameRef mxWallFrame
Minor grid line format (CHLINEFORMAT record).
XclImpChValueRangeRef mxValueRange
Category scaling (CHLABELRANGE record).
virtual Color GetFontColor() const override
Returns the font color for the axis labels.
XclImpChFontRef mxFont
Axis ticks (CHTICK record).
void Finalize()
Final processing after reading the entire chart.
void ConvertAxisPosition(ScfPropertySet &rPropSet, const XclImpChTypeGroup &rTypeGroup) const
Converts position settings of this axis at a crossing axis.
XclImpChLineFormatRef mxMinorGrid
Major grid line format (CHLINEFORMAT record).
void ConvertWall(ScfPropertySet &rPropSet) const
Converts and writes 3D wall/floor properties to the passed property set.
sal_uInt16 mnNumFmtIdx
Wall/floor format (sub records of CHFRAME group).
css::uno::Reference< css::chart2::XAxis > CreateAxis(const XclImpChTypeGroup &rTypeGroup, const XclImpChAxis *pCrossingAxis) const
Creates an API axis object.
virtual sal_uInt16 GetRotation() const override
Returns the rotation value for axis labels.
XclImpChAxis(const XclImpChRoot &rRoot, sal_uInt16 nAxisType=EXC_CHAXIS_NONE)
void ReadChAxisLine(XclImpStream &rStrm)
Reads a CHAXISLINE record specifying the target for following line properties.
XclImpChLabelRangeRef mxLabelRange
Contents of the CHAXIS record.
XclImpChLineFormatRef mxMajorGrid
Axis line format (CHLINEFORMAT record).
sal_uInt16 GetAxisType() const
Returns the type of this axis.
XclImpChTickRef mxTick
Value scaling (CHVALUERANGE record).
void CreateWallFrame()
Creates a CHFRAME object and stores it into the mxWallFrame member.
XclImpChLineFormatRef mxAxisLine
Index into font buffer (CHFONT record).
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHAXIS group (called by base class).
void ReadChChart3d(XclImpStream &rStrm)
Reads the CHCHART3D record (properties for 3D charts).
void Convert(ScfPropertySet &rPropSet, bool b3dWallChart) const
Converts and writes the contained data to the passed property set.
Represents the CHCHART record group describing the chart contents.
XclImpChFrameRef mxFrame
All series and point formats (CHDATAFORMAT groups).
XclImpChLegendRef mxLegend
Chart title (CHTEXT group).
XclImpChSeriesVec maSeries
Position of the chart on the sheet (CHCHART record).
XclImpChAxesSetRef mxPrimAxesSet
Default text objects (CHDEFAULTTEXT groups).
XclImpChChart(const XclImpRoot &rRoot)
XclImpChTextRef mxTitle
Secondary axes set (CHAXESSET group).
void FinalizeDataFormats()
Assigns all imported CHDATAFORMAT groups to the respective series.
static std::size_t GetProgressSize()
Returns the number of units on the progress bar needed for the chart.
const XclImpChText * GetDefaultText(XclChTextType eTextType) const
Returns the specified default text.
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHCHART record (called by base class).
XclImpChTextMap m_DefTexts
Chart properties (CHPROPERTIES record).
void Finalize()
Final processing after reading the entire chart data.
bool IsManualPlotArea() const
Returns true, if the plot area has benn moved and/or resized manually.
void ReadChSeries(XclImpStream &rStrm)
Reads a CHSERIES group (data series source and formatting).
XclImpChDataFormatMap maDataFmts
List of series data (CHSERIES groups).
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT group describing a series format or a data point format.
virtual ~XclImpChChart() override
void FinalizeSeries()
Finalizes series list, assigns child series to parent series.
void ReadChAxesSet(XclImpStream &rStrm)
Reads a CHAXESSET group (primary/secondary axes set).
XclImpChAxesSetRef mxSecnAxesSet
Primary axes set (CHAXESSET group).
css::uno::Reference< css::chart2::XDiagram > CreateDiagram() const
Creates and returns a new diagram object and converts global chart settings.
XclChProperties maProps
Chart frame format (CHFRAME group).
void Convert(const css::uno::Reference< css::chart2::XChartDocument > &xChartDoc, XclImpDffConverter &rDffConv, const OUString &rObjName, const tools::Rectangle &rChartRect) const
Converts and writes all properties to the passed chart.
XclImpChTypeGroupRef GetTypeGroup(sal_uInt16 nGroupIdx) const
Returns the specified chart type group.
void ReadChText(XclImpStream &rStrm)
Reads a CHTEXT group (chart title and series/point captions).
void ReadChProperties(XclImpStream &rStrm)
Reads a CHPROPERTIES record (global chart properties).
void FinalizeTitle()
Finalizes chart title, tries to detect title auto-generated from series name.
void ReadChDefaultText(XclImpStream &rStrm)
Reads a CHDEFAULTTEXT group (default text formats).
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHCHART group (called by base class).
Represents the CHDROPBAR record group describing pos/neg bars in line charts.
sal_uInt16 mnBarDist
Drop bar identifier, needed for auto format.
XclImpChDropBar(sal_uInt16 nDropBar)
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHDROPBAR record (called by base class).
void Convert(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet) const
Converts and writes the contained frame data to the passed property set.
virtual Color GetFontColor() const =0
Derived classes return the leading font color for the text object.
virtual sal_uInt16 GetFontIndex() const =0
Derived classes return the leading font index for the text object.
virtual sal_uInt16 GetRotation() const =0
Derived classes return the rotation value for the text object.
virtual ~XclImpChFontBase()
void ConvertFontBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet) const
Converts and writes the contained font settings to the passed property set.
void ConvertRotationBase(ScfPropertySet &rPropSet, bool bSupportsStacked) const
Converts and writes the contained rotation settings to the passed property set.
void ReadChFont(XclImpStream &rStrm)
Reads the CHFONT record (font index).
Base class for record groups containing frame formatting.
void ConvertFrameBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt=false) const
Converts and writes the contained data to the passed property set.
XclImpChAreaFormatRef mxAreaFmt
Line format (CHLINEFORMAT record).
bool IsAutoArea() const
Returns true, if the area format is set to automatic.
bool IsAutoLine() const
Returns true, if the line format is set to automatic.
bool HasLine() const
Returns true, if the line style is set to something visible.
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a frame formatting record (called by base class).
XclImpChFrameBase()
Creates a new frame object without internal formatting objects.
XclImpChLineFormatRef mxLineFmt
void ConvertLineBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN) const
Converts and writes the contained line formatting to the passed property set.
XclImpChEscherFormatRef mxEscherFmt
Area format (CHAREAFORMAT record).
void ConvertAreaBase(const XclImpChRoot &rRoot, ScfPropertySet &rPropSet, XclChObjectType eObjType, sal_uInt16 nFormatIdx=EXC_CHDATAFORMAT_UNKNOWN, bool bUsePicFmt=false) const
Converts and writes the contained area formatting to the passed property set.
sal_Int16 GetLineWeight() const
Returns the line weight used for this frame.
void ReadChFramePos(XclImpStream &rStrm)
Reads the CHFRAMEPOS record (frame position and size).
XclImpChFrame(const XclImpChRoot &rRoot, XclChObjectType eObjType)
Creates a new frame object with specific default formatting.
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHFRAME record (called by base class).
void Convert(ScfPropertySet &rPropSet, bool bUsePicFmt=false) const
Converts and writes the contained data to the passed property set.
XclChObjectType meObjType
Contents of the CHFRAME record.
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
virtual void ReadHeaderRecord(XclImpStream &rStrm)=0
Derived classes implement to read the group header record.
static void SkipBlock(XclImpStream &rStrm)
Helper to skip a CHBEGIN/CHEND block, includes nested blocks.
virtual ~XclImpChGroupBase()
void ReadRecordGroup(XclImpStream &rStrm)
Reads the entire record group.
virtual void ReadSubRecord(XclImpStream &rStrm)=0
Derived classes implement to read a record from the group.
void ReadChLabelRange(XclImpStream &rStrm)
Reads the CHLABELRANGE record (category axis scaling properties).
XclChLabelRange maLabelData
void ConvertAxisPosition(ScfPropertySet &rPropSet, bool b3dChart) const
Converts position settings of this axis at a crossing axis.
void ReadChDateRange(XclImpStream &rStrm)
Reads the CHDATERANGE record (date axis scaling properties).
XclChDateRange maDateData
Contents of the CHLABELRANGE record.
void Convert(ScfPropertySet &rPropSet, css::chart2::ScaleData &rScaleData, bool bMirrorOrient) const
Converts category axis scaling settings.
XclImpChLabelRange(const XclImpChRoot &rRoot)
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHLEGEND record (called by base class).
XclImpChFrameRef mxFrame
Legend text format (CHTEXT group).
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHLEGEND group (called by base class).
void Finalize()
Final processing after reading the entire chart.
XclImpChTextRef mxText
Legend frame position (CHFRAMEPOS record).
XclImpChLegend(const XclImpChRoot &rRoot)
XclImpChFramePosRef mxFramePos
Contents of the CHLEGEND record.
css::uno::Reference< css::chart2::XLegend > CreateLegend() const
Creates a new legend object.
Base class for complex chart classes, provides access to other components of the chart.
void ConvertEscherFormat(ScfPropertySet &rPropSet, const XclChEscherFormat &rEscherFmt, const XclChPicFormat *pPicFmt, sal_uInt32 nDffFillType, XclChPropertyMode ePropMode) const
Writes gradient or bitmap area properties to the passed property set.
virtual ~XclImpChRoot() override
void ConvertAreaFormat(ScfPropertySet &rPropSet, const XclChAreaFormat &rAreaFmt, XclChPropertyMode ePropMode) const
Writes solid area properties to the passed property set.
void InitConversion(const css::uno::Reference< css::chart2::XChartDocument > &xChartDoc, const tools::Rectangle &rChartRect) const
Starts the API chart document conversion.
double CalcRelativeFromChartY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from Excel chart units into a relative position.
sal_Int32 CalcHmmFromChartY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from Excel chart units into 1/100 mm.
void FinishConversion(XclImpDffConverter &rDffConv) const
Finishes the API chart document conversion.
double CalcRelativeFromHmmY(sal_Int32 nPosY) const
Converts the passed vertical coordinate from 1/100 mm into a relative position.
css::uno::Reference< css::drawing::XShape > GetTitleShape(const XclChTextKey &rTitleKey) const
Returns the drawing shape interface of the specified title object.
css::uno::Reference< css::chart2::data::XDataProvider > GetDataProvider() const
Returns the data provider for the chart document.
XclImpChRoot(const XclImpRoot &rRoot, XclImpChChart &rChartData)
sal_Int32 CalcHmmFromChartX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from Excel chart units into 1/100 mm.
XclImpChChart & GetChartData() const
Returns a reference to the parent chart data object.
static void ConvertPieRotation(ScfPropertySet &rPropSet, sal_uInt16 nAngle)
Writes the pie rotation property for the passed angle.
void ConvertLineFormat(ScfPropertySet &rPropSet, const XclChLineFormat &rLineFmt, XclChPropertyMode ePropMode) const
Writes all line properties to the passed property set.
const XclChTypeInfo & GetChartTypeInfo(XclChTypeId eType) const
Returns chart type info for a unique chart type identifier.
Color GetSeriesFillAutoColor(sal_uInt16 nFormatIdx) const
Returns the automatic fill color of filled series.
XclImpChRootDataRef mxChData
double CalcRelativeFromChartX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from Excel chart units into a relative position.
double CalcRelativeFromHmmX(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from 1/100 mm into a relative position.
const XclImpChRoot & GetChRoot() const
Returns this root instance - for code readability in derived classes.
css::awt::Rectangle CalcHmmFromChartRect(const XclChRectangle &rRect) const
Converts the passed rectangle from Excel chart units into 1/100 mm.
void ConvertFont(ScfPropertySet &rPropSet, sal_uInt16 nFontIdx, const Color *pFontColor=nullptr) const
Writes font properties to the passed property set.
const XclChFormatInfo & GetFormatInfo(XclChObjectType eObjType) const
Returns an info struct about auto formatting for the passed object type.
Color GetSeriesLineAutoColor(sal_uInt16 nFormatIdx) const
Returns the automatic line color of linear series.
Color GetFontAutoColor() const
Returns the default text color for charts.
Represents the CHSERERRORBAR record containing settings for error bars.
XclImpChSerErrorBar(const XclImpChRoot &rRoot)
static css::uno::Reference< css::beans::XPropertySet > CreateErrorBar(const XclImpChSerErrorBar *pPosBar, const XclImpChSerErrorBar *pNegBar)
Tries to create an error bar API object from the specified Excel error bars.
void ReadChSerErrorBar(XclImpStream &rStrm)
Reads the CHSERERRORBAR record.
void SetSeriesData(XclImpChSourceLinkRef const &xValueLink, XclImpChDataFormatRef const &xDataFmt)
Sets link and formatting information for the error bars.
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateValueSequence() const
Creates a labeled data sequence object from value data link.
XclImpChDataFormatRef mxDataFmt
Link data for manual error bar values.
XclImpChSourceLinkRef mxValueLink
Contents of the CHSERERRORBAR record.
XclImpChDataFormatRef mxDataFmt
Contents of the CHSERTRENDLINE record.
css::uno::Reference< css::chart2::XRegressionCurve > CreateRegressionCurve() const
Creates an API object representing this trend line.
XclImpChSerTrendLine(const XclImpChRoot &rRoot)
void ReadChSerTrendLine(XclImpStream &rStrm)
Reads the CHSERTRENDLINE record.
Represents the CHSERIES record group describing a data series in a chart.
XclImpChSourceLinkRef mxBubbleLink
Link data for series title.
XclImpChSeries(const XclImpChRoot &rRoot, sal_uInt16 nSeriesIdx)
css::uno::Reference< css::chart2::XDataSeries > CreateDataSeries() const
Creates a data series object with initialized source links.
XclImpChSourceLinkRef mxTitleLink
Link data for series category names.
sal_uInt16 mnGroupIdx
Error bar settings (CHSERERRORBAR records).
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateValueSequence(const OUString &rValueRole) const
Creates a labeled data sequence object from value data link.
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHSERIES group (called by base class).
XclImpChSerErrorBarMap m_ErrorBars
Trend line settings (CHSERTRENDLINE records).
XclImpChDataFormatRef CreateDataFormat(sal_uInt16 nPointIdx, sal_uInt16 nFormatIdx)
Creates a new CHDATAFORMAT group with the specified point index.
sal_uInt16 mnSeriesIdx
Chart type group (CHTYPEGROUP group) this series is assigned to.
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT group containing series and point formatting.
void AddChildSeries(const XclImpChSeries &rSeries)
Adds error bar settings from the passed series to the own series.
bool HasParentSeries() const
Returns true, if the series is child of another series (e.g.
void SetDataLabel(const XclImpChTextRef &xLabel)
Sets a label text (CHTEXT group) attached to a series or data point.
XclImpChSourceLinkRef mxCategLink
Link data for series values.
sal_uInt16 mnParentIdx
0-based series index.
void ReadChSerTrendLine(XclImpStream &rStrm)
Reads a CHSERTRENDLINE record containing trend line settings.
void ReadChSourceLink(XclImpStream &rStrm)
Reads a CHSOURCELINK record.
std::vector< XclImpChSerTrendLineRef > maTrendLines
Data point labels (CHTEXT groups).
void SetDataFormat(const XclImpChDataFormatRef &xDataFmt)
Sets a data point or series format (CHDATAFORMAT group) for this series.
XclImpChTextMap maLabels
CHDATAFORMAT groups for data point formats.
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateCategSequence(const OUString &rCategRole) const
Creates a labeled data sequence object from category data link.
void ReadChLegendException(XclImpStream &rStrm)
void ConvertTrendLines(css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries) const
Converts all trend lines and inserts them into the passed API data series object.
css::uno::Reference< css::beans::XPropertySet > CreateErrorBar(sal_uInt8 nPosBarId, sal_uInt8 nNegBarId) const
Tries to create an error bar API object from the specified Excel error bars.
bool mbLabelDeleted
0-based index of parent series (trend lines and error bars).
void ReadChSerParent(XclImpStream &rStrm)
Reads a CHSERPARENT record specifying the parent series of this series.
void FillAllSourceLinks(::std::vector< ScTokenRef > &rTokens) const
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHSERIES record (called by base class).
XclImpChDataFormatMap maPointFmts
CHDATAFORMAT group for series format.
XclImpChDataFormatRef mxSeriesFmt
Link data for series bubble sizes.
XclImpChSourceLinkRef mxValueLink
Contents of the CHSERIES record.
void FinalizeDataFormats()
Updates missing series formatting by using default formatting from axes sets.
void ReadChSerErrorBar(XclImpStream &rStrm)
Reads a CHSERERRORBAR record containing error bar settings.
void ReadChSourceLink(XclImpStream &rStrm)
Reads the CHSOURCELINK record (link to source data).
void SetTextFormats(XclFormatRunVec &&rFormats)
Sets formatting runs read from a CHFORMATRUNS record.
css::uno::Reference< css::chart2::data::XDataSequence > CreateDataSequence(const OUString &rRole) const
Creates a data sequence containing the link into the Calc document.
void ConvertNumFmt(ScfPropertySet &rPropSet, bool bPercent) const
Converts and writes the contained number format to the passed property set.
std::shared_ptr< ScTokenArray > mxTokenArray
Text data (CHSTRING record).
XclImpChSourceLink(const XclImpChRoot &rRoot)
XclImpStringRef mxString
Contents of the CHSOURCELINK record.
css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > > CreateStringSequence(const XclImpChRoot &rRoot, sal_uInt16 nLeadFontIdx, const Color &rLeadFontColor) const
Creates a sequence of formatted string objects.
void FillSourceLink(::std::vector< ScTokenRef > &rTokens) const
sal_uInt16 GetCellCount() const
Returns the number of data points of this source link.
virtual ~XclImpChSourceLink() override
sal_uInt8 GetLinkType() const
Returns the link type (to worksheet, directly, default, ...).
void SetString(const OUString &rString)
Sets explicit string data for this text object.
Represents the CHTEXT record group containing text object properties.
XclImpChFramePosRef mxFramePos
Formatting runs (CHFORMATRUNS record).
css::uno::Reference< css::chart2::XTitle > CreateTitle() const
Creates a title text object.
XclFormatRunVec maFormats
Link target for this text object.
virtual sal_uInt16 GetRotation() const override
Returns the rotation value for the text object.
XclImpChSourceLinkRef mxSrcLink
Relative text frame position (CHFRAMEPOS record).
XclImpChFrameRef mxFrame
Linked data (CHSOURCELINK with CHSTRING record).
void UpdateText(const XclImpChText *pParentText)
Updates missing parts of this text object from the passed object.
void UpdateDataLabel(bool bCateg, bool bValue, bool bPercent)
Updates display type of this data point label text object.
void ConvertTitlePosition(const XclChTextKey &rTitleKey) const
Converts the manual position of the specified title.
XclChObjectLink maObjLink
Contents of the CHTEXT record.
XclImpChText(const XclImpChRoot &rRoot)
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHTEXT record (called by base class).
void ConvertRotation(ScfPropertySet &rPropSet, bool bSupportsStacked) const
Converts and writes the contained rotation settings to the passed property set.
void ConvertFont(ScfPropertySet &rPropSet) const
Converts and writes the contained font settings to the passed property set.
void ConvertDataLabel(ScfPropertySet &rPropSet, const XclChTypeInfo &rTypeInfo, const ScfPropertySet *pGlobalPropSet) const
Converts and writes all contained data to the passed data point label property set.
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHTEXT group (called by base class).
void SetString(const OUString &rString)
Sets explicit string data for this text object.
bool IsDeleted() const
Returns true, if the text object is marked as deleted.
virtual Color GetFontColor() const override
Returns the leading font color for the text object.
XclImpChFontRef mxFont
Text object frame properties (CHFRAME group).
XclChFrLabelPropsRef mxLabelProps
Index into font buffer (CHFONT record).
virtual sal_uInt16 GetFontIndex() const override
Returns the leading font index for the text object.
void ConvertNumFmt(ScfPropertySet &rPropSet, bool bPercent) const
Converts and writes the contained number format to the passed property set.
void ConvertFrame(ScfPropertySet &rPropSet) const
Converts and writes the contained frame data to the passed property set.
void ReadChFrLabelProps(XclImpStream &rStrm)
Reads a CHFRLABELPROPS record.
void Convert(ScfPropertySet &rPropSet) const
Converts and writes the contained data to the passed property set.
void ReadChTick(XclImpStream &rStrm)
Reads the CHTICK record (axis ticks properties).
XclImpChTick(const XclImpChRoot &rRoot)
sal_uInt16 GetRotation() const
Returns the rotation value for the axis labels.
Color GetFontColor() const
Returns the leading font color for the axis labels.
Represents the CHTYPEGROUP record group describing a group of series.
XclImpChType maType
Contents of the CHTYPEGROUP record.
virtual void ReadHeaderRecord(XclImpStream &rStrm) override
Reads the CHTYPEGROUP record (called by base class).
OUString GetSingleSeriesTitle() const
Returns series title, if the chart type group contains only one single series.
void CreateStockSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx) const
Creates all data series of a stock chart.
XclImpChLineFormatMap m_ChartLines
Dropbars (CHDROPBAR group).
XclImpChSeriesRef mxFirstSeries
Series attached to this chart type group (CHSERIES groups).
void ReadChDataFormat(XclImpStream &rStrm)
Reads a CHDATAFORMAT record group (default series format).
virtual void ReadSubRecord(XclImpStream &rStrm) override
Reads a record from the CHTYPEGROUP group (called by base class).
bool HasConnectorLines() const
Returns true, if bars are connected with lines (stacked bar charts only).
bool IsValidGroup() const
Returns true, if this chart type group contains at least one valid series.
bool IsPercent() const
Returns true, if the series in this chart type group are stacked on each other as percentage.
void ReadChDropBar(XclImpStream &rStrm)
Reads a CHDROPBAR record group.
void AddSeries(XclImpChSeriesRef const &xSeries)
Inserts a series attached to this chart type group.
bool HasVarPointFormat() const
Returns true, if points of a series show varying automatic area format.
sal_uInt16 PopUnusedFormatIndex()
Returns the next unused format index and marks it as used.
const XclChExtTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
std::set< sal_uInt16 > maUnusedFormats
Default format for all series (CHDATAFORMAT group).
void SetUsedFormatIndex(sal_uInt16 nFormatIdx)
Marks the passed format index as used.
XclChExtTypeInfo maTypeInfo
Chart type (e.g. CHBAR, CHLINE, ...).
css::uno::Reference< css::chart2::data::XLabeledDataSequence > CreateCategSequence() const
Creates a labeled data sequence object for axis categories.
XclImpChDataFormatRef mxGroupFmt
Global line formats (CHCHARTLINE group).
XclImpChLegendRef mxLegend
3D settings (CHCHART3D record).
bool Is3dChart() const
Returns true, if the chart is three-dimensional.
XclImpChDropBarMap m_DropBars
Chart legend (CHLEGEND group).
bool HasDropBars() const
Returns true, if the chart type group contains drop bar formats.
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem() const
Creates a coordinate system according to the contained chart type.
void CreateDataSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx) const
Creates all data series of any chart type except stock charts.
bool HasCategoryLabels() const
Returns true, if category (X axis) labels are enabled (may be disabled in radar charts).
css::uno::Reference< css::chart2::XChartType > CreateChartType(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, sal_Int32 nApiAxesSetIdx) const
Creates and returns an object that represents the contained chart type.
void InsertDataSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, css::uno::Reference< css::chart2::XDataSeries > const &xSeries, sal_Int32 nApiAxesSetIdx) const
Inserts the passed series into the chart type.
bool Is3dDeepChart() const
Returns true, if the series in this chart type group are ordered on the Z axis.
void ReadChChartLine(XclImpStream &rStrm)
Reads a CHCHARTLINE record group.
XclImpChTypeGroup(const XclImpChRoot &rRoot)
XclImpChChart3dRef mxChart3d
First series in this chart type group (CHSERIES groups).
void Finalize()
Final processing after reading the entire chart.
bool Is3dWallChart() const
Returns true, if chart type supports wall and floor format in 3d mode.
XclImpChSeriesVec maSeries
Extended chart type info.
void ConvertChart3d(ScfPropertySet &rPropSet) const
Converts and writes all 3D settings to the passed diagram.
css::uno::Reference< css::chart2::XChartType > CreateChartType(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, bool b3dChart) const
Creates and returns an object that represents the contained chart type.
css::uno::Reference< css::chart2::XCoordinateSystem > CreateCoordSystem(bool b3dChart) const
Creates a coordinate system according to the contained chart type.
sal_uInt16 GetRecId() const
Returns the record identifier of the chart type record.
const XclChTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
void Finalize(bool bStockChart)
Final processing after reading the entire chart.
XclChTypeInfo maTypeInfo
Record identifier for chart type.
XclImpChType(const XclImpChRoot &rRoot)
sal_uInt16 mnRecId
Contents of the chart type record.
bool IsPercent() const
Returns true, if the series in this chart type group are stacked on each other as percentage.
bool IsStacked() const
Returns true, if the series in this chart type group are stacked on each other (no percentage).
bool HasCategoryLabels() const
Returns true, if chart type has category labels enabled (may be disabled in radar charts).
void ReadChType(XclImpStream &rStrm)
Reads a chart type record (e.g.
XclImpChValueRange(const XclImpChRoot &rRoot)
void ConvertAxisPosition(ScfPropertySet &rPropSet) const
Converts position settings of this axis at a crossing axis.
void Convert(css::chart2::ScaleData &rScaleData, bool bMirrorOrient) const
Converts value axis scaling settings.
void ReadChValueRange(XclImpStream &rStrm)
Reads the CHVALUERANGE record (numeric axis scaling properties).
Drawing container of a chart.
bool mbOwnTab
Index of the sheet that contains the chart.
tools::Rectangle maChartRect
virtual tools::Rectangle CalcAnchorRect(const XclObjAnchor &rAnchor, bool bDffAnchor) const override
Calculate the resulting rectangle of the passed anchor.
SCTAB mnScTab
Position and size of the chart shape in 1/100 mm.
XclImpChartDrawing(const XclImpRoot &rRoot, bool bOwnTab)
virtual void OnObjectInserted(const XclImpDrawObjBase &rDrawObj) override
Called whenever an object has been inserted into the draw page.
void ConvertObjects(XclImpDffConverter &rDffConv, const css::uno::Reference< css::frame::XModel > &rxModel, const tools::Rectangle &rChartRect)
Converts all objects and inserts them into the chart drawing page.
bool mbIsPivotChart
true = own sheet; false = embedded object.
void ReadChartSubStream(XclImpStream &rStrm)
Reads the complete chart substream (BOF/EOF block).
virtual ~XclImpChart() override
XclImpChChartRef mxChartData
void Convert(css::uno::Reference< css::frame::XModel > const &xModel, XclImpDffConverter &rDffConv, const OUString &rObjName, const tools::Rectangle &rChartRect) const
Creates the chart object in the passed component.
XclImpChartDrawingRef mxChartDrawing
The chart data (CHCHART group).
std::size_t GetProgressSize() const
Returns the number of units on the progress bar needed for the chart.
bool mbOwnTab
Drawing container for embedded shapes.
XclImpChartDrawing & GetChartDrawing()
Returns (initially creates) the drawing container for embedded shapes.
void ReadChChart(XclImpStream &rStrm)
Reads the CHCHART group (entire chart data).
void UpdateObjFrame(const XclObjLineData &rLineData, const XclObjFillData &rFillData)
Sets formatting from BIFF3-BIFF5 OBJ record, if own formatting is invisible.
XclImpChart(const XclImpRoot &rRoot, bool bOwnTab)
Constructs a new chart object.
This is the central instance for converting binary DFF data into shape objects.
void Progress(std::size_t nDelta=1)
Increase the progress bar by the passed value.
This class reads a DFF property set (msofbtOPT record).
sal_uInt32 GetPropertyValue(sal_uInt16 nPropId) const
Returns the specified property or zero, if not extant.
void FillToItemSet(SfxItemSet &rItemSet) const
Translates the properties and fills the item set.
Base class for drawing objects (OBJ records).
Base class for a container for all objects on a drawing (spreadsheet or embedded chart object).
void ReadObj(XclImpStream &rStrm)
Reads a plain OBJ record (without leading DFF data).
void ImplConvertObjects(XclImpDffConverter &rDffConv, SdrModel &rSdrModel, SdrPage &rSdrPage)
Converts all objects and inserts them into the current drawing page.
void ReadMsoDrawing(XclImpStream &rStrm)
Reads the MSODRAWING or MSODRAWINGSELECTION record.
void WriteFontProperties(ScfPropertySet &rPropSet, XclFontPropSetType eType, sal_uInt16 nFontIdx, const Color *pFontColor=nullptr) const
Writes all font properties to the passed property set.
sal_uInt32 GetScFormat(sal_uInt16 nXclNumFmt) const
Returns the format key with the passed Excel index or NUMBERFORMAT_ENTRY_NOT_FOUND on error.
Contains all page (print) settings for a single sheet.
void ReadPrintHeaders(XclImpStream &rStrm)
Reads a PRINTHEADERS record.
void ReadSetup(XclImpStream &rStrm)
Reads a SETUP record and inserts contained data.
void ReadCenter(XclImpStream &rStrm)
Reads a HCENTER or VCENTER record.
void ReadPrintGridLines(XclImpStream &rStrm)
Reads a PRINTGRIDLINES record.
void ReadMargin(XclImpStream &rStrm)
Reads a ***MARGIN record (reads all 4 margin records).
void ReadImgData(XclImpStream &rStrm)
Reads an IMGDATA record and creates the SvxBrushItem.
void ReadPageBreaks(XclImpStream &rStrm)
Reads a HORIZONTALPAGEBREAKS or VERTICALPAGEBREAKS record.
void ReadHeaderFooter(XclImpStream &rStrm)
Reads a HEADER or FOOTER record.
Stores the default colors for the current BIFF version and the contents of a PALETTE record.
Color GetColor(sal_uInt16 nXclIndex) const
Returns the color for a (non-zero-based) Excel palette entry.
Access to global data from other classes.
void ReadCodeName(XclImpStream &rStrm, bool bGlobals)
Reads the CODENAME record and inserts the codename into the document.
XclImpFontBuffer & GetFontBuffer() const
Returns the font buffer.
XclImpFormulaCompiler & GetFormulaCompiler() const
Returns the formula converter.
XclImpPalette & GetPalette() const
Returns the color buffer.
const XclImpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
XclImpPageSettings & GetPageSettings() const
Returns the page settings of the current sheet.
XclImpTabViewSettings & GetTabViewSettings() const
Returns the view settings of the current sheet.
XclImpNumFmtBuffer & GetNumFmtBuffer() const
Returns the number format buffer.
This class is used to import record oriented streams.
Iterates over formatted string portions.
bool Is() const
Returns true, if the iterator references a valid text portion.
void ReadFormats(XclImpStream &rStrm)
Reads and appends the formatting information (run count and runs) from stream.
Contains all view settings for a single sheet.
void ReadWindow2(XclImpStream &rStrm, bool bChart)
Reads a WINDOW2 record.
void ReadScl(XclImpStream &rStrm)
Reads an SCL record.
void ReadTabBgColor(XclImpStream &rStrm, const XclImpPalette &rPal)
Reads a SHEETEXT record (Tab Color).
SfxObjectShell * GetDocShell() const
Returns the object shell of the Calc document.
XclTracer & GetTracer() const
Returns the filter tracer.
XclChPropSetHelper & GetChartPropSetHelper() const
Returns the property set helper for the chart filters.
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
double GetDoubleFromDateTime(const DateTime &rDateTime) const
Converts a date/time value to a floating-point value.
sal_uInt16 GetBaseYear() const
Returns the base year depending on the current null date (1900 or 1904).
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
SdrPage * GetSdrPage(SCTAB nScTab) const
Returns the drawing layer page of the passed sheet, if present.
Binary representation of an Excel token array.
void TraceChartLegendPosition()
void TraceChartDataTable()
void TraceChartUnKnownType()
void TracePivotChartExists()
void setColor(Color const &rColor)
Color const & getFinalColor() const
#define SAL_WARN(area, stream)
#define DFF_Prop_fillType
bool SC_DLLPUBLIC isRef(const ScTokenRef &pToken)
void SC_DLLPUBLIC join(const ScDocument *pDoc, ::std::vector< ScTokenRef > &rTokens, const ScTokenRef &pToken, const ScAddress &rPos)
Reference< XComponentContext > getProcessComponentContext()
std::shared_ptr< T > make_shared(Args &&... args)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
OUString ScResId(TranslateId aId)
Complex reference (a range) into the sheet.
ScAddress toAbs(const ScSheetLimits &rLimits, const ScAddress &rPos) const
sal_uInt16 mnAxesSetId
Position of the axes set (inner plot area).
sal_uInt16 mnRelDepth
Height relative to width.
sal_uInt16 mnEyeDist
Elevation (-90...+90deg).
sal_uInt16 mnRelHeight
Eye distance to chart (0...100).
sal_uInt16 mnFlags
Space between series.
sal_uInt16 mnDepthGap
Depth relative to width.
sal_Int16 mnElevation
Rotation (0...359deg).
Specifies the position of a data series or data point.
sal_uInt16 mnPointIdx
Series index of series or a data point.
sal_uInt16 mnMajorStep
Maximum value on axis.
sal_uInt16 mnFlags
Crossing position of other axis.
sal_uInt16 mnMinorUnit
Distance for minor grid lines.
sal_uInt16 mnMinorStep
Time unit for major step.
sal_uInt16 mnMajorUnit
Distance for major grid lines.
sal_uInt16 mnMaxDate
Minimum value on axis.
sal_uInt16 mnBaseUnit
Time unit for minor step.
sal_uInt16 mnCross
Time unit for axis values.
Extended chart type information and access functions.
void Set(const XclChTypeInfo &rTypeInfo, bool b3dChart, bool bSpline)
bool IsSeriesFrameFormat() const
Returns true, if this chart type supports area formatting for its series.
XclChObjectType GetSeriesObjectType() const
Returns the correct object type identifier for series and data points.
sal_uInt16 mnTLMode
Object dependent position data.
sal_uInt16 mnBRMode
Top-left position mode.
sal_uInt16 mnFlags
Format type of the frame.
sal_uInt16 mnTickFreq
Frequency of labels.
sal_uInt16 mnFlags
Frequency of ticks.
sal_uInt16 mnLabelFreq
Crossing position of other axis.
sal_uInt8 mnSpacing
Docking mode.
sal_uInt16 mnFlags
Spacing between elements.
sal_uInt8 mnDockMode
Position of the legend.
sal_uInt16 mnTarget
Position of the data point.
XclChDataPointPos maPointPos
sal_uInt8 mnEmptyMode
Additional flags.
sal_Int32 mnY
X position of the object in 1/4000 of chart width.
sal_Int32 mnHeight
Width of the object in 1/4000 of chart width.
sal_Int32 mnWidth
Y position of the object in 1/4000 of chart height.
Base struct for internal root data structs for import and export.
sal_uInt8 mnLineEnd
Type of source values.
sal_uInt8 mnSourceType
Type of the error bar (X/Y).
sal_uInt8 mnBarType
Number of custom error values.
sal_uInt16 mnValueCount
Fixed value for several source types.
double mfForecastBack
Counter to forecast forward.
sal_uInt8 mnShowRSquared
1 = Show equation.
sal_uInt8 mnOrder
Type of the trend line.
sal_uInt8 mnShowEquation
Polynomial order or moving average counter.
double mfForecastFor
Forced intercept.
sal_uInt8 mnLineType
Counter to forecast backward.
sal_uInt16 mnBubbleCount
Number of value entries.
sal_uInt16 mnValueCount
Number of category entries.
sal_uInt16 mnBubbleType
Data type for value entries.
sal_uInt16 mnCategCount
Data type for bubble entries.
sal_uInt16 mnValueType
Data type for category entries.
sal_uInt8 mnLinkType
Type of the destination (title, values, ...).
sal_uInt16 mnNumFmtIdx
Additional flags.
sal_uInt16 mnFlags
Link type (directly, linked to worksheet, ...).
A map key for text and title objects.
sal_uInt8 mnVAlign
Horizontal alignment.
sal_uInt16 mnFlags
Background mode: transparent, opaque.
sal_uInt16 mnRotation
Text object placement and text direction (BIFF8+).
model::ComplexColor maTextComplexColor
Position of the text object.
sal_uInt16 mnBackMode
Vertical alignment.
sal_uInt16 mnFlags2
Additional flags.
sal_uInt16 mnRotation
Additional flags.
sal_uInt8 mnMinor
Type of tick marks of major grid.
sal_uInt8 mnBackMode
Position of labels relative to axis.
sal_uInt8 mnLabelPos
Type of tick marks of minor grid.
model::ComplexColor maTextComplexColor
sal_uInt16 mnFlags
Background mode: transparent, opaque.
sal_uInt8 mnMajor
Tick labels color.
sal_uInt16 mnGroupIdx
Additional flags.
Contains information for a chart type.
bool mbSingleSeriesVis
true = Series with area formatting (3d charts).
XclChVarPointMode meVarPointMode
Service name of the type.
bool mbReverseSeries
true = Series can be stacked on each other.
sal_Int32 mnDefaultLabelPos
Mode for varying point colors.
bool mbPolarCoordSystem
true = 3d type allowed, false = Only 2d type.
bool mbCategoryAxis
true = Only first series visible.
bool mbSwappedAxesSet
true = X axis contains categories.
XclChTypeCateg meTypeCateg
Unique chart type identifier.
const char * mpcServiceName
Record identifier written to the file.
bool mbSupportsStacking
true = X and Y axes are swapped.
sal_uInt16 mnPieHole
Rotation angle of first pie (CHPIE).
sal_uInt16 mnRotation
Gap between bars (CHBAR).
sal_uInt16 mnBubbleType
Bubble size in bubble chart (CHSCATTER).
sal_uInt16 mnBubbleSize
Hole size in donut chart (CHPIE).
sal_Int16 mnGap
Bar overlap width (CHBAR).
sal_uInt16 mnFlags
Bubble type in bubble chart (CHSCATTER).
double mfMax
Minimum value on axis.
double mfMinorStep
Distance for major grid lines.
double mfCross
Distance for minor grid lines.
double mfMajorStep
Maximum value on axis.
sal_uInt16 mnFlags
Crossing position of other axis.
Stores global data needed in various classes of the Chart import filter.
XclImpChChart & mrChartData
XclImpChRootData(XclImpChChart &rChartData)
The chart data object.
Represents the position (anchor) of an object in a Calc document.
sal_uInt32 mnTY
X offset in left column (1/1024 of column width).
sal_uInt32 mnBY
X offset in right column (1/1024 of column width).
sal_uInt16 mnRX
Y offset in top row (1/256 of row height).
Reference< XModel > xModel
::boost::intrusive_ptr< formula::FormulaToken > ScTokenRef
constexpr OUStringLiteral PERCENT(u"Percent")
std::shared_ptr< XclImpChDataFormat > XclImpChDataFormatRef
std::shared_ptr< XclImpChSeries > XclImpChSeriesRef
std::shared_ptr< XclImpChLegend > XclImpChLegendRef
std::shared_ptr< XclImpChFramePos > XclImpChFramePosRef
std::shared_ptr< XclImpChSourceLink > XclImpChSourceLinkRef
std::shared_ptr< XclImpChSerTrendLine > XclImpChSerTrendLineRef
std::shared_ptr< XclImpChAxesSet > XclImpChAxesSetRef
std::shared_ptr< XclImpChText > XclImpChTextRef
std::shared_ptr< XclImpChTypeGroup > XclImpChTypeGroupRef
std::shared_ptr< XclImpChAxis > XclImpChAxisRef
XclImpStream & operator>>(XclImpStream &rStrm, XclImpDffPropSet &rPropSet)
constexpr OUStringLiteral EXC_CHPROP_ROTATIONHORIZONTAL
constexpr OUStringLiteral EXC_CHPROP_SWAPXANDYAXIS
const sal_uInt16 EXC_ID_CHEND
constexpr OUStringLiteral EXC_CHPROP_JAPANESE
const sal_uInt16 EXC_CHTEXT_SHOWSYMBOL
Automatic text color.
constexpr OUStringLiteral EXC_CHPROP_ROLE
const sal_Int16 EXC_CHLINEFORMAT_TRIPLE
const sal_uInt8 EXC_CHTICK_OUTSIDE
constexpr OUStringLiteral EXC_CHPROP_GEOMETRY3D
const sal_uInt16 EXC_CHVALUERANGE_AUTOMAJOR
@ EXC_CHTYPECATEG_LINE
Bar charts (horizontal or vertical).
@ EXC_CHTYPECATEG_PIE
Radar charts (linear or filled).
@ EXC_CHTYPECATEG_RADAR
Line charts (line, area, stock charts).
constexpr OUStringLiteral EXC_CHPROP_ROLE_OPENVALUES
const sal_uInt16 EXC_CHAXISLINE_MAJORGRID
Axis line itself.
const sal_uInt16 EXC_ID_CHPIEFORMAT
const sal_uInt8 EXC_CHSERERR_XPLUS
For internal use only.
const sal_uInt16 EXC_ID_CHSERTRENDLINE
constexpr OUStringLiteral EXC_CHPROP_INCLUDEHIDDENCELLS
constexpr OUStringLiteral EXC_CHPROP_WEIGHT
const sal_uInt16 EXC_ID_CHDEFAULTTEXT
Walls (X, Z axis), floor (Y axis).
const sal_uInt16 EXC_CHDATERANGE_AUTOMIN
const sal_uInt16 EXC_CHLABELRANGE_MAXCROSS
Axis between categories.
const sal_uInt16 EXC_CHTEXT_SHOWCATEG
Show bubble size.
const sal_uInt16 EXC_CHDATERANGE_DAYS
Recognize date/text automatically.
const sal_uInt16 EXC_CHPROPS_USEMANPLOTAREA
Manual plot area mode.
const sal_uInt16 EXC_ID_CHLEGEND
Varied colors for points.
const sal_uInt32 EXC_CHMARKERFORMAT_TRIPLESIZE
Automatic symbol size for double lines.
const sal_uInt16 EXC_CHFRAMEPOS_PARENT
const sal_uInt16 EXC_CHOBJLINK_YAXIS
Chart title.
const sal_uInt16 EXC_ID_CHSERPARENT
const sal_uInt16 EXC_CHAXIS_Y
constexpr OUStringLiteral EXC_CHPROP_DISPLAYLABELS
const sal_uInt16 EXC_ID_CHDATAFORMAT
Invalid series index (for internal use).
constexpr OUStringLiteral EXC_CHPROP_EXTRAPOLATE_BACKWARD
const sal_uInt8 EXC_CHPROPS_EMPTY_ZERO
Skip empty values.
const sal_uInt16 EXC_ID_CHPIEEXT
Sharp top, truncated.
const sal_uInt16 EXC_CHDROPBAR_UP
constexpr OUStringLiteral SERVICE_CHART2_DATASERIES
constexpr OUStringLiteral EXC_CHPROP_BLACKDAY
const sal_Int16 EXC_CHLINEFORMAT_HAIR
const sal_uInt16 EXC_CHTEXT_POS_AXIS
const sal_uInt16 EXC_CHLEGEND_STACKED
constexpr OUStringLiteral EXC_CHPROP_INTERCEPT_VALUE
const sal_uInt16 EXC_ID_CHPICFORMAT
true = 2d wall/gridlines, no floor.
@ EXC_CHVARPOINT_SINGLE
No varied colors supported.
@ EXC_CHVARPOINT_MULTI
Only supported, if type group contains only one series.
const sal_uInt16 EXC_ID_CHAXESSET
constexpr OUStringLiteral EXC_CHPROP_ERRORBARX
const sal_uInt8 EXC_CHTICK_INSIDE
const sal_Int16 EXC_CHLINEFORMAT_SINGLE
const sal_uInt16 EXC_ID_CHFORMAT
const sal_uInt8 EXC_CHPROPS_EMPTY_INTERPOLATE
Plot empty values as zero.
const sal_uInt16 EXC_CHRADAR_AXISLABELS
const sal_uInt16 EXC_CHDROPBAR_DOWN
constexpr OUStringLiteral EXC_CHPROP_ROLE_CATEG
const sal_uInt16 EXC_CHFRLABELPROPS_SHOWVALUE
constexpr OUStringLiteral EXC_CHPROP_ANCHORPOSITION
const sal_uInt16 EXC_CHTEXT_POS_ABOVE
const sal_uInt8 EXC_CHLEGEND_NOTDOCKED
const sal_uInt16 EXC_CHDEFTEXT_AXESSET
Default text for all chart objects.
const sal_uInt16 EXC_CHLINEFORMAT_NONE
constexpr OUStringLiteral EXC_CHPROP_PERSPECTIVE
constexpr OUStringLiteral EXC_CHPROP_WHITEDAY
const sal_uInt16 EXC_CHTEXT_POS_CENTER
const sal_uInt16 EXC_ID_CHMARKERFORMAT
const sal_uInt16 EXC_CHDATAFORMAT_MAXPOINTCOUNT
const sal_uInt16 EXC_CHFRLABELPROPS_SHOWPERCENT
constexpr OUStringLiteral EXC_CHPROP_NUMBERFORMAT_LINKSRC
const sal_Int32 EXC_CHART_TOTALUNITS
API secondary axes set index.
constexpr OUStringLiteral EXC_CHPROP_MAJORTICKS
const sal_uInt16 EXC_ID8_CHPIVOTREF
const sal_uInt16 EXC_CHTEXT_POS_BELOW
const sal_uInt16 EXC_CHTEXT_POS_DEFAULT
Data point caption is category name.
const sal_uInt8 EXC_CHSERERR_XMINUS
const sal_uInt16 EXC_CHTEXT_SHOWBUBBLE
Data point caption as percent.
const sal_uInt16 EXC_CHATTLABEL_SHOWCATEGPERC
const sal_uInt16 EXC_CHDATERANGE_YEARS
constexpr OUStringLiteral EXC_CHPROP_LABEL
const sal_uInt16 EXC_ID_CHLINE
const sal_uInt16 EXC_CHDATERANGE_AUTOMAJOR
const sal_uInt16 EXC_ID_CHDATERANGE
constexpr OUStringLiteral EXC_CHPROP_ROLE_CLOSEVALUES
constexpr OUStringLiteral SERVICE_CHART2_DIAGRAM
const sal_uInt16 EXC_CHBAR_PERCENT
constexpr OUStringLiteral SERVICE_CHART2_ERRORBAR
const sal_uInt16 EXC_CHLINE_STACKED
const sal_uInt8 EXC_CHPROPS_EMPTY_SKIP
Manual plot area layout in CHFRAMEPOS record.
const sal_uInt16 EXC_CHCHARTLINE_HILO
Drop lines.
const sal_uInt16 EXC_CHDATERANGE_MONTHS
constexpr OUStringLiteral EXC_CHPROP_MOVING_AVERAGE_PERIOD
const sal_uInt16 EXC_CHBAR_HORIZONTAL
const sal_uInt16 EXC_ID_CH3DDATAFORMAT
constexpr OUStringLiteral EXC_CHPROP_SHOWFIRST
const sal_Int16 EXC_CHLINEFORMAT_DOUBLE
const sal_uInt8 EXC_CHLEGEND_CORNER
const sal_uInt8 EXC_CHTICK_HIGH
Below diagram/right of diagram.
constexpr OUStringLiteral EXC_CHPROP_D3DSCENEAMBIENTCOLOR
const sal_uInt16 EXC_CHTEXT_POS_LEFT
const sal_uInt16 EXC_ID_CHSTRING
const sal_uInt8 EXC_CHTICK_NEXT
Above diagram/left of diagram.
constexpr OUStringLiteral SERVICE_CHART2_DATAPROVIDER
const sal_uInt16 EXC_ID_CHCHART3D
const sal_uInt16 EXC_CHLINEFORMAT_SOLID
const sal_uInt16 EXC_CHAXIS_X
constexpr OUStringLiteral EXC_CHPROP_D3DSCENEPERSPECTIVE
const sal_uInt16 EXC_CHAXIS_Z
const sal_uInt16 EXC_ID_CHATTACHEDLABEL
const sal_uInt8 EXC_CHSERTREND_POWER
const sal_uInt16 EXC_ID_CHAREA
const sal_uInt16 EXC_ID_CHBAR
const sal_uInt16 EXC_CHCHART3D_REAL3D
const sal_uInt16 EXC_CHTEXT_SHOWCATEGPERC
Automatic text background mode (transparent/opaque).
const sal_uInt16 EXC_CHLINEFORMAT_LIGHTTRANS
constexpr OUStringLiteral SERVICE_CHART2_AXIS
const sal_uInt16 EXC_CHFRLABELPROPS_SHOWCATEG
const sal_uInt16 EXC_CHDATERANGE_AUTOBASE
const sal_uInt32 EXC_CHMARKERFORMAT_DOUBLESIZE
Automatic symbol size for single lines.
const sal_uInt8 EXC_CHSERERR_STDDEV
const sal_uInt16 EXC_ID_CHTEXT
No default text available.
const sal_uInt16 EXC_CHDATAFORMAT_DEFAULT
Maximum number of data points.
constexpr OUStringLiteral EXC_CHPROP_CURVESTYLE
const sal_uInt16 EXC_ID_CHFONT
const sal_uInt8 EXC_CHLEGEND_BOTTOM
const sal_uInt8 EXC_CH3DDATAFORMAT_STRAIGHT
Circular base.
XclChTextType
Enumerates different text box types for default text formatting and title positioning.
@ EXC_CHTEXTTYPE_AXISTITLE
Chart legend.
@ EXC_CHTEXTTYPE_AXISLABEL
Chart axis titles.
@ EXC_CHTEXTTYPE_LEGEND
Chart title.
@ EXC_CHTEXTTYPE_DATALABEL
Chart axis labels.
XclChPropertyMode
Specifies the type of a formatting.
const sal_uInt32 EXC_CHMARKERFORMAT_HAIRSIZE
const sal_uInt16 EXC_CHTEXT_DELETED
Text object is inserted automatically.
const sal_uInt16 EXC_CHOBJLINK_DATA
Category axis (X axis).
const sal_uInt16 EXC_ID_CHSURFACE
const sal_uInt16 EXC_CHTYPEGROUP_VARIEDCOLORS
constexpr OUStringLiteral EXC_CHPROP_ROLE_LABEL
const sal_uInt16 EXC_CHLINE_PERCENT
constexpr OUStringLiteral EXC_CHPROP_D3DSCENELIGHTCOLOR2
const sal_uInt16 EXC_CHATTLABEL_SHOWPERCENT
constexpr OUStringLiteral EXC_CHPROP_POLYNOMIAL_DEGREE
const sal_uInt16 EXC_CHLABELRANGE_REVERSE
Other axis crosses at own maximum.
const sal_uInt16 EXC_ID_CHRADARAREA
const sal_uInt16 EXC_CHAREAFORMAT_AUTO
constexpr OUStringLiteral EXC_CHPROP_RIGHTANGLEDAXES
constexpr OUStringLiteral EXC_CHPROP_RELATIVEPOSITION
constexpr OUStringLiteral EXC_CHPROP_CONNECTBARS
constexpr OUStringLiteral EXC_CHPROP_PERCENTAGENUMFMT
constexpr OUStringLiteral EXC_CHPROP_3DRELATIVEHEIGHT
const sal_uInt16 EXC_CHAXESSET_NONE
constexpr OUStringLiteral EXC_CHPROP_ARRANGEORDER
const sal_uInt16 EXC_CHDATAFORMAT_ALLPOINTS
As point index: unknown format, don't use.
const sal_uInt32 EXC_CHMARKERFORMAT_SINGLESIZE
Automatic symbol size for hair lines.
const sal_uInt16 EXC_CHSERIES_MAXSERIES
const sal_uInt16 EXC_ID_CHFRAMEPOS
const sal_uInt8 EXC_CHSERERR_YMINUS
constexpr OUStringLiteral EXC_CHPROP_NEGATIVEERROR
constexpr OUStringLiteral EXC_CHPROP_GAPWIDTHSEQ
constexpr OUStringLiteral EXC_CHPROP_D3DSCENESHADEMODE
const sal_uInt16 EXC_ID_CHCHARTLINE
const sal_uInt16 EXC_ID_CHFRLABELPROPS
XclChObjectType
Enumerates different object types for specific automatic formatting behaviour.
@ EXC_CHOBJTYPE_LINEARSERIES
Chart legend.
@ EXC_CHOBJTYPE_TEXT
Floor formatting in 3d charts.
@ EXC_CHOBJTYPE_GRIDLINE
Axis line format.
@ EXC_CHOBJTYPE_WALL3D
Wall formatting in 2d charts.
@ EXC_CHOBJTYPE_PLOTFRAME
Chart background.
@ EXC_CHOBJTYPE_HILOLINE
Data point connector line.
@ EXC_CHOBJTYPE_LEGEND
Text boxes (titles, data point labels).
@ EXC_CHOBJTYPE_BACKGROUND
@ EXC_CHOBJTYPE_WHITEDROPBAR
High/low lines in stock charts.
@ EXC_CHOBJTYPE_FILLEDSERIES
Series formatting in a chart supporting line formatting only.
@ EXC_CHOBJTYPE_TRENDLINE
Axis grid line format.
@ EXC_CHOBJTYPE_ERRORBAR
Series trend line.
@ EXC_CHOBJTYPE_AXISLINE
Series formatting in a chart supporting area formatting.
@ EXC_CHOBJTYPE_FLOOR3D
Wall formatting in 3d charts.
@ EXC_CHOBJTYPE_BLACKDROPBAR
White-day drop bar in stock charts.
const sal_uInt16 EXC_CHDATERANGE_DATEAXIS
const sal_uInt16 EXC_CHAXISLINE_MINORGRID
Major grid line.
const sal_uInt16 EXC_CHBAR_STACKED
const sal_uInt8 EXC_CHLEGEND_RIGHT
const sal_uInt16 EXC_ID_CHFRAME
Unit name for axis labels.
constexpr OUStringLiteral EXC_CHPROP_USERINGS
const sal_uInt16 EXC_CHVALUERANGE_AUTOMINOR
const std::size_t EXC_CHART_PROGRESS_SIZE
const sal_uInt8 EXC_CHSRCLINK_WORKSHEET
const sal_uInt16 EXC_ID_CHAREAFORMAT
const sal_uInt16 EXC_CHDATERANGE_AUTOMAX
const sal_uInt16 EXC_CHLINEFORMAT_DASHDOTDOT
constexpr OUStringLiteral EXC_CHPROP_OFFSET
const sal_uInt16 EXC_CHCHARTLINE_CONNECT
Hi-lo lines.
const sal_uInt16 EXC_ID_CHPIE
constexpr OUStringLiteral EXC_CHPROP_ERRORBARY
const sal_uInt16 EXC_CHTEXT_SHOWPERCENT
Data point caption is category and percent.
const sal_uInt8 EXC_CHSRCLINK_BUBBLES
const sal_uInt16 EXC_CHLINEFORMAT_AUTO
const sal_uInt16 EXC_ID_CHCHART
constexpr OUStringLiteral EXC_CHPROP_SHOWCORRELATION
constexpr OUStringLiteral SERVICE_CHART2_TITLE
const sal_uInt16 EXC_ID_CHPLOTFRAME
const sal_uInt16 EXC_CHLINEFORMAT_MEDTRANS
constexpr OUStringLiteral EXC_CHPROP_COLOR
const sal_uInt8 EXC_CHSRCLINK_TITLE
const sal_uInt16 EXC_ID_CHPROPERTIES
constexpr OUStringLiteral EXC_CHPROP_CROSSOVERPOSITION
const sal_uInt16 EXC_CHLINEFORMAT_DOT
const sal_uInt16 EXC_CHDEFTEXT_GLOBAL
Default for numeric data labels (not used?).
constexpr OUStringLiteral EXC_CHPROP_VARYCOLORSBY
XclChTypeId
Enumerates all kinds of different chart types.
@ EXC_CHTYPEID_BUBBLES
Scatter (XY) chart.
@ EXC_CHTYPEID_HORBAR
Vertical bar chart.
@ EXC_CHTYPEID_DONUT
Pie chart.
@ EXC_CHTYPEID_LINE
Horizontal bar chart.
@ EXC_CHTYPEID_PIEEXT
Donut chart.
@ EXC_CHTYPEID_UNKNOWN
Surface chart.
@ EXC_CHTYPEID_STOCK
Area chart.
@ EXC_CHTYPEID_SURFACE
Bubble chart.
@ EXC_CHTYPEID_PIE
Filled radar chart.
@ EXC_CHTYPEID_SCATTER
Pie-to-pie or pie-to-bar chart.
constexpr OUStringLiteral EXC_CHPROP_SHOWLEGENDENTRY
constexpr OUStringLiteral EXC_CHPROP_SHOWHIGHLOW
constexpr OUStringLiteral EXC_CHPROP_STACKINGDIR
const sal_uInt16 EXC_ID_CHLABELRANGE
This bit is always set in BIFF5+.
constexpr OUStringLiteral EXC_CHPROP_CROSSOVERVALUE
const sal_uInt16 EXC_CHATTLABEL_SHOWVALUE
constexpr OUStringLiteral EXC_CHPROP_D3DSCENELIGHTDIR2
const sal_uInt16 EXC_CHOBJLINK_TITLE
No link target.
const sal_uInt16 EXC_CHSERIES_INVALID
Maximum valid series index.
const sal_uInt16 EXC_CHDATERANGE_AUTOMINOR
constexpr OUStringLiteral EXC_CHPROP_EXTRAPOLATE_FORWARD
const sal_uInt16 EXC_CHSERGROUP_NONE
const sal_uInt16 EXC_CHVALUERANGE_AUTOMAX
const sal_uInt8 EXC_CHSERTREND_LOGARITHMIC
const sal_uInt16 EXC_ID_CHUNKNOWN
const sal_uInt16 EXC_ID_CHAXIS
Connector lines in stacked bar charts.
const sal_uInt8 EXC_CHSERERR_STDERR
constexpr OUStringLiteral EXC_CHPROP_ROTATIONVERTICAL
const sal_uInt8 EXC_CH3DDATAFORMAT_RECT
const sal_uInt16 EXC_CHVALUERANGE_LOGSCALE
constexpr OUStringLiteral EXC_CHPROP_ROLE_SIZEVALUES
const sal_uInt16 EXC_ID_CHRADARLINE
const sal_uInt8 EXC_CHSERERR_PERCENT
constexpr OUStringLiteral EXC_CHPROP_EXPANSION
const sal_uInt16 EXC_ID_CHLEGENDEXCEPTION
For internal use.
const sal_uInt16 EXC_CHPROPS_SHOWVISIBLEONLY
Manual series allocation.
constexpr OUStringLiteral EXC_CHPROP_FORCE_INTERCEPT
constexpr OUStringLiteral EXC_CHPROP_CURVENAME
const sal_uInt16 EXC_ID_CHDROPBAR
const sal_uInt8 EXC_CHSRCLINK_CATEGORY
const sal_uInt16 EXC_CHOBJLINK_ZAXIS
Data series/point.
const sal_uInt16 EXC_ID_CHESCHERFORMAT
const sal_uInt16 EXC_CHLINEFORMAT_DASH
const sal_uInt16 EXC_CHVALUERANGE_AUTOMIN
const sal_uInt16 EXC_CHTEXT_POS_AUTO
constexpr OUStringLiteral EXC_CHPROP_MINORTICKS
constexpr OUStringLiteral EXC_CHPROP_SHOWEQUATION
const sal_uInt16 EXC_CHART_AUTOROTATION
const sal_uInt8 EXC_CHSERERR_CUSTOM
const sal_uInt16 EXC_CHOBJLINK_XAXIS
Value axis (Y axis).
const sal_uInt16 EXC_ID_CHOBJECTLINK
constexpr OUStringLiteral EXC_CHPROP_D3DSCENELIGHTON2
const sal_uInt16 EXC_CHVALUERANGE_MAXCROSS
Axis direction reversed.
const sal_uInt16 EXC_CHDATAFORMAT_UNKNOWN
As format index: global default for an axes set.
constexpr OUStringLiteral EXC_CHPROP_RELATIVESIZE
constexpr OUStringLiteral EXC_CHPROP_MISSINGVALUETREATMENT
const sal_uInt16 EXC_CHTEXT_POS_INSIDE
constexpr OUStringLiteral SERVICE_CHART2_LEGEND
const sal_uInt16 EXC_ID_CHTYPEGROUP
const sal_uInt16 EXC_ID_CHSERIESFORMAT
Line end: t-shape.
constexpr OUStringLiteral EXC_CHPROP_OVERLAPSEQ
const sal_uInt16 EXC_CHFRLABELPROPS_SHOWBUBBLE
const sal_uInt16 EXC_ID_CHLINEFORMAT
constexpr OUStringLiteral EXC_CHPROP_ATTAXISINDEX
const sal_uInt16 EXC_CHAXESSET_PRIMARY
const sal_uInt16 EXC_ID_CHVALUERANGE
const sal_uInt8 EXC_CHSERTREND_MOVING_AVG
const sal_uInt16 EXC_CHLINEFORMAT_DASHDOT
const sal_uInt16 EXC_CHLEGENDEXCEPTION_DELETED
constexpr OUStringLiteral EXC_CHPROP_PERCENTDIAGONAL
const sal_uInt16 EXC_ID_CHSERIES
const sal_uInt16 EXC_ID_CHBEGIN
const sal_uInt16 EXC_CHSCATTER_BUBBLES
Bubble width refers to value.
constexpr OUStringLiteral EXC_CHPROP_ERRORBARSTYLE
const sal_uInt8 EXC_CHSERERR_FIXED
const sal_uInt16 EXC_CHATTLABEL_SHOWCATEG
Smoothed line.
const sal_uInt16 EXC_CHTEXT_AUTOCOLOR
constexpr OUStringLiteral EXC_CHPROP_STARTINGANGLE
const sal_uInt16 EXC_CHVALUERANGE_AUTOCROSS
const sal_uInt16 EXC_ID_CHSCATTER
const sal_uInt8 EXC_CHLEGEND_TOP
constexpr OUStringLiteral EXC_CHPROP_POSITIVEERROR
const sal_uInt16 EXC_CHLINEFORMAT_SHOWAXIS
constexpr OUStringLiteral EXC_CHPROP_D3DSCENELIGHTON1
const sal_uInt16 EXC_CHTEXT_POS_RIGHT
const sal_uInt16 EXC_CHVALUERANGE_REVERSE
const sal_uInt16 EXC_ID_CHTICK
For internal use only.
const sal_uInt16 EXC_CHTICK_AUTOROT
const sal_uInt16 EXC_CHDATERANGE_AUTODATE
Other axis crosses at own maximum.
constexpr OUStringLiteral EXC_CHPROP_LABELPLACEMENT
constexpr OUStringLiteral EXC_CHPROP_TEXTOVERLAP
const sal_uInt8 EXC_CHSRCLINK_VALUES
const sal_uInt8 EXC_CHTICK_LOW
constexpr OUStringLiteral EXC_CHPROP_ROLE_YVALUES
const sal_uInt16 EXC_CHAXISLINE_AXISLINE
const sal_uInt16 EXC_CHDATERANGE_AUTOCROSS
const sal_uInt8 EXC_CHSERTREND_POLYNOMIAL
const sal_uInt16 EXC_ID_CHSERERRORBAR
const sal_uInt16 EXC_CHAXISLINE_WALLS
Minor grid line.
constexpr OUStringLiteral EXC_CHPROP_SHOWPOSITIVEERROR
constexpr OUStringLiteral EXC_CHPROP_TEXTBREAK
const sal_uInt8 EXC_CHSERTREND_EXPONENTIAL
If order is 1, trend line is linear.
constexpr OUStringLiteral EXC_CHPROP_SHOWNEGATIVEERROR
const sal_uInt8 EXC_CHSERERR_YPLUS
@ EXC_CHFRAMETYPE_INVISIBLE
Missing frame represents automatic formatting.
const sal_uInt16 EXC_CHFRAMEPOS_ABSSIZE_POINTS
const sal_uInt16 EXC_CHTEXT_SHOWVALUE
Legend symbol for data point caption.
const sal_uInt16 EXC_CHSRCLINK_NUMFMT
const sal_uInt16 EXC_ID_CHSERGROUP
Interpolate empty values.
constexpr OUStringLiteral EXC_CHPROP_LABELPOSITION
const sal_uInt16 EXC_CHLEGEND_DATATABLE
const sal_uInt16 EXC_CHLINEFORMAT_DARKTRANS
constexpr OUStringLiteral EXC_CHPROP_SHOW
constexpr OUStringLiteral EXC_CHPROP_ROLE_HIGHVALUES
const sal_uInt16 EXC_ID_CHAXISLINE
Axis direction reversed.
const sal_uInt16 EXC_CHAXESSET_SECONDARY
constexpr OUStringLiteral EXC_CHPROP_ROLE_LOWVALUES
const sal_uInt16 EXC_CHTEXT_POS_OUTSIDE
constexpr OUStringLiteral EXC_CHPROP_ROLE_XVALUES
const sal_uInt16 EXC_ID_CHFORMATRUNS
constexpr OUStringLiteral EXC_CHPROP_NUMBERFORMAT
constexpr OUStringLiteral EXC_CHPROP_LABELSEPARATOR
const sal_uInt16 EXC_ID_CHSOURCELINK
const sal_uInt8 EXC_CHLEGEND_LEFT
constexpr OUStringLiteral EXC_CHPROP_MARKPOSITION
const sal_uInt16 EXC_CHTICK_AUTOCOLOR
const sal_uInt16 EXC_ID2_BOF
Text rotation: vertically stacked.
const sal_uInt8 EXC_ROT_NONE
Text orientation: 90 deg clockwise.
const sal_uInt16 EXC_ID4_BOF
@ EXC_BIFF8
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt16 EXC_ID_CODENAME
const sal_uInt16 EXC_ID5_BOF
const sal_uInt16 EXC_ID3_BOF
const sal_uInt16 EXC_ID_EOF
Internal use only.
const sal_uInt8 EXC_OBJ_LINE_SOLID
const sal_uInt8 EXC_OBJ_LINE_MEDTRANS
const sal_uInt8 EXC_OBJ_LINE_THICK
const sal_uInt8 EXC_OBJ_LINE_HAIR
const sal_uInt8 EXC_OBJ_LINE_DASHDOT
const sal_uInt16 EXC_ID8_IMGDATA
const sal_uInt8 EXC_OBJ_LINE_DARKTRANS
const sal_uInt8 EXC_OBJ_LINE_MEDIUM
const sal_uInt8 EXC_OBJ_LINE_THIN
const sal_uInt8 EXC_OBJ_LINE_NONE
const sal_uInt16 EXC_ID_OBJ
const sal_uInt8 EXC_OBJ_LINE_DASH
const sal_uInt8 EXC_OBJ_LINE_DOT
const sal_uInt16 EXC_ID_MSODRAWING
const sal_uInt8 EXC_OBJ_LINE_LIGHTTRANS
const sal_uInt8 EXC_OBJ_LINE_DASHDOTDOT
const sal_uInt16 EXC_ID_FOOTER
const sal_uInt16 EXC_ID_PRINTHEADERS
Left/right footer default margin in 1/100mm.
const sal_uInt16 EXC_ID_VCENTER
const sal_uInt16 EXC_ID_RIGHTMARGIN
const sal_uInt16 EXC_ID_LEFTMARGIN
const sal_uInt16 EXC_ID_SETUP
const sal_uInt16 EXC_ID_TOPMARGIN
const sal_uInt16 EXC_ID_HEADER
const sal_uInt16 EXC_ID_HORPAGEBREAKS
const sal_uInt16 EXC_ID_VERPAGEBREAKS
const sal_uInt16 EXC_ID_PRINTGRIDLINES
const sal_uInt16 EXC_ID_BOTTOMMARGIN
const sal_uInt16 EXC_ID_HCENTER
::std::vector< XclFormatRun > XclFormatRunVec
A vector with all formatting runs for a rich-string.
@ EightBitLength
Always use UCS-2 characters (default: try to compress). BIFF8 only.
@ SeparateFormats
Omit flags on empty string (default: read/write always). BIFF8 only.
const sal_uInt16 EXC_FONT_NOTFOUND
Application font index.
const sal_uInt8 EXC_PATT_NONE
const sal_uInt8 EXC_PATT_SOLID
const sal_uInt16 EXC_COLOR_CHWINDOWBACK
Chart window text color (BIFF8 charts).
const sal_uInt16 EXC_FORMAT_NOTFOUND
const sal_uInt16 EXC_COLOR_CHWINDOWTEXT
System button background color (face color).
const sal_uInt16 EXC_ID_SCL
Single, top, left, or top-left pane.
const sal_uInt16 EXC_ID_WINDOW2
const sal_uInt16 EXC_ID_SHEETEXT
constexpr sal_uInt32 NUMBERFORMAT_ENTRY_NOT_FOUND