22#include <com/sun/star/i18n/XBreakIterator.hpp>
23#include <com/sun/star/i18n/ScriptType.hpp>
24#include <com/sun/star/drawing/FillStyle.hpp>
25#include <com/sun/star/drawing/XShapes.hpp>
26#include <com/sun/star/chart/XChartDocument.hpp>
27#include <com/sun/star/chart/ChartAxisLabelPosition.hpp>
28#include <com/sun/star/chart/ChartAxisPosition.hpp>
29#include <com/sun/star/chart/ChartLegendExpansion.hpp>
30#include <com/sun/star/chart/DataLabelPlacement.hpp>
31#include <com/sun/star/chart/ErrorBarStyle.hpp>
32#include <com/sun/star/chart/MissingValueTreatment.hpp>
33#include <com/sun/star/chart/TimeInterval.hpp>
34#include <com/sun/star/chart/TimeUnit.hpp>
35#include <com/sun/star/chart/XAxisSupplier.hpp>
36#include <com/sun/star/chart/XDiagramPositioning.hpp>
37#include <com/sun/star/chart2/XChartDocument.hpp>
38#include <com/sun/star/chart2/XDiagram.hpp>
39#include <com/sun/star/chart2/XCoordinateSystemContainer.hpp>
40#include <com/sun/star/chart2/XChartTypeContainer.hpp>
41#include <com/sun/star/chart2/XDataSeriesContainer.hpp>
42#include <com/sun/star/chart2/XRegressionCurveContainer.hpp>
43#include <com/sun/star/chart2/XTitled.hpp>
44#include <com/sun/star/chart2/XColorScheme.hpp>
45#include <com/sun/star/chart2/data/XDataSource.hpp>
46#include <com/sun/star/chart2/AxisType.hpp>
47#include <com/sun/star/chart2/CurveStyle.hpp>
48#include <com/sun/star/chart2/DataPointGeometry3D.hpp>
49#include <com/sun/star/chart2/DataPointLabel.hpp>
50#include <com/sun/star/chart2/LegendPosition.hpp>
51#include <com/sun/star/chart2/RelativePosition.hpp>
52#include <com/sun/star/chart2/RelativeSize.hpp>
53#include <com/sun/star/chart2/StackingDirection.hpp>
54#include <com/sun/star/chart2/TickmarkStyle.hpp>
59#include <document.hxx>
60#include <compiler.hxx>
61#include <tokenarray.hxx>
71using ::com::sun::star::uno::Any;
72using ::com::sun::star::uno::Reference;
73using ::com::sun::star::uno::Sequence;
74using ::com::sun::star::uno::UNO_QUERY;
75using ::com::sun::star::uno::UNO_QUERY_THROW;
76using ::com::sun::star::uno::UNO_SET_THROW;
77using ::com::sun::star::uno::Exception;
78using ::com::sun::star::beans::XPropertySet;
79using ::com::sun::star::i18n::XBreakIterator;
80using ::com::sun::star::frame::XModel;
81using ::com::sun::star::drawing::XShape;
82using ::com::sun::star::drawing::XShapes;
84using ::com::sun::star::chart2::IncrementData;
85using ::com::sun::star::chart2::RelativePosition;
86using ::com::sun::star::chart2::RelativeSize;
87using ::com::sun::star::chart2::ScaleData;
88using ::com::sun::star::chart2::SubIncrement;
89using ::com::sun::star::chart2::XAxis;
90using ::com::sun::star::chart2::XChartDocument;
91using ::com::sun::star::chart2::XChartTypeContainer;
92using ::com::sun::star::chart2::XColorScheme;
93using ::com::sun::star::chart2::XCoordinateSystem;
94using ::com::sun::star::chart2::XCoordinateSystemContainer;
95using ::com::sun::star::chart2::XChartType;
96using ::com::sun::star::chart2::XDataSeries;
97using ::com::sun::star::chart2::XDataSeriesContainer;
98using ::com::sun::star::chart2::XDiagram;
99using ::com::sun::star::chart2::XFormattedString;
100using ::com::sun::star::chart2::XLegend;
101using ::com::sun::star::chart2::XRegressionCurve;
102using ::com::sun::star::chart2::XRegressionCurveContainer;
103using ::com::sun::star::chart2::XTitle;
104using ::com::sun::star::chart2::XTitled;
106using ::com::sun::star::chart2::data::XDataSequence;
107using ::com::sun::star::chart2::data::XDataSource;
108using ::com::sun::star::chart2::data::XLabeledDataSequence;
110using ::formula::FormulaToken;
111using ::formula::FormulaTokenArrayPlainIterator;
113namespace cssc = ::com::sun::star::chart;
114namespace cssc2 = ::com::sun::star::chart2;
132template<
typename Type >
142template<
typename ValueType,
typename KeyType>
155 rStrm.StartRecord( nRecId, 12 );
160template<
typename Type >
161bool lclIsAutoAnyOrGetValue(
Type& rValue,
const Any& rAny )
163 return !rAny.hasValue() || !(rAny >>= rValue);
166bool lclIsAutoAnyOrGetScaledValue(
double& rfValue,
const Any& rAny,
bool bLogScale )
168 bool bIsAuto = lclIsAutoAnyOrGetValue( rfValue, rAny );
169 if( !bIsAuto && bLogScale )
170 rfValue =
log( rfValue ) /
log( 10.0 );
174sal_uInt16 lclGetTimeValue(
const XclExpRoot& rRoot,
double fSerialDate, sal_uInt16 nTimeUnit )
180 return ::limit_cast< sal_uInt16, double >( fSerialDate, 0, SAL_MAX_UINT16 );
182 return ::limit_cast< sal_uInt16, sal_uInt16 >( 12 * (aDateTime.
GetYear() - rRoot.
GetBaseYear()) + aDateTime.
GetMonth() - 1, 0, SAL_MAX_INT16 );
184 return ::limit_cast< sal_uInt16, sal_uInt16 >( aDateTime.
GetYear() - rRoot.
GetBaseYear(), 0, SAL_MAX_INT16 );
186 OSL_ENSURE(
false,
"lclGetTimeValue - unexpected time unit" );
188 return ::limit_cast< sal_uInt16, double >( fSerialDate, 0, SAL_MAX_UINT16 );
191bool lclConvertTimeValue(
const XclExpRoot& rRoot, sal_uInt16& rnValue,
const Any& rAny, sal_uInt16 nTimeUnit )
193 double fSerialDate = 0;
194 bool bAuto = lclIsAutoAnyOrGetValue( fSerialDate, rAny );
196 rnValue = lclGetTimeValue( rRoot, fSerialDate, nTimeUnit );
200sal_uInt16 lclGetTimeUnit( sal_Int32 nApiTimeUnit )
202 switch( nApiTimeUnit )
207 default: OSL_ENSURE(
false,
"lclGetTimeUnit - unexpected time unit" );
212bool lclConvertTimeInterval( sal_uInt16& rnValue, sal_uInt16& rnTimeUnit,
const Any& rAny )
214 cssc::TimeInterval aInterval;
215 bool bAuto = lclIsAutoAnyOrGetValue( aInterval, rAny );
218 rnValue = ::limit_cast< sal_uInt16, sal_Int32 >( aInterval.Number, 1, SAL_MAX_UINT16 );
219 rnTimeUnit = lclGetTimeUnit( aInterval.TimeUnit );
263 rStrm << sal_uInt16( 0x0850 ) << sal_uInt16( 0x085A ) << sal_uInt16( 0x0861 ) << sal_uInt16( 0x0861 ) << sal_uInt16( 0x086A ) << sal_uInt16( 0x086B );
269 OSL_ENSURE( rUnwrittenFrBlock.mnType !=
EXC_CHFRBLOCK_TYPE_UNKNOWN,
"XclExpChRootData::InitializeFutureRecBlock - unknown future record block type" );
270 lclWriteChFrBlockRecord(
rStrm, rUnwrittenFrBlock,
true );
320 return mxChData->mxTypeInfoProv->GetTypeInfoFromService( rServiceName );
325 return mxChData->mxFmtInfoProv->GetFormatInfo( eObjType );
346 OSL_ENSURE(
GetPalette().
IsSystemColor( nSysColorIdx ),
"XclExpChRoot::SetSystemColor - invalid color index" );
375 rLineFmt, *
mxChData->mxLineDashTable, rPropSet, ePropMode );
401 sal_Int32 nApiRot = 0;
403 return static_cast< sal_uInt16
>( (450 - (nApiRot % 360)) % 360 );
408 mxChData->RegisterFutureRecBlock( rFrBlock );
422 sal_uInt16 nFrType, sal_uInt16 nRecId, std::size_t nRecSize ) :
500 switch( eDefFrameType )
510 OSL_FAIL(
"XclExpChLineFormat::SetDefault - unknown frame type" );
564 xLineFmt->Convert( rRoot, rPropSet, eObjType );
618 switch( eDefFrameType )
628 OSL_FAIL(
"XclExpChAreaFormat::SetDefault - unknown frame type" );
700 sal_uInt32 nBGRValue;
704 Color aColor( nBGRValue & 0xff, (nBGRValue >> 8) & 0xff, (nBGRValue >> 16) & 0xff );
712 OSL_ENSURE(
maData.
mxEscherSet,
"XclExpChEscherFormat::WriteBody - missing property container" );
718 rStrm.CopyFromStream( aMemStrm );
734 mxLineFmt->Convert( rRoot, rPropSet, eObjType );
740 bool bComplexFill =
mxAreaFmt->Convert( rRoot, rPropSet, eObjType );
839 xFrame->Convert( rPropSet );
840 if(
xFrame->IsDeleteable() )
851void lclAddDoubleRefData(
857 aComplexRef.
InitRange(
ScRange(nScCol1,nScRow1,nScTab1,nScCol2,nScRow2,nScTab2));
860 if( orArray.
GetLen() > 0 )
863 OSL_ENSURE( (rToken.GetType() == ::formula::svDoubleRef) || (rToken.GetType() == ::formula::svExternalDoubleRef),
864 "lclAddDoubleRefData - double reference token expected");
865 if( rToken.GetType() == ::formula::svExternalDoubleRef )
867 rToken.GetIndex(), rToken.GetString(), aComplexRef);
892 OUString aRangeRepr = xDataSeq->getSourceRangeRepresentation();
894 std::unique_ptr<ScTokenArray> pArray(aComp.
CompileString(aRangeRepr));
899 sal_uInt32 nValueCount = 0;
900 FormulaTokenArrayPlainIterator aIter(*pArray);
901 for(
const FormulaToken* pToken = aIter.First(); pToken; pToken = aIter.Next() )
903 switch( pToken->GetType() )
905 case ::formula::svSingleRef:
906 case ::formula::svExternalSingleRef:
914 case ::formula::svDoubleRef:
915 case ::formula::svExternalDoubleRef:
921 for (
SCTAB nScTab = aAbs1.
Tab(); nScTab <= aAbs2.
Tab(); ++nScTab)
924 if (bSplitToColumns && (aAbs1.
Col() < aAbs2.
Col()) && (aAbs1.
Row() < aAbs2.
Row()))
925 for (
SCCOL nScCol = aAbs1.
Col(); nScCol <= aAbs2.
Col(); ++nScCol)
926 lclAddDoubleRefData(aArray, *pToken, nScTab, nScCol, aAbs1.
Row(), nScTab, nScCol, aAbs2.
Row());
928 lclAddDoubleRefData(aArray, *pToken, nScTab, aAbs1.
Col(), aAbs1.
Row(), nScTab, aAbs2.
Col(), aAbs2.
Row());
930 sal_uInt32 nTabs =
static_cast<sal_uInt32
>(aAbs2.
Tab() - aAbs1.
Tab() + 1);
931 sal_uInt32 nCols =
static_cast<sal_uInt32
>(aAbs2.
Col() - aAbs1.
Col() + 1);
932 sal_uInt32 nRows =
static_cast<sal_uInt32
>(aAbs2.
Row() - aAbs1.
Row() + 1);
933 nValueCount += nCols * nRows * nTabs;
956 if( rStringSeq.hasElements() )
960 namespace ApiScriptType = ::com::sun::star::i18n::ScriptType;
963 for(
const Reference< XFormattedString >& rString : rStringSeq )
970 OUString aText = rString->getString();
977 sal_Int32 nPortionPos = 0;
978 sal_Int32 nTextLen = aText.getLength();
979 while( nPortionPos < nTextLen )
982 sal_Int16 nScript = xBreakIt->getScriptType( aText, nPortionPos );
983 sal_Int32 nPortionEnd = xBreakIt->endOfScript( aText, nPortionPos, nScript );
986 if( nScript == ApiScriptType::WEAK )
987 nScript = nLastScript;
990 sal_uInt16 nXclPortionStart =
mxString->Len();
993 if( nXclPortionStart < mxString->Len() )
996 sal_uInt16& rnFontIdx = (nScript == ApiScriptType::COMPLEX) ? nCmplxFontIdx :
997 ((nScript == ApiScriptType::ASIAN) ? nAsianFontIdx : nWstrnFontIdx);
1004 mxString->AppendFormat( nXclPortionStart, rnFontIdx );
1008 nLastScript = nScript;
1009 nPortionPos = nPortionEnd;
1017 OSL_ENSURE( !rFormats.empty() && (rFormats.front().mnChar == 0),
1018 "XclExpChSourceLink::ConvertStringSequenc - missing leading format" );
1020 if( rFormats.size() == 1 )
1021 nFontIdx =
mxString->RemoveLeadingFont();
1022 else if( !rFormats.empty() )
1023 nFontIdx = rFormats.front().mnFontIdx;
1034 sal_Int32 nApiNumFmt = 0;
1104 bool bShowCateg,
bool bShowValue,
bool bShowPercent,
bool bShowBubble )
1134 SetFont(xFont, pFont->GetFontData().maComplexColor, pFont->GetFontColorId());
1190 sal_uInt16 nFontIdx =
mxSrcLink->ConvertStringSequence( xTitle->getText() );
1194 OUString aSubTitle =
"\n" + *pSubTitle;
1211 Reference< cssc::XChartDocument > xChart1Doc(
GetChartDocument(), UNO_QUERY_THROW );
1212 Reference< XShape > xTitleShape( xChart1Doc->getTitle(), UNO_SET_THROW );
1213 css::awt::Point aPos = xTitleShape->getPosition();
1214 css::awt::Size aSize = xTitleShape->getSize();
1215 css::awt::Rectangle aRect( aPos.X, aPos.Y, aSize.Width, aSize.Height );
1222 sal_Int32 nDefPosY = 85;
1251 cssc2::DataPointLabel aPointLabel;
1259 OSL_ENSURE( (
GetBiff() ==
EXC_BIFF8) || !bIsBubble,
"XclExpChText::ConvertDataLabel - bubble charts only in BIFF8" );
1262 bool bShowValue = !bIsBubble && aPointLabel.ShowNumber;
1263 bool bShowPercent = bIsPie && aPointLabel.ShowNumberInPercent;
1264 bool bShowCateg = aPointLabel.ShowCategoryName;
1265 bool bShowBubble = bIsBubble && aPointLabel.ShowNumber;
1266 bool bShowAny = bShowValue || bShowPercent || bShowCateg || bShowBubble;
1272 mxLabelProps->Convert( rPropSet, bShowCateg, bShowValue, bShowPercent, bShowBubble );
1276 if( bShowPercent ) bShowValue =
false;
1277 if( bShowValue ) bShowCateg =
false;
1278 if( bShowValue || bShowCateg ) bShowBubble =
false;
1296 sal_Int32 nPlacement = 0;
1300 using namespace cssc::DataLabelPlacement;
1305 else switch( nPlacement )
1320 default: OSL_FAIL(
"XclExpChText::ConvertDataLabel - unknown label placement type" );
1326 if( bShowValue || bShowPercent )
1328 mxSrcLink->ConvertNumFmt( rPropSet, bShowPercent );
1353 mxSrcLink->ConvertNumFmt( rPropSet,
false );
1360 sal_uInt16 nFlags = 0;
1405 const OUString* pSubTitle =
nullptr )
1407 Reference< XTitle > xTitle;
1409 xTitle = xTitled->getTitleObject();
1412 xText->ConvertTitle( xTitle, nTarget, pSubTitle );
1500 double fApiDist(0.0);
1502 SetValue( limit_cast< sal_uInt16 >( fApiDist * 100.0, 0, 100 ) );
1512 sal_Int32 nApiType(0);
1516 using namespace cssc2::DataPointGeometry3D;
1536 OSL_FAIL(
"XclExpCh3dDataFormat::Convert - unknown 3D bar format" );
1639 if( !xRegCurve.is() )
1646 if( aService ==
"com.sun.star.chart2.LinearRegressionCurve" )
1651 else if( aService ==
"com.sun.star.chart2.ExponentialRegressionCurve" )
1655 else if( aService ==
"com.sun.star.chart2.LogarithmicRegressionCurve" )
1659 else if( aService ==
"com.sun.star.chart2.PotentialRegressionCurve" )
1663 else if( aService ==
"com.sun.star.chart2.PolynomialRegressionCurve" )
1670 else if( aService ==
"com.sun.star.chart2.MovingAverageRegressionCurve" )
1684 bool bIsForceIntercept =
false;
1686 if (bIsForceIntercept)
1695 ScfPropertySet aEquationProp( xRegCurve->getEquationProperties() );
1703 mxLabel->ConvertTrendLineEquation( aEquationProp, aPointPos );
1732 sal_Int32 nBarStyle = 0;
1738 case cssc::ErrorBarStyle::ABSOLUTE:
1742 case cssc::ErrorBarStyle::RELATIVE:
1746 case cssc::ErrorBarStyle::STANDARD_DEVIATION:
1750 case cssc::ErrorBarStyle::STANDARD_ERROR:
1753 case cssc::ErrorBarStyle::FROM_DATA:
1757 Reference< XDataSource > xDataSource( rPropSet.
GetApiPropertySet(), UNO_QUERY );
1758 if( xDataSource.is() )
1762 Reference< XDataSequence > xValueSeq;
1764 const Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences();
1765 for(
const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec )
1767 Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues();
1772 xValueSeq = xTmpValueSeq;
1776 if( xValueSeq.is() )
1805ScfPropertySet lclGetPointPropSet( Reference< XDataSeries >
const & xDataSeries, sal_Int32 nPointIdx )
1810 aPropSet.
Set( xDataSeries->getDataPointByIndex( nPointIdx ) );
1814 OSL_FAIL(
"lclGetPointPropSet - no data point property set" );
1824 mnSeriesIdx( nSeriesIdx ),
1836 Reference< XDiagram >
const & xDiagram, Reference< XDataSeries >
const & xDataSeries,
1837 const XclChExtTypeInfo& rTypeInfo, sal_uInt16 nGroupIdx, sal_uInt16 nFormatIdx )
1840 Reference< XDataSource > xDataSource( xDataSeries, UNO_QUERY );
1841 if( xDataSource.is() )
1843 Reference< XDataSequence > xYValueSeq, xTitleSeq, xXValueSeq, xBubbleSeq;
1846 const Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences();
1847 for(
const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec )
1849 Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues();
1856 xYValueSeq = xTmpValueSeq;
1857 if( !xTitleSeq.is() )
1858 xTitleSeq = rLabeledSeq->getLabel();
1862 xXValueSeq = xTmpValueSeq;
1866 xBubbleSeq = xTmpValueSeq;
1867 xTitleSeq = rLabeledSeq->getLabel();
1872 bOk = xYValueSeq.is();
1880 mxTitleLink->ConvertDataSequence( xTitleSeq,
true );
1893 mxSeriesFmt->ConvertDataSeries( aSeriesProp, rTypeInfo );
1911 Reference< XColorScheme > xColorScheme = xDiagram->getDefaultColorScheme();
1912 if( xColorScheme.is() )
1914 static constexpr OUStringLiteral aFillStyleName =
u"FillStyle";
1915 static constexpr OUStringLiteral aColorName =
u"Color";
1916 namespace cssd = ::com::sun::star::drawing;
1917 for( sal_Int32 nPointIdx = 0; nPointIdx < nMaxPointCount; ++nPointIdx )
1919 aPointPos.
mnPointIdx =
static_cast< sal_uInt16
>( nPointIdx );
1920 ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, nPointIdx );
1922 cssd::FillStyle eFillStyle = cssd::FillStyle_NONE;
1923 if( aPointProp.
GetProperty( eFillStyle, aFillStyleName ) &&
1924 (eFillStyle == cssd::FillStyle_SOLID) &&
1927 aPointProp.
SetProperty( aColorName, xColorScheme->getColorByIndex( nPointIdx ) );
1934 Sequence< sal_Int32 > aPointIndexes;
1937 for(
const sal_Int32 nPointIndex : std::as_const(aPointIndexes) )
1939 if (nPointIndex >= nMaxPointCount)
1941 aPointPos.
mnPointIdx =
static_cast< sal_uInt16
>( nPointIndex );
1942 ScfPropertySet aPointProp = lclGetPointPropSet( xDataSeries, nPointIndex );
1944 xPointFmt->ConvertDataSeries( aPointProp, rTypeInfo );
1955 std::u16string_view rValueRole, sal_uInt16 nGroupIdx, sal_uInt16 nFormatIdx,
bool bCloseSymbol )
1958 Reference< XDataSource > xDataSource( xDataSeries, UNO_QUERY );
1959 if( xDataSource.is() )
1961 Reference< XDataSequence > xYValueSeq, xTitleSeq;
1964 const Sequence< Reference< XLabeledDataSequence > > aLabeledSeqVec = xDataSource->getDataSequences();
1965 for(
const Reference< XLabeledDataSequence >& rLabeledSeq : aLabeledSeqVec )
1967 Reference< XDataSequence > xTmpValueSeq = rLabeledSeq->getValues();
1972 xYValueSeq = xTmpValueSeq;
1973 xTitleSeq = rLabeledSeq->getLabel();
1978 bOk = xYValueSeq.is();
1985 mxTitleLink->ConvertDataSequence( xTitleSeq,
true );
1989 mxSeriesFmt->ConvertStockSeries( aSeriesProp, bCloseSymbol );
2031 if( xCategSeq.is() )
2063 Reference< XRegressionCurveContainer > xRegCurveCont( xDataSeries, UNO_QUERY );
2064 if( xRegCurveCont.is() )
2066 const Sequence< Reference< XRegressionCurve > > aRegCurveSeq = xRegCurveCont->getRegressionCurves();
2067 for(
const Reference< XRegressionCurve >& rRegCurve : aRegCurveSeq )
2070 if( xSeries && !xSeries->ConvertTrendLine( *
this, rRegCurve ) )
2079 Reference< XPropertySet > xErrorBar;
2080 if( rPropSet.
GetProperty( xErrorBar, rBarPropName ) && xErrorBar.is() )
2089 const OUString& rShowPropName,
sal_uInt8 nBarId )
2094 if( xSeries && !xSeries->ConvertErrorBar( *
this, rPropSet, nBarId ) )
2116 sal_Int32 nApiAxesSetIdx,
bool bSwappedAxesSet,
bool bHasXLabels )
2118 if( !xChartType.is() )
2130 Sequence< sal_Int32 > aInt32Seq;
2133 maData.
mnOverlap = limit_cast< sal_Int16 >( -aInt32Seq[ nApiAxesSetIdx ], -100, 100 );
2136 maData.
mnGap = limit_cast< sal_uInt16 >( aInt32Seq[ nApiAxesSetIdx ], 0, 500 );
2206 OSL_FAIL(
"XclExpChType::WriteBody - unknown chart type" );
2217 sal_Int32 nRotationY = 0;
2219 sal_Int32 nRotationX = 0;
2221 sal_Int32 nPerspective = 15;
2227 if( nRotationY < 0 ) nRotationY += 360;
2244 maData.
mnElevation = limit_cast< sal_Int16 >( (nRotationX + 270) % 180, 10, 80 );
2274 mxText->ConvertLegend( rPropSet );
2277 Any aRelPosAny, aRelSizeAny;
2280 cssc::ChartLegendExpansion eApiExpand = cssc::ChartLegendExpansion_CUSTOM;
2282 if( aRelPosAny.has< RelativePosition >() || ((eApiExpand == cssc::ChartLegendExpansion_CUSTOM) && aRelSizeAny.has<
RelativeSize >()) )
2292 Reference< cssc::XChartDocument > xChart1Doc(
GetChartDocument(), UNO_QUERY_THROW );
2293 Reference< XShape > xChart1Legend( xChart1Doc->getLegend(), UNO_SET_THROW );
2298 css::awt::Point aLegendPos = xChart1Legend->getPosition();
2303 css::awt::Size aLegendSize = xChart1Legend->getSize();
2308 eApiExpand = cssc::ChartLegendExpansion_CUSTOM;
2315 mxFrame->SetAutoFlags(
false,
false );
2319 OSL_FAIL(
"XclExpChLegend::Convert - cannot get legend shape" );
2321 eApiExpand = cssc::ChartLegendExpansion_HIGH;
2326 cssc2::LegendPosition eApiPos = cssc2::LegendPosition_LINE_END;
2335 OSL_FAIL(
"XclExpChLegend::Convert - unrecognized legend position" );
2337 eApiExpand = cssc::ChartLegendExpansion_HIGH;
2381 rStrm << sal_uInt16(100);
2393 Reference< XDiagram >
const & xDiagram, Reference< XChartType >
const & xChartType,
2394 sal_Int32 nApiAxesSetIdx,
bool b3dChart,
bool bSwappedAxesSet,
bool bHasXLabels )
2397 maType.
Convert( xDiagram, xChartType, nApiAxesSetIdx, bSwappedAxesSet, bHasXLabels );
2401 cssc2::CurveStyle eCurveStyle;
2403 (eCurveStyle != cssc2::CurveStyle_LINES);
2418 Reference< XDiagram >
const & xDiagram, Reference< XChartType >
const & xChartType,
2419 sal_Int32 nGroupAxesSetIdx,
bool bPercent,
bool bConnectBars )
2421 Reference< XDataSeriesContainer > xSeriesCont( xChartType, UNO_QUERY );
2422 if( !xSeriesCont.is() )
2425 std::vector< Reference< XDataSeries > > aSeriesVec;
2428 const Sequence< Reference< XDataSeries > > aSeriesSeq = xSeriesCont->getDataSeries();
2429 for(
const Reference< XDataSeries >& rSeries : aSeriesSeq )
2432 sal_Int32 nSeriesAxesSetIdx(0);
2434 aSeriesVec.push_back( rSeries );
2438 if( aSeriesVec.empty() )
2443 cssc2::StackingDirection eStacking;
2445 eStacking = cssc2::StackingDirection_NO_STACKING;
2464 ::std::reverse( aSeriesVec.begin(), aSeriesVec.end() );
2468 if( (eStacking == cssc2::StackingDirection_NO_STACKING) &&
Is3dWallChart() )
2475 for(
const auto& rxSeries : aSeriesVec )
2487 for(
size_t nIdx = 0, nSize =
maSeries.
GetSize(); nIdx < nSize; ++nIdx )
2519 Reference< XDiagram >
const & xDiagram, Reference< XDataSeries >
const & xDataSeries )
2533 Reference< XChartType >
const & xChartType, Reference< XDataSeries >
const & xDataSeries )
2553 if( !(bHasOpen && bHasClose) )
2557 Reference< XPropertySet > xWhitePropSet, xBlackPropSet;
2562 mxUpBar->Convert( aWhiteProp );
2571 std::u16string_view rValueRole,
bool bCloseSymbol )
2578 bOk = xSeries->ConvertStockSeries( xDataSeries,
2590 rStrm.WriteZeroBytes( 16 );
2608 cssc::TimeIncrement aTimeIncrement;
2615 bool bAutoBase = !rScaleData.TimeIncrement.TimeResolution.has< cssc::TimeIncrement >();
2619 sal_Int32 nApiTimeUnit = 0;
2620 bool bValidBaseUnit = aTimeIncrement.TimeResolution >>= nApiTimeUnit;
2621 OSL_ENSURE( bValidBaseUnit,
"XclExpChLabelRange::Convert - cannot get base time unit" );
2642 double fOrigin = 0.0;
2643 if( !lclIsAutoAnyOrGetValue( fOrigin, rScaleData.Origin ) )
2647 if( (rScaleData.Orientation == cssc2::AxisOrientation_REVERSE) != bMirrorOrient )
2653 cssc::ChartAxisPosition eAxisPos = cssc::ChartAxisPosition_VALUE;
2655 double fCrossingPos = 1.0;
2661 case cssc::ChartAxisPosition_ZERO:
2662 case cssc::ChartAxisPosition_START:
2666 case cssc::ChartAxisPosition_END:
2669 case cssc::ChartAxisPosition_VALUE:
2721 bool bAutoMin = lclIsAutoAnyOrGetScaledValue(
maData.
mfMin, rScaleData.Minimum, bLogScale );
2723 bool bAutoMax = lclIsAutoAnyOrGetScaledValue(
maData.
mfMax, rScaleData.Maximum, bLogScale );
2727 bool bAutoCross = lclIsAutoAnyOrGetScaledValue(
maData.
mfCross, rScaleData.Origin, bLogScale );
2731 const IncrementData& rIncrementData = rScaleData.IncrementData;
2735 const Sequence< SubIncrement >& rSubIncrementSeq = rIncrementData.SubIncrements;
2741 const bool bAutoMinor = bLogScale || bAutoMajor || !rSubIncrementSeq.hasElements() ||
2742 lclIsAutoAnyOrGetValue(
nCount, rSubIncrementSeq[ 0 ].IntervalCount ) || (
nCount < 1) || (
nCount == 5);
2754 cssc::ChartAxisPosition eAxisPos = cssc::ChartAxisPosition_VALUE;
2755 double fCrossingPos = 0.0;
2761 case cssc::ChartAxisPosition_ZERO:
2762 case cssc::ChartAxisPosition_START:
2765 case cssc::ChartAxisPosition_END:
2768 case cssc::ChartAxisPosition_VALUE:
2789sal_uInt8 lclGetXclTickPos( sal_Int32 nApiTickmarks )
2791 using namespace cssc2::TickmarkStyle;
2810 sal_Int32 nApiTickmarks = 0;
2835 cssc::ChartAxisLabelPosition eApiLabelPos = cssc::ChartAxisLabelPosition_NEAR_AXIS;
2837 switch( eApiLabelPos )
2839 case cssc::ChartAxisLabelPosition_NEAR_AXIS:
2868 rStrm.WriteZeroBytes( 16 );
2878Reference< XAxis > lclGetApiAxis( Reference< XCoordinateSystem >
const & xCoordSystem,
2879 sal_Int32 nApiAxisDim, sal_Int32 nApiAxesSetIdx )
2881 Reference< XAxis > xAxis;
2882 if( (nApiAxisDim >= 0) && xCoordSystem.is() )
try
2884 xAxis = xCoordSystem->getAxisByDimension( nApiAxisDim, nApiAxesSetIdx );
2892Reference< cssc::XAxis > lclGetApiChart1Axis( Reference< XChartDocument >
const & xChartDoc,
2893 sal_Int32 nApiAxisDim, sal_Int32 nApiAxesSetIdx )
2895 Reference< cssc::XAxis > xChart1Axis;
2898 Reference< cssc::XChartDocument > xChart1Doc( xChartDoc, UNO_QUERY_THROW );
2899 Reference< cssc::XAxisSupplier > xChart1AxisSupp( xChart1Doc->getDiagram(), UNO_QUERY_THROW );
2900 switch( nApiAxesSetIdx )
2903 xChart1Axis = xChart1AxisSupp->getAxis( nApiAxisDim );
2906 xChart1Axis = xChart1AxisSupp->getSecondaryAxis( nApiAxisDim );
2929 mxTick->SetFontColor(rComplexColor, nColorId);
2935 mxTick->SetRotation( nRotation );
2939 Reference< cssc::XAxis >
const & xChart1Axis,
const XclChExtTypeInfo& rTypeInfo )
2965 if( aCrossingProp.
Is() )
2974 if( aCrossingProp.
Is() )
2989 sal_Int32 nApiNumFmt = 0;
2992 bool bLinkNumberFmtToSource =
false;
3007 Sequence< Reference< XPropertySet > > aSubGridPropSeq = xAxis->getSubGridProperties();
3008 if( aSubGridPropSeq.hasElements() )
3018 if( !xDiagram.is() )
3057 rStrm.WriteZeroBytes( 16 );
3080 sal_uInt16 nGroupIdx = nFirstGroupIdx;
3081 Reference< XCoordinateSystemContainer > xCoordSysCont( xDiagram, UNO_QUERY );
3082 if( xCoordSysCont.is() )
3084 Sequence< Reference< XCoordinateSystem > > aCoordSysSeq = xCoordSysCont->getCoordinateSystems();
3085 if( aCoordSysSeq.hasElements() )
3089 Reference< XCoordinateSystem > xCoordSystem = aCoordSysSeq[ 0 ];
3093 bool b3dChart = xCoordSystem.is() && (xCoordSystem->getDimension() == 3);
3097 Reference< XAxis > xApiYAxis = lclGetApiAxis( xCoordSystem,
EXC_CHART_AXIS_Y, nApiAxesSetIdx );
3098 bool bPercent = xApiYAxis.is() && (xApiYAxis->getScaleData().AxisType ==
ApiAxisType::PERCENT);
3109 Reference< XAxis > xApiXAxis = lclGetApiAxis( xCoordSystem,
EXC_CHART_AXIS_X, nApiAxesSetIdx );
3115 Reference< XChartTypeContainer > xChartTypeCont( xCoordSystem, UNO_QUERY );
3116 if( xChartTypeCont.is() )
3118 const Sequence< Reference< XChartType > > aChartTypeSeq = xChartTypeCont->getChartTypes();
3119 for(
const Reference< XChartType >& rChartType : aChartTypeSeq )
3122 xTypeGroup->ConvertType( xDiagram, rChartType, nApiAxesSetIdx, b3dChart, bSwappedAxesSet, bHasXLabels );
3127 if( xLastGroup && !(xTypeGroup->IsCombinable2d() && xLastGroup->IsCombinable2d()) )
3129 xLastGroup->ConvertSeries( xDiagram, rChartType, nApiAxesSetIdx, bPercent, bConnectBars );
3133 xTypeGroup->ConvertSeries( xDiagram, rChartType, nApiAxesSetIdx, bPercent, bConnectBars );
3134 if( xTypeGroup->IsValidGroup() )
3152 if( pGroup->Is3dDeepChart() )
3159 const ScaleData aScaleData = xApiXAxis->getScaleData();
3167 Reference< XLegend > xLegend = xDiagram->getLegend();
3171 pGroup->ConvertLegend( aLegendProp );
3182 if( xTypeGroup && xTypeGroup->Is3dWallChart() )
3186 mxXAxis->ConvertWall( xDiagram );
3188 mxYAxis->ConvertWall( xDiagram );
3201 Reference< cssc::XChartDocument > xChart1Doc(
GetChartDocument(), UNO_QUERY_THROW );
3202 Reference< cssc::XDiagramPositioning > xPositioning( xChart1Doc->getDiagram(), UNO_QUERY_THROW );
3204 if( !xPositioning->isAutomaticDiagramPositioning() )
3227 return xTypeGroup && xTypeGroup->Is3dChart();
3260 Reference< XCoordinateSystem >
const & xCoordSystem,
const XclChExtTypeInfo& rTypeInfo,
3261 sal_Int32 nCrossingAxisDim )
3265 sal_Int32 nApiAxisDim = rxChAxis->GetApiAxisDimension();
3267 Reference< XAxis > xAxis = lclGetApiAxis( xCoordSystem, nApiAxisDim, nApiAxesSetIdx );
3268 Reference< XAxis > xCrossingAxis = lclGetApiAxis( xCoordSystem, nCrossingAxisDim, nApiAxesSetIdx );
3269 Reference< cssc::XAxis > xChart1Axis = lclGetApiChart1Axis(
GetChartDocument(), nApiAxisDim, nApiAxesSetIdx );
3270 rxChAxis->Convert( xAxis, xCrossingAxis, xChart1Axis, rTypeInfo );
3273 Reference< XTitled > xTitled( xAxis, UNO_QUERY );
3274 rxChAxisTitle = lclCreateTitle(
GetChRoot(), xTitled, nTitleTarget );
3285 OUString& rSubTitle)
3287 Reference< css::chart::XChartDocument > xChartDoc1(xChartDoc, UNO_QUERY);
3288 if (!xChartDoc1.is())
3291 Reference< XPropertySet > xProp(xChartDoc1->getSubTitle(), UNO_QUERY);
3296 Any any = xProp->getPropertyValue(
"String");
3302 Reference< XChartDocument >
const & xChartDoc,
const tools::Rectangle& rChartRect ) :
3320 if( !xChartDoc.is() )
3323 Reference< XDiagram > xDiagram = xChartDoc->getFirstDiagram();
3338 Reference< XTitled > xTitled( xChartDoc, UNO_QUERY );
3342 !aSubTitle.isEmpty() ? &aSubTitle :
nullptr );
3345 sal_uInt16 nFreeGroupIdx =
mxPrimAxesSet->Convert( xDiagram, 0 );
3351 sal_Int32 nMissingValues = 0;
3354 using namespace cssc::MissingValueTreatment;
3355 switch( nMissingValues )
3370 sal_uInt16 nSeriesIdx =
static_cast< sal_uInt16
>(
maSeries.
GetSize() );
3412 sal_uInt16 nUsedAxesSets =
mxSecnAxesSet->IsValidAxesSet() ? 2 : 1;
3429 const Reference< XModel >& rxModel,
const Size& rChartSize ) :
3436 Reference< XShapes > xShapes;
3471 Reference< XChartDocument > xChartDoc(
xModel, UNO_QUERY );
PropertiesInfo aProperties
sal_Int16 GetYear() const
sal_uInt16 GetMonth() const
std::unique_ptr< ScTokenArray > CompileString(const OUString &rFormula)
Tokenize formula expression string into an array of tokens.
SC_DLLPUBLIC const css::uno::Reference< css::i18n::XBreakIterator > & GetBreakIterator()
virtual formula::FormulaToken * AddOpCode(OpCode eCode) override
formula::FormulaToken * AddExternalDoubleReference(sal_uInt16 nFileId, const svl::SharedString &rTabName, const ScComplexRefData &rRef)
formula::FormulaToken * AddDoubleReference(const ScComplexRefData &rRef)
static OUString GetServiceName(const css::uno::Reference< css::uno::XInterface > &xInt)
Returns the service name provided via the XServiceName interface, or an empty string on error.
A wrapper for a UNO property set.
const css::uno::Reference< css::beans::XPropertySet > & GetApiPropertySet() const
Returns the contained XPropertySet interface.
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.
bool GetBoolProperty(const OUString &rPropName) const
Gets the specified Boolean property from the property set.
bool GetProperty(Type &rValue, const OUString &rPropName) const
Gets the specified property from the property set.
OUString GetServiceName() const
Returns the service name provided via the XServiceName interface, or an empty string on error.
bool GetAnyProperty(css::uno::Any &rValue, const OUString &rPropName) const
Gets the specified property from the property set.
OUString GetStringProperty(const OUString &rPropName) const
Gets the specified Boolean property from the property set.
bool GetColorProperty(Color &rColor, const OUString &rPropName) const
Gets the specified color property from the property set.
bool HasProperty(const OUString &rPropName) const
Returns true, if the property set contains the specified property.
bool Is() const
Returns true, if the contained XPropertySet interface is valid.
constexpr tools::Long Height() const
constexpr tools::Long Width() const
sal_uInt64 Seek(sal_uInt64 nPos)
static sal_uInt16 ReadRotationProperties(const ScfPropertySet &rPropSet, bool bSupportsStacked)
Reads rotation properties from the passed property set.
static void ReadMarkerProperties(XclChMarkerFormat &rMarkerFmt, const ScfPropertySet &rPropSet, sal_uInt16 nFormatIdx)
Reads all marker properties from the passed property set.
void ReadLineProperties(XclChLineFormat &rLineFmt, XclChObjectTable &rDashTable, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode)
Reads all line properties from the passed property set.
bool ReadAreaProperties(XclChAreaFormat &rAreaFmt, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode)
Reads solid area properties from the passed property set.
void ReadEscherProperties(XclChEscherFormat &rEscherFmt, XclChPicFormat &rPicFmt, XclChObjectTable &rGradientTable, XclChObjectTable &rHatchTable, XclChObjectTable &rBitmapTable, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode)
Reads gradient or bitmap area properties from the passed property set.
static OUString GetErrorBarValuesRole(sal_uInt8 nBarType)
Returns the role name for a manual data source for error bars.
Color GetDefColor(sal_uInt16 nXclIndex) const
Returns the default color for a (non-zero-based) Excel color or COL_AUTO on error.
bool IsSystemColor(sal_uInt16 nXclIndex) const
Returns true, if the passed Excel color index is a system color.
Record which contains a Boolean value.
The CHATTACHEDLABEL record that contains the type of a data point label.
XclExpChAttachedLabel(sal_uInt16 nFlags)
XclExpChTextRef mxYAxisTitle
The X axis title (CHTEXT group).
bool Is3dChart() const
Returns true, if the chart is three-dimensional.
XclExpChAxesSet(const XclExpChRoot &rRoot, sal_uInt16 nAxesSetId)
XclExpChTextRef mxXAxisTitle
The Z axis (CHAXIS group).
XclExpChTypeGroupRef GetFirstTypeGroup() const
Returns first inserted chart type group.
XclExpChAxisRef mxZAxis
The Y axis (CHAXIS group).
XclExpChAxisRef mxYAxis
The X axis (CHAXIS group).
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
XclExpChFrameRef mxPlotFrame
The Z axis title (CHTEXT group).
XclExpChFramePosRef mxFramePos
Contents of the CHAXESSET record.
XclExpChAxisRef mxXAxis
Outer plot area position (CHFRAMEPOS record).
XclExpChTypeGroupRef GetLastTypeGroup() const
Returns last inserted chart type group.
sal_Int32 GetApiAxesSetIndex() const
Returns the axes set index used by the chart API.
void ConvertAxis(XclExpChAxisRef &rxChAxis, sal_uInt16 nAxisType, XclExpChTextRef &rxChAxisTitle, sal_uInt16 nTitleTarget, css::uno::Reference< css::chart2::XCoordinateSystem > const &xCoordSystem, const XclChExtTypeInfo &rTypeInfo, sal_Int32 nCrossingAxisDim)
Converts a complete axis object including axis title.
sal_uInt16 GetAxesSetId() const
Returns the index of the axes set (primary/secondary).
XclExpChTextRef mxZAxisTitle
The Y axis title (CHTEXT group).
XclExpRecordList< XclExpChTypeGroup > maTypeGroups
Plot area (CHPLOTFRAME group).
sal_uInt16 Convert(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, sal_uInt16 nFirstGroupIdx)
Converts the passed diagram to chart record data.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Represents the CHAXIS record group describing an entire chart axis.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclExpChLabelRangeRef mxLabelRange
Contents of the CHAXIS record.
XclExpChLineFormatRef mxMinorGrid
Major grid line format (CHLINEFORMAT record).
XclExpChFrameRef mxWallFrame
Minor grid line format (CHLINEFORMAT record).
XclExpChLineFormatRef mxAxisLine
Index into font buffer (CHFONT record).
void ConvertWall(css::uno::Reference< css::chart2::XDiagram > const &xDiagram)
Converts and writes 3D wall/floor properties from the passed diagram.
XclExpChFontRef mxFont
Axis ticks (CHTICK record).
XclExpChValueRangeRef mxValueRange
Category scaling (CHLABELRANGE record).
sal_uInt16 mnNumFmtIdx
Wall/floor format (sub records of CHFRAME group).
XclExpChLineFormatRef mxMajorGrid
Axis line format (CHLINEFORMAT record).
virtual void SetFont(XclExpChFontRef xFont, model::ComplexColor const &rComplexColor, sal_uInt32 nColorId) override
Sets font color and color identifier to internal data structures.
virtual void SetRotation(sal_uInt16 nRotation) override
Sets text rotation to internal data structures.
XclExpChTickRef mxTick
Value scaling (CHVALUERANGE record).
XclExpChAxis(const XclExpChRoot &rRoot, sal_uInt16 nAxisType)
sal_uInt16 GetAxisType() const
Returns the type of this axis.
void Convert(css::uno::Reference< css::chart2::XAxis > const &xAxis, css::uno::Reference< css::chart2::XAxis > const &xCrossingAxis, css::uno::Reference< css::chart::XAxis > const &xChart1Axis, const XclChExtTypeInfo &rTypeInfo)
Converts formatting and scaling settings from the passed axis.
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
Represents the CHCHART3D record that contains 3D view settings.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
void Convert(const ScfPropertySet &rPropSet, bool b3dWallChart)
Converts 3d settings for the passed chart type.
Represents the CHCHART record group describing the chart contents.
XclExpRecordList< XclExpChText > maLabels
Chart title (CHTEXT group).
void RemoveLastSeries()
Removes the last created data series object from the series list.
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
void SetManualPlotArea()
Sets the plot area position and size to manual mode.
XclExpChAxesSetRef mxSecnAxesSet
Primary axes set (CHAXESSET group).
XclExpChChart(const XclExpRoot &rRoot, css::uno::Reference< css::chart2::XChartDocument > const &xChartDoc, const tools::Rectangle &rChartRect)
XclExpChFrameRef mxFrame
List of series data (CHSERIES groups).
XclChProperties maProps
Chart frame format (CHFRAME group).
XclExpChTextRef mxTitle
Secondary axes set (CHAXESSET group).
XclExpChSeriesRef CreateSeries()
Creates, registers and returns a new data series object.
XclExpChAxesSetRef mxPrimAxesSet
Chart properties (CHPROPERTIES record).
XclExpChSeriesList maSeries
Position of the chart on the sheet (CHCHART record).
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
void SetDataLabel(XclExpChTextRef const &xText)
Stores a CHTEXT group that describes a data point label.
Represents the CHDROPBAR record group describing pos/neg bars in line charts.
void Convert(const ScfPropertySet &rPropSet)
Converts and writes the contained frame data to the passed property set.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclChObjectType meObjType
XclExpChDropBar(const XclExpChRoot &rRoot, XclChObjectType eObjType)
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
void ConvertRotationBase(const ScfPropertySet &rPropSet, bool bSupportsStacked)
Converts rotation settings, calls virtual function SetRotation().
void ConvertFontBase(const XclExpChRoot &rRoot, sal_uInt16 nFontIdx)
Creates a CHFONT record from the passed font index, calls virtual function SetFont().
virtual ~XclExpChFontBase()
virtual void SetRotation(sal_uInt16 nRotation)=0
Derived classes set text rotation to internal data structures.
virtual void SetFont(XclExpChFontRef xFont, const model::ComplexColor &rComplexColor, sal_uInt32 nColorId)=0
Derived classes set font color and color identifier to internal data structures.
The CHFONT record containing a font index for text objects.
XclExpChFont(sal_uInt16 nFontIdx)
Additional data label settings in the future record CHFRLABELPROPS.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
void Convert(const ScfPropertySet &rPropSet, bool bShowCateg, bool bShowValue, bool bShowPercent, bool bShowBubble)
Converts separator and the passed data label flags.
XclExpChFrLabelProps(const XclExpChRoot &rRoot)
XclExpChEscherFormatRef mxEscherFmt
Area format (CHAREAFORMAT record).
void WriteFrameRecords(XclExpStream &rStrm)
Writes all contained frame records to the passed stream.
XclExpChLineFormatRef mxLineFmt
XclExpChAreaFormatRef mxAreaFmt
Line format (CHLINEFORMAT record).
void ConvertFrameBase(const XclExpChRoot &rRoot, const ScfPropertySet &rPropSet, XclChObjectType eObjType)
Converts frame formatting properties from the passed property set.
virtual ~XclExpChFrameBase()
bool IsDefaultFrameBase(XclChFrameType eDefFrameType) const
Returns true, if the frame contains default formatting (as if the frame is missing).
void SetDefaultFrameBase(const XclExpChRoot &rRoot, XclChFrameType eDefFrameType, bool bIsFrame)
Sets the frame formatting to the specified default type.
XclExpChFramePos(sal_uInt16 nTLMode)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Represents the CHFRAME record group containing object frame properties.
bool IsDefault() const
Returns true, if the frame object contains default formats.
virtual void Save(XclExpStream &rStrm) override
Writes the entire record group.
XclChObjectType meObjType
Contents of the CHFRAME record.
bool IsDeleteable() const
Returns true, if the frame object can be deleted because it contains default formats.
void SetAutoFlags(bool bAutoPos, bool bAutoSize)
Sets the specified automatic flags.
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
void Convert(const ScfPropertySet &rPropSet)
Converts frame formatting properties from the passed property set.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclExpChFrame(const XclExpChRoot &rRoot, XclChObjectType eObjType)
Base class for chart future records.
XclExpChFutureRecordBase(const XclExpChRoot &rRoot, XclFutureRecType eRecType, sal_uInt16 nRecId, std::size_t nRecSize)
virtual void Save(XclExpStream &rStrm) override
Writes missing CHFRBLOCKBEGIN records and this record.
Base class for chart record groups.
virtual ~XclExpChGroupBase() override
virtual void Save(XclExpStream &rStrm) override
Saves the header record.
virtual bool HasSubRecords() const
Derived classes return whether there are any records embedded in this group.
void SetFutureRecordContext(sal_uInt16 nFrContext, sal_uInt16 nFrValue1=0, sal_uInt16 nFrValue2=0)
Sets context information for future record blocks.
XclExpChGroupBase(const XclExpChRoot &rRoot, sal_uInt16 nFrType, sal_uInt16 nRecId, std::size_t nRecSize=0)
virtual void WriteSubRecords(XclExpStream &rStrm)=0
Derived classes implement writing any records embedded in this group.
XclExpChLabelRange(const XclExpChRoot &rRoot)
void Convert(const css::chart2::ScaleData &rScaleData, const ScfPropertySet &rChart1Axis, bool bMirrorOrient)
Converts category axis scaling settings.
XclChDateRange maDateData
Contents of the CHLABELRANGE record.
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclChLabelRange maLabelData
void ConvertAxisPosition(const ScfPropertySet &rPropSet)
Converts position settings of a crossing axis at this axis.
Represents the CHLEGEND record group describing the chart legend.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
XclExpChTextRef mxText
Legend frame position (CHFRAMEPOS record).
void Convert(const ScfPropertySet &rPropSet)
Converts all legend settings from the passed property set.
XclExpChFrameRef mxFrame
Legend text format (CHTEXT group).
XclExpChLegend(const XclExpChRoot &rRoot)
XclExpChFramePosRef mxFramePos
Contents of the CHLEGEND record.
The CHOBJECTLINK record linking a text object to a specific chart object.
XclExpChObjectLink(sal_uInt16 nLinkTarget, const XclChDataPointPos &rPointPos)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Base class for complex chart classes, provides access to other components of the chart.
void FinalizeFutureRecBlock(XclExpStream &rStrm)
Called from XclExpChGroupBase::Save, finalizes the current future record level.
sal_Int32 CalcChartXFromHmm(sal_Int32 nPosX) const
Converts the passed horizontal coordinate from 1/100 mm to Excel chart units.
XclExpChChart & GetChartData() const
Returns a reference to the parent chart data object.
void FinishConversion() const
Finishes the API chart document conversion.
void ConvertLineFormat(XclChLineFormat &rLineFmt, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode) const
Reads all line properties from the passed property set.
static sal_uInt16 ConvertPieRotation(const ScfPropertySet &rPropSet)
Reads the pie rotation property and returns the converted angle.
void ConvertEscherFormat(XclChEscherFormat &rEscherFmt, XclChPicFormat &rPicFmt, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode) const
Reads gradient or bitmap area properties from the passed property set.
XclChRectangle CalcChartRectFromHmm(const css::awt::Rectangle &rRect) const
Converts the passed rectangle from 1/100 mm to Excel chart units.
void SetSystemColor(Color &rColor, sal_uInt32 &rnColorId, sal_uInt16 nSysColorIdx) const
Sets a system color and the respective color identifier.
void InitializeFutureRecBlock(XclExpStream &rStrm)
Called from XclExpChFutureRecordBase::Save, Initializes the current future record level.
const XclChFormatInfo & GetFormatInfo(XclChObjectType eObjType) const
Returns an info struct about auto formatting for the passed object type.
XclExpChRootDataRef mxChData
sal_Int32 CalcChartYFromHmm(sal_Int32 nPosY) const
Converts the passed vertical coordinate from 1/100 mm to Excel chart units.
const XclChTypeInfo & GetChartTypeInfo(XclChTypeId eType) const
Returns chart type info for a unique chart type identifier.
sal_uInt16 ConvertFont(const ScfPropertySet &rPropSet, sal_Int16 nScript) const
Reads font properties from the passed property set.
const XclExpChRoot & GetChRoot() const
Returns this root instance - for code readability in derived classes.
void InitConversion(css::uno::Reference< css::chart2::XChartDocument > const &xChartDoc, const tools::Rectangle &rChartRect) const
Starts the API chart document conversion.
virtual ~XclExpChRoot() override
void RegisterFutureRecBlock(const XclChFrBlock &rFrBlock)
Called from XclExpChGroupBase::Save, registers a new future record level.
bool ConvertAreaFormat(XclChAreaFormat &rAreaFmt, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode) const
Reads solid area properties from the passed property set.
bool IsSystemColor(const Color &rColor, sal_uInt16 nSysColorIdx) const
Returns true, if the passed color equals to the specified system color.
XclExpChRoot(const XclExpRoot &rRoot, XclExpChChart &rChartData)
css::uno::Reference< css::chart2::XChartDocument > const & GetChartDocument() const
Returns the API Chart document model.
Represents the CHSERERRORBAR record containing settings for error bars.
XclExpChSerErrorBar(const XclExpChRoot &rRoot, sal_uInt8 nBarType)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
bool Convert(XclExpChSourceLink &rValueLink, sal_uInt16 &rnValueCount, const ScfPropertySet &rPropSet)
Converts the passed error bar settings, returns true if error bar type is supported.
Represents the CHSERTRENDLINE record containing settings for a trend line.
XclExpChDataFormatRef mxDataFmt
Contents of the CHSERTRENDLINE record.
bool Convert(css::uno::Reference< css::chart2::XRegressionCurve > const &xRegCurve, sal_uInt16 nSeriesIdx)
Converts the passed trend line, returns true if trend line type is supported.
XclExpChSerTrendLine(const XclExpChRoot &rRoot)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclExpChTextRef mxLabel
Formatting settings of the trend line.
Represents the CHSERIES record group describing a data series in a chart.
bool ConvertErrorBar(const XclExpChSeries &rParent, const ScfPropertySet &rPropSet, sal_uInt8 nBarId)
Converts the passed error bar settings (called at error bar child series).
void CreateErrorBar(const ScfPropertySet &rPropSet, const OUString &rShowPropName, sal_uInt8 nBarId)
Tries to create an error bar series object (called at parent series).
XclExpChSeries(const XclExpChRoot &rRoot, sal_uInt16 nSeriesIdx)
XclExpChSerTrendLineRef mxTrendLine
CHDATAFORMAT groups for data point formats.
void InitFromParent(const XclExpChSeries &rParent)
Initializes members of this series to represent a child of the passed series.
XclExpChSerErrorBarRef mxErrorBar
Trend line settings (CHSERTRENDLINE record).
void ConvertCategSequence(css::uno::Reference< css::chart2::data::XLabeledDataSequence > const &xCategSeq)
Converts and inserts category ranges for all inserted series.
XclExpChSourceLinkRef mxTitleLink
Contents of the CHSERIES record.
sal_uInt16 mnGroupIdx
Error bar settings (CHSERERRORBAR record).
void CreateTrendLines(css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries)
Tries to create trend line series objects (called at parent series).
XclExpChSourceLinkRef mxValueLink
Link data for series title.
sal_uInt16 mnParentIdx
0-based series index.
XclExpRecordList< XclExpChDataFormat > maPointFmts
CHDATAFORMAT group for series format.
XclExpChDataFormatRef mxSeriesFmt
Link data for series bubble sizes.
XclExpChSourceLinkRef mxBubbleLink
Link data for series category names.
bool ConvertTrendLine(const XclExpChSeries &rParent, css::uno::Reference< css::chart2::XRegressionCurve > const &xRegCurve)
Converts the passed error bar settings (called at trend line child series).
sal_uInt16 mnSeriesIdx
Chart type group (CHTYPEGROUP group) this series is assigned to.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclExpChSourceLinkRef mxCategLink
Link data for series values.
bool ConvertDataSeries(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries, const XclChExtTypeInfo &rTypeInfo, sal_uInt16 nGroupIdx, sal_uInt16 nFormatIdx)
Converts the passed data series (source links and formatting).
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
bool ConvertStockSeries(css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries, std::u16string_view rValueRole, sal_uInt16 nGroupIdx, sal_uInt16 nFormatIdx, bool bCloseSymbol)
Converts the passed data series for stock charts.
void CreateErrorBars(const ScfPropertySet &rPropSet, const OUString &rBarPropName, sal_uInt8 nPosBarId, sal_uInt8 nNegBarId)
Tries to create positive and negative error bar series objects (called at parent series).
sal_uInt16 ConvertDataSequence(css::uno::Reference< css::chart2::data::XDataSequence > const &xDataSeq, bool bSplitToColumns, sal_uInt16 nDefCount=0)
Converts the passed source link, returns the number of linked values.
void AppendString(std::u16string_view rStr)
sal_uInt16 ConvertStringSequence(const css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > > &rStringSeq)
Converts the passed sequence of formatted string objects, returns leading font index.
void ConvertString(const OUString &aString)
virtual void Save(XclExpStream &rStrm) override
Writes the CHSOURCELINK record and optionally a CHSTRING record with explicit string data.
void ConvertNumFmt(const ScfPropertySet &rPropSet, bool bPercent)
Converts the number format from the passed property set.
XclExpStringRef mxString
Formula with link to source data.
XclTokenArrayRef mxLinkFmla
Contents of the CHSOURCELINK record.
XclExpChSourceLink(const XclExpChRoot &rRoot, sal_uInt8 nDestType)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
Represents the CHTEXT record group containing text object properties.
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
void ConvertTitle(css::uno::Reference< css::chart2::XTitle > const &xTitle, sal_uInt16 nTarget, const OUString *pSubTitle)
Converts all text settings of the passed title text object.
XclExpChText(const XclExpChRoot &rRoot)
virtual void SetRotation(sal_uInt16 nRotation) override
Sets text rotation to internal data structures.
XclExpChFrLabelPropsRef mxLabelProps
Link target for this text object.
XclExpChFontRef mxFont
Text object frame properties (CHFRAME group).
void ConvertTrendLineEquation(const ScfPropertySet &rPropSet, const XclChDataPointPos &rPointPos)
Converts all settings of the passed trend line equation box.
void ConvertLegend(const ScfPropertySet &rPropSet)
Converts all text settings of the passed legend.
XclExpChSourceLinkRef mxSrcLink
Relative text frame position (CHFRAMEPOS record).
XclExpChFrameRef mxFrame
Linked data (CHSOURCELINK with CHSTRING record).
sal_uInt32 mnTextColorId
Extended data label properties (CHFRLABELPROPS record).
XclExpChFramePosRef mxFramePos
Contents of the CHTEXT record.
XclExpChObjectLinkRef mxObjLink
Index into font buffer (CHFONT record).
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
sal_uInt16 GetAttLabelFlags() const
Returns the flags needed for the CHATTACHEDLABEL record.
virtual void SetFont(XclExpChFontRef xFont, model::ComplexColor const &rComplexColor, sal_uInt32 nColorId) override
Sets font color and color identifier to internal data structures.
bool ConvertDataLabel(const ScfPropertySet &rPropSet, const XclChTypeInfo &rTypeInfo, const XclChDataPointPos &rPointPos)
Converts all settings of the passed data point caption text object.
void Convert(const ScfPropertySet &rPropSet, const XclChExtTypeInfo &rTypeInfo, sal_uInt16 nAxisType)
Converts axis tick mark settings.
void SetRotation(sal_uInt16 nRotation)
Sets text rotation to internal data structures.
sal_uInt32 mnTextColorId
Contents of the CHTICK record.
XclExpChTick(const XclExpChRoot &rRoot)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
void SetFontColor(model::ComplexColor const &rComplexColor, sal_uInt32 nColorId)
Sets font color and color identifier to internal data structures.
Represents the CHTYPEGROUP record group describing a group of series.
XclExpChType maType
Contents of the CHTYPEGROUP record.
void ConvertType(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx, bool b3dChart, bool bSwappedAxesSet, bool bHasXLabels)
Converts the passed chart type to Excel type settings.
void CreateDataSeries(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries)
Creates all data series of any chart type except stock charts.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclExpChLegendRef mxLegend
3D settings (CHCHART3D record).
bool CreateStockSeries(css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries, std::u16string_view rValueRole, bool bCloseSymbol)
Creates a single data series of a stock chart.
sal_uInt16 GetFreeFormatIdx() const
Returns an unused format index to be used for the next created series.
virtual void WriteSubRecords(XclExpStream &rStrm) override
Writes all embedded records.
XclExpChDropBarRef mxDownBar
White dropbars (CHDROPBAR group).
void ConvertCategSequence(css::uno::Reference< css::chart2::data::XLabeledDataSequence > const &xCategSeq)
Converts and inserts category ranges for all inserted series.
XclExpChDropBarRef mxUpBar
Chart legend (CHLEGEND group).
const XclChExtTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
XclExpChSeriesList maSeries
Extended chart type info.
void ConvertLegend(const ScfPropertySet &rPropSet)
Creates a legend object and converts all legend settings.
sal_uInt16 GetGroupIdx() const
Returns the index of this chart type group format.
XclExpChTypeGroup(const XclExpChRoot &rRoot, sal_uInt16 nGroupIdx)
void ConvertSeries(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nGroupAxesSetIdx, bool bPercent, bool bConnectorLines)
Converts and inserts all series from the passed chart type.
XclChExtTypeInfo maTypeInfo
Chart type (e.g. CHBAR, CHLINE, ...).
void CreateAllStockSeries(css::uno::Reference< css::chart2::XChartType > const &xChartType, css::uno::Reference< css::chart2::XDataSeries > const &xDataSeries)
Creates all data series of a stock chart.
XclExpChChart3dRef mxChart3d
List of series data (CHSERIES groups).
std::map< sal_uInt16, std::unique_ptr< XclExpChLineFormat > > m_ChartLines
Black dropbars (CHDROPBAR group).
bool Is3dWallChart() const
Returns true, if chart type supports wall and floor format.
bool Is3dChart() const
Returns true, if the chart is three-dimensional.
const XclChTypeInfo & GetTypeInfo() const
Returns the chart type info struct for the contained chart type.
void SetStacked(bool bPercent)
Sets stacking mode (standard or percent) for the series in this chart type group.
void Convert(css::uno::Reference< css::chart2::XDiagram > const &xDiagram, css::uno::Reference< css::chart2::XChartType > const &xChartType, sal_Int32 nApiAxesSetIdx, bool bSwappedAxesSet, bool bHasXLabels)
Converts the passed chart type and the contained data series.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
XclChTypeInfo maTypeInfo
Contents of the chart type record.
XclExpChType(const XclExpChRoot &rRoot)
XclExpChValueRange(const XclExpChRoot &rRoot)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
void ConvertAxisPosition(const ScfPropertySet &rPropSet)
Converts position settings of a crossing axis at this axis.
void Convert(const css::chart2::ScaleData &rScaleData)
Converts value axis scaling settings.
Represents the group of DFF and OBJ records containing all drawing shapes embedded in the chart objec...
virtual void Save(XclExpStream &rStrm) override
Overwrite this method to do any operation while saving the record.
std::shared_ptr< XclExpObjectManager > mxObjMgr
virtual ~XclExpChartDrawing() override
XclExpChartDrawing(const XclExpRoot &rRoot, const css::uno::Reference< css::frame::XModel > &rxModel, const Size &rChartSize)
rtl::Reference< XclExpRecordBase > mxObjRecs
Contains all page (print) settings records for a chart object.
XclExpChart(const XclExpRoot &rRoot, css::uno::Reference< css::frame::XModel > const &xModel, const tools::Rectangle &rChartRect)
sal_uInt16 Insert(const XclFontData &rFontData, XclExpColorType eColorType, bool bAppFont=false)
Inserts a new font with the passed font data into the buffer if not present.
const XclExpFont * GetFont(sal_uInt16 nXclFont) const
Returns the specified font from font list.
Stores all data of an Excel font and provides export of FONT records.
virtual void Save(XclExpStream &rStrm) override
Writes the extended record header and calls WriteBody().
sal_uInt16 Insert(sal_uInt32 nScNumFmt)
Inserts a number format into the format buffer.
Stores all used colors in the document.
sal_uInt32 InsertColor(const Color &rColor, XclExpColorType eType, sal_uInt16 nAutoDefault=0)
Inserts the color into the list and updates weighting.
sal_uInt16 GetColorIndex(sal_uInt32 nColorId) const
Returns the Excel palette index of the color with passed color ID.
static sal_uInt32 GetColorIdFromIndex(sal_uInt16 nIndex)
Returns the color ID representing a fixed Excel palette index (i.e.
RecType * GetLastRecord() const
Returns reference to the last existing record or empty reference, if list is empty.
RecType * GetFirstRecord() const
Returns reference to the first existing record or empty reference, if list is empty.
void AppendNewRecord(RecType *pRec)
Appends a newly created record to the list.
void RemoveRecord(size_t nPos)
Removes the record at the specified position from the list.
virtual void Save(XclExpStream &rStrm) override
Writes the complete record list.
void AppendRecord(RecType *pRec)
Appends a record to the list.
RecType * GetRecord(size_t nPos) const
Returns reference to an existing record or empty reference on error.
Base class for single records with any content.
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
sal_uInt16 GetRecId() const
Returns the current record ID.
void SetRecId(sal_uInt16 nRecId)
Sets a new record ID.
Access to global data from other classes.
XclExpFontBuffer & GetFontBuffer() const
Returns the font buffer.
XclExpFormulaCompiler & GetFormulaCompiler() const
Returns the formula compiler to produce formula token arrays.
XclExpObjectManager & GetObjectManager() const
Returns the drawing object manager.
XclExpNumFmtBuffer & GetNumFmtBuffer() const
Returns the number format buffer.
XclExpPalette & GetPalette() const
Returns the color buffer.
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
This class is used to export Excel record streams.
static sal_Int16 GetLeadingScriptType(const XclExpRoot &rRoot, const OUString &rString)
Returns the script type first text portion different to WEAK, or the system default script type,...
static XclExpStringRef CreateString(const XclExpRoot &rRoot, const OUString &rString, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Creates a new unformatted string from the passed string.
static void AppendString(XclExpString &rXclString, const XclExpRoot &rRoot, std::u16string_view rString)
Appends an unformatted string to an Excel string object.
This class stores an unformatted or formatted string for Excel export.
Represents a complete substream of records enclosed into a pair of BOF/EOF records.
A record with a single value of type Type.
void SetValue(const Type &rValue)
Sets a new record value.
void ReadFontProperties(XclFontData &rFontData, const ScfPropertySet &rPropSet, XclFontPropSetType eType, sal_Int16 nScript=-1)
Reads all font properties from the passed property set.
sal_Int16 GetDefApiScript() const
Returns the default script type, e.g.
XclChPropSetHelper & GetChartPropSetHelper() const
Returns the property set helper for the chart filters.
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
DateTime GetDateTimeFromDouble(double fValue) const
Converts a floating-point value to a date/time 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).
XclFontPropSetHelper & GetFontPropSetHelper() const
Returns the property set helper for fonts.
Color const & getFinalColor() const
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
@ TOP_LEFT
top left cell of area
#define ESCHER_Prop_fillBackColor
#define ESCHER_Prop_fillColor
std::shared_ptr< T > make_shared(Args &&... args)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
std::basic_ostream< charT, traits > & operator<<(std::basic_ostream< charT, traits > &stream, const ParamIfsResult &rRes)
AxisType
The method of calculating the axis min or max value.
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
#define STREAM_SEEK_TO_BEGIN
Complex reference (a range) into the sheet.
void InitRange(const ScRange &rRange)
ScAddress toAbs(const ScSheetLimits &rLimits, const ScAddress &rPos) const
void SetFlag3D(bool bVal)
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.
bool mbSpline
Chart is actually a 3D chart.
Contains the type and context of a block of future records which are guarded by CHFRBLOCKBEGIN and CH...
sal_uInt16 mnContext
Type of the future record block.
sal_uInt16 mnValue1
Context dependent on type.
sal_uInt16 mnValue2
Optional primary value for current context.
sal_uInt16 mnFlags
Separator between label values.
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, ...).
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.
sal_uInt16 mnRecId
Chart type category this type belongs to.
bool mbTicksBetweenCateg
true = Insert unstacked series in reverse order.
bool mbReverseSeries
true = Series can be stacked on each other.
sal_Int32 mnDefaultLabelPos
Mode for varying point colors.
bool mbCategoryAxis
true = Only first series visible.
XclChTypeCateg meTypeCateg
Unique chart type identifier.
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 export filter.
XclChFrBlockVector maWrittenFrBlocks
The chart data object.
::std::vector< XclChFrBlock > XclChFrBlockVector
void RegisterFutureRecBlock(const XclChFrBlock &rFrBlock)
Registers a new future record level.
XclChFrBlockVector maUnwrittenFrBlocks
Stack of future record levels already written out.
void FinalizeFutureRecBlock(XclExpStream &rStrm)
Finalizes the current future record level (writes CHFRBLOCKEND record if needed).
XclExpChChart & mrChartData
void InitializeFutureRecBlock(XclExpStream &rStrm)
Initializes the current future record level (writes all unwritten CHFRBLOCKBEGIN records).
XclExpChRootData(XclExpChChart &rChartData)
Stack of future record levels not yet written out.
This struct helps reading and writing Excel fonts.
Reference< XFrame > xFrame
Reference< XModel > xModel
constexpr OUStringLiteral PERCENT(u"Percent")
static void lcl_getChartSubTitle(const Reference< XChartDocument > &xChartDoc, OUString &rSubTitle)
XclExpValueRecord< sal_uInt16 > XclExpUInt16Record
A record containing an unsigned 16-bit value.
@ EXC_COLOR_CHARTAREA
Line in a chart.
@ EXC_COLOR_CHARTTEXT
Background area of a cell.
@ EXC_COLOR_CHARTLINE
Text color in a chart.
constexpr OUStringLiteral EXC_CHPROP_ROTATIONHORIZONTAL
constexpr OUStringLiteral EXC_CHPROP_SWAPXANDYAXIS
const sal_uInt16 EXC_ID_CHEND
const sal_uInt16 EXC_CHFRBLOCK_TYPE_TYPEGROUP
const sal_uInt16 EXC_CHTEXT_SHOWSYMBOL
Automatic text color.
constexpr OUStringLiteral EXC_CHPROP_ROLE
const sal_uInt8 EXC_CHTICK_OUTSIDE
const sal_uInt16 EXC_CHFRBLOCK_TYPE_DROPBAR
constexpr OUStringLiteral EXC_CHPROP_GEOMETRY3D
const sal_uInt16 EXC_CHVALUERANGE_AUTOMAJOR
@ EXC_CHTYPECATEG_SCATTER
Pie and donut charts.
@ 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_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_uInt8 EXC_CHSRCLINK_DIRECTLY
const sal_uInt16 EXC_ID_CHLEGEND
Varied colors for points.
const sal_uInt16 EXC_CHFRAMEPOS_PARENT
const sal_uInt16 EXC_CHOBJLINK_YAXIS
Chart title.
const sal_uInt16 EXC_ID_CHFRBLOCKEND
const sal_uInt16 EXC_ID_CHSERPARENT
const sal_uInt16 EXC_CHAXIS_Y
constexpr OUStringLiteral EXC_CHPROP_DISPLAYLABELS
const sal_uInt16 EXC_CHPROPS_MANPLOTAREA
Do not resize chart with window.
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_uInt8 EXC_CHFRINFO_EXCELXP2003
constexpr OUStringLiteral EXC_CHPROP_BLACKDAY
const sal_uInt16 EXC_CHTEXT_POS_AXIS
const sal_uInt16 EXC_CHFRBLOCK_TYPE_TEXT
const sal_uInt16 EXC_CHLEGEND_STACKED
const sal_uInt16 EXC_CHTEXT_AUTOGEN
Label text generated from chart data.
constexpr OUStringLiteral EXC_CHPROP_INTERCEPT_VALUE
const sal_uInt16 EXC_ID_CHPICFORMAT
true = 2d wall/gridlines, no floor.
const sal_uInt16 EXC_ID_CHAXESSET
constexpr OUStringLiteral EXC_CHPROP_ERRORBARX
const sal_uInt8 EXC_CHTICK_INSIDE
const sal_uInt16 EXC_ID_CHFORMAT
const sal_uInt8 EXC_CHPROPS_EMPTY_INTERPOLATE
Plot empty values as zero.
const sal_uInt16 EXC_CHMARKERFORMAT_AUTO
Automatic symbol size for triple lines.
const sal_uInt16 EXC_CHRADAR_AXISLABELS
const sal_uInt16 EXC_ID_CHUSEDAXESSETS
const sal_uInt16 EXC_CHLEGEND_AUTOPOSX
const sal_uInt16 EXC_ID_CHFRINFO
For objects that are positioned in 1/1000 of plot area.
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_CHFRBLOCK_TYPE_CHART
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
const sal_uInt16 EXC_CHCHART3D_HASWALLS
true = automatic height to width ratio.
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_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_Int32 EXC_CHART_AXIS_X
For internal use only.
const sal_uInt16 EXC_CHATTLABEL_SHOWCATEGPERC
const sal_uInt16 EXC_CHDATERANGE_YEARS
constexpr OUStringLiteral EXC_CHPROP_LABEL
const sal_uInt16 EXC_CHMARKERFORMAT_DOWJ
const sal_uInt16 EXC_ID_CHLINE
const sal_uInt16 EXC_CHDATERANGE_AUTOMAJOR
const sal_Int32 EXC_CHART_AXESSET_SECONDARY
API primary axes set index.
const sal_uInt16 EXC_ID_CHDATERANGE
constexpr OUStringLiteral EXC_CHPROP_ROLE_CLOSEVALUES
const sal_uInt16 EXC_CHFRBLOCK_TYPE_LEGEND
const sal_uInt16 EXC_CHFRAME_AUTOSIZE
const sal_uInt16 EXC_CHFRBLOCK_TEXT_TITLE
For internal use only.
const sal_uInt16 EXC_CHBAR_PERCENT
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
const sal_uInt8 EXC_CHTICK_HIGH
Below diagram/right of diagram.
const sal_uInt16 EXC_CHTEXT_POS_LEFT
constexpr OUStringLiteral EXC_CHPROP_ATTRIBDATAPOINTS
const sal_uInt16 EXC_ID_CHSTRING
const sal_uInt8 EXC_CH3DDATAFORMAT_CIRC
Rectangular base.
const sal_uInt16 EXC_CHTEXT_POS_MOVED
const sal_uInt8 EXC_CHTICK_NEXT
Above diagram/left of diagram.
const sal_uInt16 EXC_ID_CHCHART3D
const sal_uInt16 EXC_CHLINEFORMAT_SOLID
const sal_uInt8 EXC_CH3DDATAFORMAT_SHARP
Straight to top.
const sal_uInt16 EXC_CHAXIS_X
const sal_uInt16 EXC_CHSERIESFORMAT_SMOOTHED
const sal_uInt16 EXC_CHAXIS_Z
const sal_uInt16 EXC_ID_CHATTACHEDLABEL
const sal_uInt8 EXC_CHSERTREND_POWER
const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXESSET
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_CHFRBLOCK_TEXT_DATALABEL
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.
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.
XclChPropertyMode
Specifies the type of a formatting.
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_CHTYPEGROUP_VARIEDCOLORS
const sal_uInt8 EXC_CHSRCLINK_DEFAULT
const sal_uInt16 EXC_CHFRAME_AUTOPOS
const sal_uInt16 EXC_CHLINE_PERCENT
const sal_uInt16 EXC_CHATTLABEL_SHOWPERCENT
constexpr OUStringLiteral EXC_CHPROP_POLYNOMIAL_DEGREE
const sal_uInt16 EXC_CHLABELRANGE_REVERSE
Other axis crosses at own maximum.
constexpr OUStringLiteral EXC_CHPROP_ADDITIONALSHAPES
const sal_uInt16 EXC_ID_CHRADARAREA
const sal_uInt16 EXC_CHAREAFORMAT_AUTO
const sal_uInt16 EXC_CHCHART3D_AUTOHEIGHT
false = Z axis, true = clustered/stacked.
const sal_uInt16 EXC_CHFRBLOCK_TYPE_UNKNOWN
constexpr OUStringLiteral EXC_CHPROP_RIGHTANGLEDAXES
constexpr OUStringLiteral EXC_CHPROP_RELATIVEPOSITION
const sal_uInt16 EXC_CHFRBLOCK_TYPE_AXIS
constexpr OUStringLiteral EXC_CHPROP_CONNECTBARS
constexpr OUStringLiteral EXC_CHPROP_PERCENTAGENUMFMT
const sal_uInt16 EXC_CHDATAFORMAT_ALLPOINTS
As point index: unknown format, don't use.
const sal_uInt16 EXC_CHSERIES_MAXSERIES
const sal_uInt16 EXC_ID_CHFRAMEPOS
const sal_uInt8 EXC_CHSERERR_YMINUS
const sal_uInt16 EXC_CHFRBLOCK_TYPE_FRAME
const sal_Int32 EXC_CHART_AXIS_NONE
Automatic rotation, e.g. axis labels (internal use only).
constexpr OUStringLiteral EXC_CHPROP_GAPWIDTHSEQ
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 sal_uInt16 EXC_CHPICFORMAT_NONE
const sal_uInt8 EXC_CHSRCLINK_WORKSHEET
const sal_uInt16 EXC_ID_CHAREAFORMAT
const sal_uInt16 EXC_CHDATERANGE_AUTOMAX
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_uInt8 EXC_CHTEXT_ALIGN_TOPLEFT
const sal_uInt16 EXC_ID_CHCHART
constexpr OUStringLiteral EXC_CHPROP_SHOWCORRELATION
const sal_uInt16 EXC_ID_CHUNITS
const sal_uInt16 EXC_ID_CHPLOTFRAME
const sal_uInt16 EXC_CHLEGEND_AUTOSERIES
constexpr OUStringLiteral EXC_CHPROP_COLOR
const sal_uInt8 EXC_CHSRCLINK_TITLE
const sal_uInt16 EXC_ID_CHPROPERTIES
constexpr OUStringLiteral EXC_CHPROP_CROSSOVERPOSITION
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_UNKNOWN
Surface chart.
@ EXC_CHTYPEID_STOCK
Area chart.
@ EXC_CHTYPEID_PIE
Filled radar chart.
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
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_CHFRBLOCK_TYPE_DATAFORMAT
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_CHLEGEND_AUTOPOSY
const sal_uInt16 EXC_CHPROPS_SHOWVISIBLEONLY
Manual series allocation.
constexpr OUStringLiteral EXC_CHPROP_FORCE_INTERCEPT
const sal_uInt16 EXC_CHFRLABELPROPS_SHOWSERIES
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_CHVALUERANGE_AUTOMIN
const sal_uInt16 EXC_CHTEXT_POS_AUTO
constexpr OUStringLiteral EXC_CHPROP_MINORTICKS
constexpr OUStringLiteral EXC_CHPROP_SHOWEQUATION
constexpr OUStringLiteral EXC_CHPROP_EXPTIMEINCREMENT
const sal_uInt8 EXC_CHSERERR_CUSTOM
const sal_uInt16 EXC_CHOBJLINK_XAXIS
Value axis (Y axis).
const sal_uInt16 EXC_CHLEGEND_DOCKED
const sal_uInt16 EXC_ID_CHOBJECTLINK
const sal_uInt16 EXC_CHVALUERANGE_MAXCROSS
Axis direction reversed.
constexpr OUStringLiteral EXC_CHPROP_RELATIVESIZE
constexpr OUStringLiteral EXC_CHPROP_MISSINGVALUETREATMENT
const sal_uInt16 EXC_CHTEXT_POS_INSIDE
const sal_uInt16 EXC_ID_CHTYPEGROUP
const sal_uInt8 EXC_CHTICK_NOLABEL
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_CHFRBLOCK_TYPE_SERIES
const sal_uInt16 EXC_CHAXESSET_PRIMARY
const sal_uInt16 EXC_ID_CHVALUERANGE
const sal_uInt8 EXC_CHSERTREND_MOVING_AVG
const sal_uInt16 EXC_CHMARKERFORMAT_NOSYMBOL
const sal_uInt16 EXC_CHTEXT_AUTOTEXT
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_uInt16 EXC_CHFRBLOCK_TEXT_AXISTITLE
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_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
const sal_uInt8 EXC_CHSRCLINK_VALUES
const sal_uInt8 EXC_CHTICK_LOW
constexpr OUStringLiteral EXC_CHPROP_ROLE_YVALUES
const sal_Int32 EXC_CHART_AXIS_Y
API X axis index.
const sal_uInt16 EXC_CHAXISLINE_AXISLINE
const sal_uInt16 EXC_CHDATERANGE_AUTOCROSS
const sal_uInt16 EXC_CHFRAMEPOS_CHARTSIZE
const sal_uInt8 EXC_CHSERTREND_POLYNOMIAL
const sal_Int32 EXC_CHART_AXESSET_PRIMARY
For internal use only.
const sal_uInt16 EXC_ID_CHSERERRORBAR
const sal_uInt16 EXC_CHAXISLINE_WALLS
Minor grid line.
constexpr OUStringLiteral EXC_CHPROP_SHOWPOSITIVEERROR
const sal_uInt16 EXC_ID_CHFRBLOCKBEGIN
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
XclChFrameType
Enumerates different types to handle missing frame objects.
@ 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
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
const sal_uInt16 EXC_CHUNITS_TWIPS
const sal_uInt16 EXC_CHTICK_AUTOCOLOR
const sal_uInt16 EXC_BOF_CHART
Regular worksheet.
const sal_uInt16 EXC_ID_PROTECT
XclFutureRecType
Enumerates different header types of future records.
@ EXC_FUTUREREC_UNUSEDREF
Record identifier and empty flags field.
@ EXC_BIFF8
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt16 EXC_FUTUREREC_EMPTYFLAGS
::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.
@ ForceUnicode
Default string settings.
@ SmartFlags
8-bit string length field (default: 16-bit).
const sal_uInt16 EXC_FONT_NOTFOUND
Application font index.
const sal_uInt16 EXC_FONT_APP
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).