23#include <com/sun/star/container/XNameContainer.hpp>
24#include <com/sun/star/awt/Size.hpp>
25#include <com/sun/star/awt/Gradient.hpp>
26#include <com/sun/star/drawing/Hatch.hpp>
27#include <com/sun/star/drawing/LineDash.hpp>
28#include <com/sun/star/drawing/LineStyle.hpp>
29#include <com/sun/star/drawing/FillStyle.hpp>
30#include <com/sun/star/drawing/BitmapMode.hpp>
31#include <com/sun/star/chart/DataLabelPlacement.hpp>
32#include <com/sun/star/chart/XAxisXSupplier.hpp>
33#include <com/sun/star/chart/XAxisYSupplier.hpp>
34#include <com/sun/star/chart/XAxisZSupplier.hpp>
35#include <com/sun/star/chart/XChartDocument.hpp>
36#include <com/sun/star/chart/XSecondAxisTitleSupplier.hpp>
37#include <com/sun/star/chart2/Symbol.hpp>
38#include <com/sun/star/chart2/XChartDocument.hpp>
39#include <com/sun/star/lang/XMultiServiceFactory.hpp>
69 mnSeriesIdx( nSeriesIdx ),
70 mnPointIdx( nPointIdx )
190 mfForecastFor( 0.0 ),
191 mfForecastBack( 0.0 ),
200 sal_math_Double* pDouble =
reinterpret_cast< sal_math_Double*
>( &
mfIntercept );
201 pDouble->w32_parts.msw = pDouble->w32_parts.lsw = 0xFFFFFFFF;
346 return nApiAxesSetIdx;
353 static const sal_uInt16 spnLineColors[] =
355 32, 33, 34, 35, 36, 37, 38, 39,
356 40, 41, 42, 43, 44, 45, 46, 47,
357 48, 49, 50, 51, 52, 53, 54, 55,
358 56, 57, 58, 59, 60, 61, 62, 8,
359 9, 10, 11, 12, 13, 14, 15, 16,
360 17, 18, 19, 20, 21, 22, 23, 24,
361 25, 26, 27, 28, 29, 30, 31, 63
363 return spnLineColors[ nFormatIdx %
SAL_N_ELEMENTS( spnLineColors ) ];
368 static const sal_uInt16 spnFillColors[] =
370 24, 25, 26, 27, 28, 29, 30, 31,
371 32, 33, 34, 35, 36, 37, 38, 39,
372 40, 41, 42, 43, 44, 45, 46, 47,
373 48, 49, 50, 51, 52, 53, 54, 55,
374 56, 57, 58, 59, 60, 61, 62, 63,
375 8, 9, 10, 11, 12, 13, 14, 15,
376 16, 17, 18, 19, 20, 21, 22, 23
378 return spnFillColors[ nFormatIdx %
SAL_N_ELEMENTS( spnFillColors ) ];
383 static const sal_uInt8 spnTrans[] = { 0x00, 0x40, 0x20, 0x60, 0x70 };
384 return spnTrans[ (nFormatIdx / 56) %
SAL_N_ELEMENTS( spnTrans ) ];
389 static const sal_uInt16 spnSymbols[] = {
398 static const bool spbFilled[] = {
399 false,
true,
true,
true,
false,
false,
false,
false,
true,
false };
400 return (nMarkerType <
SAL_N_ELEMENTS( spbFilled )) && spbFilled[ nMarkerType ];
411 default: OSL_FAIL(
"XclChartHelper::GetErrorBarValuesRole - unknown bar type" );
445 for(
auto const &rIt : spFmtInfos)
451 XclFmtInfoMap::const_iterator aIt =
maInfoMap.find( eObjType );
452 OSL_ENSURE( aIt !=
maInfoMap.end(),
"XclChFormatInfoProvider::GetFormatInfo - unknown object type" );
453 return (aIt ==
maInfoMap.end()) ? *spFmtInfos : *aIt->second;
461const char SERVICE_CHART2_AREA[] =
"com.sun.star.chart2.AreaChartType";
462const char SERVICE_CHART2_CANDLE[] =
"com.sun.star.chart2.CandleStickChartType";
463const char SERVICE_CHART2_COLUMN[] =
"com.sun.star.chart2.ColumnChartType";
464const char SERVICE_CHART2_LINE[] =
"com.sun.star.chart2.LineChartType";
465const char SERVICE_CHART2_NET[] =
"com.sun.star.chart2.NetChartType";
466const char SERVICE_CHART2_FILLEDNET[] =
"com.sun.star.chart2.FilledNetChartType";
467const char SERVICE_CHART2_PIE[] =
"com.sun.star.chart2.PieChartType";
468const char SERVICE_CHART2_SCATTER[] =
"com.sun.star.chart2.ScatterChartType";
469const char SERVICE_CHART2_BUBBLE[] =
"com.sun.star.chart2.BubbleChartType";
470const char SERVICE_CHART2_SURFACE[] =
"com.sun.star.chart2.ColumnChartType";
472namespace csscd = css::chart::DataLabelPlacement;
477 {
EXC_CHTYPEID_BAR,
EXC_CHTYPECATEG_BAR,
EXC_ID_CHBAR, SERVICE_CHART2_COLUMN,
EXC_CHVARPOINT_SINGLE, csscd::OUTSIDE,
true,
true,
false,
true,
true,
false,
true,
false,
true,
false,
true },
478 {
EXC_CHTYPEID_HORBAR,
EXC_CHTYPECATEG_BAR,
EXC_ID_CHBAR, SERVICE_CHART2_COLUMN,
EXC_CHVARPOINT_SINGLE, csscd::OUTSIDE,
false,
true,
false,
true,
true,
false,
true,
true,
true,
false,
true },
479 {
EXC_CHTYPEID_LINE,
EXC_CHTYPECATEG_LINE,
EXC_ID_CHLINE, SERVICE_CHART2_LINE,
EXC_CHVARPOINT_SINGLE, csscd::RIGHT,
true,
true,
false,
false,
true,
false,
true,
false,
true,
false,
false },
480 {
EXC_CHTYPEID_AREA,
EXC_CHTYPECATEG_LINE,
EXC_ID_CHAREA, SERVICE_CHART2_AREA,
EXC_CHVARPOINT_NONE, csscd::CENTER,
true,
true,
false,
true,
true,
false,
true,
false,
true,
true,
false },
481 {
EXC_CHTYPEID_STOCK,
EXC_CHTYPECATEG_LINE,
EXC_ID_CHLINE, SERVICE_CHART2_CANDLE,
EXC_CHVARPOINT_NONE, csscd::RIGHT,
true,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false },
482 {
EXC_CHTYPEID_RADARLINE,
EXC_CHTYPECATEG_RADAR,
EXC_ID_CHRADARLINE, SERVICE_CHART2_NET,
EXC_CHVARPOINT_SINGLE, csscd::TOP,
false,
false,
true,
false,
true,
false,
true,
false,
false,
false,
false },
483 {
EXC_CHTYPEID_RADARAREA,
EXC_CHTYPECATEG_RADAR,
EXC_ID_CHRADARAREA, SERVICE_CHART2_FILLEDNET,
EXC_CHVARPOINT_NONE, csscd::TOP,
false,
false,
true,
true,
true,
false,
true,
false,
false,
true,
false },
484 {
EXC_CHTYPEID_PIE,
EXC_CHTYPECATEG_PIE,
EXC_ID_CHPIE, SERVICE_CHART2_PIE,
EXC_CHVARPOINT_MULTI, csscd::AVOID_OVERLAP,
false,
true,
true,
true,
true,
true,
true,
false,
false,
false,
false },
485 {
EXC_CHTYPEID_DONUT,
EXC_CHTYPECATEG_PIE,
EXC_ID_CHPIE, SERVICE_CHART2_PIE,
EXC_CHVARPOINT_MULTI, csscd::AVOID_OVERLAP,
false,
true,
true,
true,
true,
false,
true,
false,
false,
false,
false },
486 {
EXC_CHTYPEID_PIEEXT,
EXC_CHTYPECATEG_PIE,
EXC_ID_CHPIEEXT, SERVICE_CHART2_PIE,
EXC_CHVARPOINT_MULTI, csscd::AVOID_OVERLAP,
false,
false,
true,
true,
true,
true,
true,
false,
false,
false,
false },
487 {
EXC_CHTYPEID_SCATTER,
EXC_CHTYPECATEG_SCATTER,
EXC_ID_CHSCATTER, SERVICE_CHART2_SCATTER,
EXC_CHVARPOINT_SINGLE, csscd::RIGHT,
true,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false },
488 {
EXC_CHTYPEID_BUBBLES,
EXC_CHTYPECATEG_SCATTER,
EXC_ID_CHSCATTER, SERVICE_CHART2_BUBBLE,
EXC_CHVARPOINT_SINGLE, csscd::RIGHT,
false,
false,
false,
true,
true,
false,
false,
false,
false,
false,
false },
489 {
EXC_CHTYPEID_SURFACE,
EXC_CHTYPECATEG_SURFACE,
EXC_ID_CHSURFACE, SERVICE_CHART2_SURFACE,
EXC_CHVARPOINT_NONE, csscd::RIGHT,
false,
true,
false,
true,
true,
false,
true,
false,
false,
false,
false },
490 {
EXC_CHTYPEID_UNKNOWN,
EXC_CHTYPECATEG_BAR,
EXC_ID_CHBAR, SERVICE_CHART2_COLUMN,
EXC_CHVARPOINT_SINGLE, csscd::OUTSIDE,
true,
true,
false,
true,
true,
false,
true,
false,
true,
false,
true }
511 for(
const auto &rIt : spTypeInfos)
517 XclChTypeInfoMap::const_iterator aIt =
maInfoMap.find( eTypeId );
518 OSL_ENSURE( aIt !=
maInfoMap.end(),
"XclChTypeInfoProvider::GetTypeInfo - unknown chart type" );
524 for(
const auto &rIt : spTypeInfos)
526 if(rIt.mnRecId == nRecId)
529 OSL_FAIL(
"XclChTypeInfoProvider::GetTypeInfoFromRecId - unknown record id" );
535 for(
auto const &rIt : spTypeInfos)
538 OSL_FAIL(
"XclChTypeInfoProvider::GetTypeInfoFromService - unknown service name" );
545 OUString aServiceName, OUString aObjNameBase ) :
548 maObjNameBase(
std::move( aObjNameBase )),
558 OSL_ENSURE(
mxContainer.is(),
"XclChObjectTable::GetObject - container not found" );
568 catch (uno::Exception &)
570 OSL_FAIL(
"XclChObjectTable::GetObject - object not found" );
582 OSL_ENSURE(
mxContainer.is(),
"XclChObjectTable::InsertObject - container not found" );
599 catch (uno::Exception &)
601 OSL_FAIL(
"XclChObjectTable::InsertObject - cannot insert object" );
613const char*
const sppcLineNamesCommon[] =
614 {
"LineStyle",
"LineWidth",
"LineColor",
"LineTransparence",
"LineDashName",
nullptr };
616const char*
const sppcLineNamesLinear[] =
617 {
"LineStyle",
"LineWidth",
"Color",
"Transparency",
"LineDashName",
nullptr };
619const char*
const sppcLineNamesFilled[] =
620 {
"BorderStyle",
"BorderWidth",
"BorderColor",
"BorderTransparency",
"BorderDashName",
nullptr };
623const char*
const sppcAreaNamesCommon[] = {
"FillStyle",
"FillColor",
"FillTransparence",
nullptr };
625const char*
const sppcAreaNamesFilled[] = {
"FillStyle",
"Color",
"Transparency",
nullptr };
627const char*
const sppcGradNamesCommon[] = {
"FillStyle",
"FillGradientName",
nullptr };
629const char*
const sppcGradNamesFilled[] = {
"FillStyle",
"GradientName",
nullptr };
631const char*
const sppcHatchNamesCommon[] = {
"FillStyle",
"FillHatchName",
"FillColor",
"FillBackground",
nullptr };
633const char*
const sppcHatchNamesFilled[] = {
"FillStyle",
"HatchName",
"Color",
"FillBackground",
nullptr };
635const char*
const sppcBitmapNames[] = {
"FillStyle",
"FillBitmapName",
"FillBitmapMode",
nullptr };
640 maLineHlpCommon( sppcLineNamesCommon ),
641 maLineHlpLinear( sppcLineNamesLinear ),
642 maLineHlpFilled( sppcLineNamesFilled ),
643 maAreaHlpCommon( sppcAreaNamesCommon ),
644 maAreaHlpFilled( sppcAreaNamesFilled ),
645 maGradHlpCommon( sppcGradNamesCommon ),
646 maGradHlpFilled( sppcGradNamesFilled ),
647 maHatchHlpCommon( sppcHatchNamesCommon ),
648 maHatchHlpFilled( sppcHatchNamesFilled ),
649 maBitmapHlp( sppcBitmapNames )
660 drawing::LineStyle eApiStyle = drawing::LineStyle_NONE;
661 sal_Int32 nApiWidth = 0;
662 sal_Int16 nApiTrans = 0;
667 rLineHlp >> eApiStyle >> nApiWidth >> rLineFmt.
maColor >> nApiTrans >> aDashNameAny;
681 case drawing::LineStyle_NONE:
684 case drawing::LineStyle_SOLID:
693 case drawing::LineStyle_DASH:
697 drawing::LineDash aApiDash;
698 if( (aDashNameAny >>= aDashName) && (rDashTable.
GetObject( aDashName ) >>= aApiDash) )
701 if( (aApiDash.Dashes == 0) || (aApiDash.DashLen < aApiDash.DotLen) )
703 ::std::swap( aApiDash.Dashes, aApiDash.Dots );
704 ::std::swap( aApiDash.DashLen, aApiDash.DotLen );
707 if( aApiDash.DotLen * 3 > aApiDash.DashLen * 2 )
711 if( (aApiDash.Dashes == 1) && (aApiDash.Dots >= 1) )
713 rLineFmt.
mnPattern = (aApiDash.Dots == 1) ?
715 else if( aApiDash.Dashes >= 1 )
717 rLineFmt.
mnPattern = (aApiDash.DashLen < 250) ?
723 OSL_FAIL(
"XclChPropSetHelper::ReadLineProperties - unknown line style" );
732 drawing::FillStyle eApiStyle = drawing::FillStyle_NONE;
733 sal_Int16 nTransparency = 0;
737 rAreaHlp >> eApiStyle >> rAreaFmt.
maPattColor >> nTransparency;
746 return (eApiStyle != drawing::FillStyle_NONE) && ((eApiStyle != drawing::FillStyle_SOLID) || (nTransparency > 0));
755 drawing::FillStyle eApiStyle = drawing::FillStyle_NONE;
757 sal_Int16 nTransparency = 0;
761 rAreaHlp >> eApiStyle >> aColor >> nTransparency;
765 case drawing::FillStyle_SOLID:
767 OSL_ENSURE( nTransparency > 0,
"XclChPropSetHelper::ReadEscherProperties - unexpected solid area without transparency" );
768 if( (0 < nTransparency) && (nTransparency <= 100) )
771 sal_uInt32 nEscherColor = 0x02000000;
775 sal_uInt32 nEscherOpacity =
static_cast< sal_uInt32
>( (100 - nTransparency) * 655.36 );
776 rEscherFmt.
mxEscherSet = std::make_shared<EscherPropertyContainer>();
786 case drawing::FillStyle_GRADIENT:
789 OUString aGradientName;
792 rGradHlp >> eApiStyle >> aGradientName;
793 awt::Gradient aGradient;
794 if( rGradientTable.
GetObject( aGradientName ) >>= aGradient )
797 rEscherFmt.
mxEscherSet = std::make_shared<EscherPropertyContainer>();
798 rEscherFmt.
mxEscherSet->CreateGradientProperties( aGradient );
802 case drawing::FillStyle_HATCH:
806 bool bFillBackground;
809 rHatchHlp >> eApiStyle >> aHatchName >> aColor >> bFillBackground;
810 drawing::Hatch aHatch;
811 if( rHatchTable.
GetObject( aHatchName ) >>= aHatch )
814 rEscherFmt.
mxEscherSet = std::make_shared<EscherPropertyContainer>();
815 rEscherFmt.
mxEscherSet->CreateEmbeddedHatchProperties( aHatch, aColor, bFillBackground );
820 case drawing::FillStyle_BITMAP:
823 OUString aBitmapName;
824 drawing::BitmapMode eApiBmpMode;
826 maBitmapHlp >> eApiStyle >> aBitmapName >> eApiBmpMode;
827 uno::Reference<awt::XBitmap> xBitmap;
828 if (rBitmapTable.
GetObject( aBitmapName ) >>= xBitmap)
831 rEscherFmt.
mxEscherSet = std::make_shared<EscherPropertyContainer>();
832 rEscherFmt.
mxEscherSet->CreateEmbeddedBitmapProperties( xBitmap, eApiBmpMode );
833 rPicFmt.
mnBmpMode = (eApiBmpMode == drawing::BitmapMode_REPEAT) ?
839 OSL_FAIL(
"XclChPropSetHelper::ReadEscherProperties - unknown fill style" );
846 chart2::Symbol aApiSymbol;
854 switch( aApiSymbol.Style )
856 case chart2::SymbolStyle_NONE:
859 case chart2::SymbolStyle_STANDARD:
860 switch( aApiSymbol.StandardSymbol )
887 sal_Int32 nApiSize = (aApiSymbol.Size.Width + aApiSymbol.Size.Height + 1) / 2;
912 sal_Int32 nApiWidth = 0;
921 drawing::LineStyle eApiStyle = drawing::LineStyle_NONE;
922 sal_Int16 nApiTrans = 0;
923 sal_Int32 nDotLen = ::std::min< sal_Int32 >( rLineFmt.
mnWeight + 105, 210 );
924 drawing::LineDash aApiDash( drawing::DashStyle_RECT, 0, nDotLen, 0, 4 * nDotLen, nDotLen );
929 eApiStyle = drawing::LineStyle_SOLID;
932 eApiStyle = drawing::LineStyle_SOLID; nApiTrans = 25;
935 eApiStyle = drawing::LineStyle_SOLID; nApiTrans = 50;
938 eApiStyle = drawing::LineStyle_SOLID; nApiTrans = 75;
941 eApiStyle = drawing::LineStyle_DASH; aApiDash.Dashes = 1;
944 eApiStyle = drawing::LineStyle_DASH; aApiDash.Dots = 1;
947 eApiStyle = drawing::LineStyle_DASH; aApiDash.Dashes = aApiDash.Dots = 1;
950 eApiStyle = drawing::LineStyle_DASH; aApiDash.Dashes = 1; aApiDash.Dots = 2;
955 sal_Int32 nApiColor = sal_Int32( rLineFmt.
maColor );
959 if( eApiStyle == drawing::LineStyle_DASH )
962 if( !aDashName.isEmpty() )
963 aDashNameAny <<= aDashName;
969 rLineHlp << eApiStyle << nApiWidth << nApiColor << nApiTrans << aDashNameAny;
976 drawing::FillStyle eFillStyle = drawing::FillStyle_NONE;
982 eFillStyle = drawing::FillStyle_SOLID;
989 rAreaHlp << eFillStyle << aColor << sal_Int16(0);
1005 switch( pStyleItem->GetValue() )
1007 case drawing::FillStyle_SOLID:
1013 sal_uInt16 nTransp = pTranspItem ? pTranspItem->GetValue() : 0;
1016 rAreaHlp << drawing::FillStyle_SOLID << pColorItem->GetColorValue() <<
static_cast< sal_Int16
>( nTransp );
1020 case drawing::FillStyle_GRADIENT:
1026 OUString aGradName = rGradientTable.
InsertObject( aGradientAny );
1027 if( !aGradName.isEmpty() )
1031 rGradHlp << drawing::FillStyle_GRADIENT << aGradName;
1037 case drawing::FillStyle_BITMAP:
1041 if (pBmpItem->QueryValue(aBitmapAny,
MID_BITMAP))
1043 OUString aBmpName = rBitmapTable.
InsertObject( aBitmapAny );
1044 if( !aBmpName.isEmpty() )
1049 drawing::BitmapMode eApiBmpMode = bStretch ? drawing::BitmapMode_STRETCH : drawing::BitmapMode_REPEAT;
1051 maBitmapHlp << drawing::FillStyle_BITMAP << aBmpName << eApiBmpMode;
1058 OSL_FAIL(
"XclChPropSetHelper::WriteEscherProperties - unknown fill mode" );
1066 chart2::Symbol aApiSymbol;
1067 aApiSymbol.Style = chart2::SymbolStyle_STANDARD;
1085 aApiSymbol.Size = awt::Size( nApiSize, nApiSize );
1088 aApiSymbol.FillColor = sal_Int32( rMarkerFmt.
maFillColor );
1090 aApiSymbol.FillColor : sal_Int32( rMarkerFmt.
maLineColor );
1097 ScfPropertySet& rPropSet, sal_uInt16 nRotation,
bool bSupportsStacked )
1104 if( bSupportsStacked )
1118 default: OSL_FAIL(
"XclChPropSetHelper::GetLineHelper - unknown property mode" );
1129 default: OSL_FAIL(
"XclChPropSetHelper::GetAreaHelper - unknown property mode" );
1140 default: OSL_FAIL(
"XclChPropSetHelper::GetGradientHelper - unknown property mode" );
1151 default: OSL_FAIL(
"XclChPropSetHelper::GetHatchHelper - unknown property mode" );
1163uno::Reference<drawing::XShape> lclGetMainTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc)
1166 if (rxChart1Doc.is() && aPropSet.GetBoolProperty(
"HasMainTitle"))
1167 return rxChart1Doc->getTitle();
1168 return uno::Reference<drawing::XShape>();
1171uno::Reference<drawing::XShape> lclGetXAxisTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc)
1173 uno::Reference<chart::XAxisXSupplier> xAxisSupp(rxChart1Doc->getDiagram(), uno::UNO_QUERY);
1175 if (xAxisSupp.is() && aPropSet.GetBoolProperty(
"HasXAxisTitle"))
1176 return xAxisSupp->getXAxisTitle();
1177 return uno::Reference<drawing::XShape>();
1180uno::Reference<drawing::XShape> lclGetYAxisTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc )
1182 uno::Reference<chart::XAxisYSupplier> xAxisSupp(rxChart1Doc->getDiagram(), uno::UNO_QUERY);
1184 if (xAxisSupp.is() && aPropSet.GetBoolProperty(
"HasYAxisTitle"))
1185 return xAxisSupp->getYAxisTitle();
1186 return uno::Reference<drawing::XShape>();
1189uno::Reference<drawing::XShape> lclGetZAxisTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc )
1191 uno::Reference<chart::XAxisZSupplier> xAxisSupp(rxChart1Doc->getDiagram(), uno::UNO_QUERY);
1193 if (xAxisSupp.is() && aPropSet.GetBoolProperty(
"HasZAxisTitle"))
1194 return xAxisSupp->getZAxisTitle();
1195 return uno::Reference<drawing::XShape>();
1198uno::Reference<drawing::XShape> lclGetSecXAxisTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc)
1200 uno::Reference<chart::XSecondAxisTitleSupplier> xAxisSupp(rxChart1Doc->getDiagram(), uno::UNO_QUERY);
1202 if (xAxisSupp.is() && aPropSet.GetBoolProperty(
"HasSecondaryXAxisTitle"))
1203 return xAxisSupp->getSecondXAxisTitle();
1204 return uno::Reference<drawing::XShape>();
1207uno::Reference<drawing::XShape> lclGetSecYAxisTitleShape(
const uno::Reference<chart::XChartDocument> & rxChart1Doc)
1209 uno::Reference<chart::XSecondAxisTitleSupplier> xAxisSupp(rxChart1Doc->getDiagram(), uno::UNO_QUERY);
1211 if (xAxisSupp.is() && aPropSet.GetBoolProperty(
"HasSecondaryYAxisTitle"))
1212 return xAxisSupp->getSecondYAxisTitle();
1213 return uno::Reference<drawing::XShape>();
1242 OSL_ENSURE( rxChartDoc.is(),
"XclChRootData::InitConversion - missing chart document" );
1275 XclChGetShapeFuncMap::const_iterator aIt =
maGetShapeFuncs.find( rTitleKey );
1276 OSL_ENSURE( aIt !=
maGetShapeFuncs.end(),
"XclChRootData::GetTitleShape - invalid title key" );
1277 uno::Reference<chart::XChartDocument> xChart1Doc(
mxChartDoc, uno::UNO_QUERY );
1278 uno::Reference<drawing::XShape> xTitleShape;
1280 xTitleShape = (aIt->second)(xChart1Doc);
const OUString maServiceName
sal_uInt8 GetBlue() const
sal_uInt8 GetGreen() const
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.
Generic helper class for reading from and writing to property sets.
void ReadFromPropertySet(const ScfPropertySet &rPropSet)
Reads all values from the passed property set.
void WriteToPropertySet(ScfPropertySet &rPropSet) const
Writes all values to the passed property set.
void InitializeWrite()
Must be called before reading or storing property values in the helper.
A wrapper for a UNO property set.
void SetProperty(const OUString &rPropName, const Type &rValue)
Puts the passed value into the 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.
XclChObjectTable(css::uno::Reference< css::lang::XMultiServiceFactory > xFactory, OUString aServiceName, OUString aObjNameBase)
css::uno::Reference< css::lang::XMultiServiceFactory > mxFactory
OUString maServiceName
Container for the objects.
OUString InsertObject(const css::uno::Any &rObj)
Inserts a named formatting object into the chart document.
css::uno::Any GetObject(const OUString &rObjName)
Returns a named formatting object from the chart document.
sal_Int32 mnIndex
Base of names for inserted objects.
OUString maObjNameBase
Service name to create the container.
css::uno::Reference< css::container::XNameContainer > mxContainer
Factory to create the container.
ScfPropSetHelper & GetAreaHelper(XclChPropertyMode ePropMode)
Returns an area property set helper according to the passed property mode.
ScfPropSetHelper maLineHlpFilled
Properties for lines in linear series.
ScfPropSetHelper maHatchHlpCommon
Properties for gradients in filled series.
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.
ScfPropSetHelper maGradHlpCommon
Properties for areas in filled series.
ScfPropSetHelper maLineHlpCommon
void WriteAreaProperties(ScfPropertySet &rPropSet, const XclChAreaFormat &rAreaFmt, XclChPropertyMode ePropMode)
Writes solid area properties to the passed property set.
static sal_uInt16 ReadRotationProperties(const ScfPropertySet &rPropSet, bool bSupportsStacked)
Reads rotation properties from the passed property set.
ScfPropSetHelper & GetLineHelper(XclChPropertyMode ePropMode)
Returns a line property set helper according to the passed property mode.
ScfPropSetHelper maAreaHlpCommon
Properties for lines in filled series.
ScfPropSetHelper & GetHatchHelper(XclChPropertyMode ePropMode)
Returns a hatch property set helper according to the passed property mode.
ScfPropSetHelper maBitmapHlp
Properties for hatches in filled series.
static void ReadMarkerProperties(XclChMarkerFormat &rMarkerFmt, const ScfPropertySet &rPropSet, sal_uInt16 nFormatIdx)
Reads all marker properties from 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 ReadLineProperties(XclChLineFormat &rLineFmt, XclChObjectTable &rDashTable, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode)
Reads all line properties from the passed property set.
ScfPropSetHelper maHatchHlpFilled
Properties for hatches in common objects.
ScfPropSetHelper maAreaHlpFilled
Properties for areas in common objects.
ScfPropSetHelper & GetGradientHelper(XclChPropertyMode ePropMode)
Returns a gradient property set helper according to the passed property mode.
void WriteLineProperties(ScfPropertySet &rPropSet, XclChObjectTable &rDashTable, const XclChLineFormat &rLineFmt, XclChPropertyMode ePropMode)
Writes all line properties to the passed property set.
ScfPropSetHelper maLineHlpLinear
Properties for lines in common objects.
bool ReadAreaProperties(XclChAreaFormat &rAreaFmt, const ScfPropertySet &rPropSet, XclChPropertyMode ePropMode)
Reads solid area properties from the passed property set.
ScfPropSetHelper maGradHlpFilled
Properties for gradients in common objects.
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.
Provides access to chart type info structs for all available chart types.
const XclChTypeInfo & GetTypeInfoFromService(std::u16string_view rServiceName) const
Returns the first fitting chart type info for the passed service name.
XclChTypeInfoMap maInfoMap
const XclChTypeInfo & GetTypeInfo(XclChTypeId eType) const
Returns chart type info for a unique chart type identifier.
const XclChTypeInfo & GetTypeInfoFromRecId(sal_uInt16 nRecId) const
Returns the first fitting chart type info for an Excel chart type record identifier.
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.
static bool HasMarkerFillColor(sal_uInt16 nMarkerType)
Returns true, if the passed marker type is filled.
Access to global data for a filter object (imported or exported document) from other classes.
sal_Int32 GetHmmFromPixelX(double fPixelX) const
Calculates the width of the passed number of pixels in 1/100 mm.
sal_Int32 GetHmmFromPixelY(double fPixelY) const
Calculates the height of the passed number of pixels in 1/100 mm.
void setColor(Color const &rColor)
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
#define ESCHER_Prop_fNoFillHitTest
#define ESCHER_Prop_fillBackColor
#define ESCHER_Prop_fillType
#define ESCHER_Prop_fillOpacity
#define ESCHER_Prop_fillBackOpacity
#define ESCHER_Prop_fillColor
Reference< XSingleServiceFactory > xFactory
#define SAL_N_ELEMENTS(arr)
std::shared_ptr< T > make_shared(Args &&... args)
bool equalsAscii(std::u16string_view s1, std::string_view s2)
uno::Sequence< double > maFillColor
uno::Reference< presentation::XTransitionFactory > mxFactory
sal_Int32 GetApiAxesSetIndex() const
Returns the axes set index used by the chart API.
XclChAxesSet()
Primary/secondary axes set.
sal_uInt16 mnAxesSetId
Position of the axes set (inner plot area).
sal_Int32 GetApiAxisDimension() const
Returns the axis dimension index used by the chart API.
XclChChart3d()
Additional flags.
Specifies the position of a data series or data point.
sal_uInt16 mnPointIdx
Series index of series or a data point.
XclChDataPointPos(sal_uInt16 nSeriesIdx=EXC_CHSERIES_INVALID, sal_uInt16 nPointIdx=EXC_CHDATAFORMAT_ALLPOINTS)
Index of a data point inside a series.
XclChDateRange()
Additional flags.
void Set(const XclChTypeInfo &rTypeInfo, bool b3dChart, bool bSpline)
XclChExtTypeInfo(const XclChTypeInfo &rTypeInfo)
Series lines are smoothed.
bool mbSpline
Chart is actually a 3D chart.
XclChFrBlock(sal_uInt16 nType)
Optional secondary value for current context.
XclChFrLabelProps()
Flags indicating which values to be displayed.
XclChFramePos()
Bottom-right position mode.
XclChFrame()
Additional flags.
XclChLabelRange()
Additional flags.
XclChLegend()
Additional flags.
XclChObjectLink()
Target of the link.
XclChProperties()
Plotting mode for empty cells.
XclChRectangle()
Height of the object in 1/4000 of chart height.
XclChObjectTableRef mxLineDashTable
Provides info about auto formatting.
sal_Int32 mnBorderGapX
Maps title shape getter functions.
double mfUnitSizeX
Border gap to chart space in 1/100mm.
XclChGetShapeFuncMap maGetShapeFuncs
Container for bitmap fill styles.
XclChObjectTableRef mxHatchTable
Container for gradient fill styles.
void InitConversion(const XclRoot &rRoot, const css::uno::Reference< css::chart2::XChartDocument > &rxChartDoc, const tools::Rectangle &rChartRect)
Starts the API chart document conversion.
sal_Int32 mnBorderGapY
Border gap to chart space in 1/100mm.
css::uno::Reference< css::chart2::XChartDocument > mxChartDoc
XclChObjectTableRef mxBitmapTable
Container for hatch fill styles.
tools::Rectangle maChartRect
The chart document.
css::uno::Reference< css::drawing::XShape > GetTitleShape(const XclChTextKey &rTitleKey) const
Returns the drawing shape interface of the specified title object.
void FinishConversion()
Finishes the API chart document conversion.
double mfUnitSizeY
Size of a chart X unit (1/4000 of chart width) in 1/100 mm.
XclChRootData()
Size of a chart Y unit (1/4000 of chart height) in 1/100 mm.
XclChObjectTableRef mxGradientTable
Container for line dash styles.
XclChSerErrorBar()
Type of the line ends.
XclChSerTrendLine()
1 = Show R-squared.
XclChSeries()
Number of bubble entries.
XclChSourceLink()
Number format index.
A map key for text and title objects.
XclChText()
Text object rotation (BIFF8+).
model::ComplexColor maTextComplexColor
Position of the text object.
XclChTick()
Tick labels angle (BIFF8+).
model::ComplexColor maTextComplexColor
XclChTypeGroup()
Chart type group index.
Contains information for a chart type.
bool mbSupports3d
true = Types can be combined in one axes set.
XclChType()
Additional flags (all chart types).
XclChValueRange()
Additional flags.
UNDERLYING_TYPE get() const
constexpr TypedWhichId< XFillColorItem > XATTR_FILLCOLOR(XATTR_FILL_FIRST+1)
constexpr TypedWhichId< XFillTransparenceItem > XATTR_FILLTRANSPARENCE(XATTR_FILL_FIRST+5)
constexpr TypedWhichId< XFillBitmapItem > XATTR_FILLBITMAP(XATTR_FILL_FIRST+4)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
constexpr TypedWhichId< XFillGradientItem > XATTR_FILLGRADIENT(XATTR_FILL_FIRST+2)
bool operator<(const XclChDataPointPos &rL, const XclChDataPointPos &rR)
const sal_uInt8 EXC_CHTICK_TRANSPARENT
Next to axis.
const sal_Int16 EXC_CHLINEFORMAT_TRIPLE
const sal_uInt8 EXC_CHTICK_OUTSIDE
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).
@ EXC_CHTYPECATEG_SURFACE
Scatter and bubble charts.
const sal_uInt8 EXC_CHSERERR_NONE
const sal_uInt8 EXC_CHSERERR_XPLUS
For internal use only.
const sal_uInt16 EXC_CHDATERANGE_AUTOMIN
constexpr OUStringLiteral EXC_CHPROP_SYMBOL
const sal_uInt16 EXC_CHDATERANGE_DAYS
Recognize date/text automatically.
constexpr OUStringLiteral EXC_CHPROP_STACKCHARACTERS
const sal_uInt16 EXC_CHFRAMEPOS_PARENT
const sal_uInt16 EXC_CHAXIS_Y
const sal_uInt16 EXC_CHVALUERANGE_BIT8
Other axis crosses at own maximum.
const sal_uInt16 EXC_ID_CHPIEEXT
Sharp top, truncated.
constexpr OUStringLiteral SERVICE_DRAWING_BITMAPTABLE
const sal_Int16 EXC_CHLINEFORMAT_HAIR
const sal_uInt16 EXC_CHLEGEND_STACKED
@ EXC_CHVARPOINT_SINGLE
No varied colors supported.
@ EXC_CHVARPOINT_MULTI
Only supported, if type group contains only one series.
const sal_uInt16 EXC_CHSERIES_NUMERIC
const sal_uInt8 EXC_CHTICK_INSIDE
const sal_Int16 EXC_CHLINEFORMAT_SINGLE
const sal_uInt16 EXC_CHMARKERFORMAT_AUTO
Automatic symbol size for triple lines.
const sal_uInt16 EXC_CHLEGEND_AUTOPOSX
const sal_uInt16 EXC_CHLINEFORMAT_NONE
constexpr OUStringLiteral EXC_CHPROP_TEXTROTATION
const sal_Int32 EXC_CHART_AXESSET_NONE
API Z axis index.
const sal_Int32 EXC_CHART_TOTALUNITS
API secondary axes set index.
constexpr OUStringLiteral EXC_CHPROP_ROLE_ERRORBARS_POSY
const sal_uInt16 EXC_CHTEXT_POS_DEFAULT
Data point caption is category name.
const sal_uInt8 EXC_CHSERERR_XMINUS
const sal_uInt16 EXC_CHMARKERFORMAT_CIRCLE
const sal_Int32 EXC_CHART_AXIS_X
For internal use only.
constexpr OUStringLiteral SERVICE_DRAWING_HATCHTABLE
const sal_uInt16 EXC_CHMARKERFORMAT_DOWJ
const sal_uInt16 EXC_ID_CHLINE
const sal_uInt16 EXC_CHTEXT_AUTOFILL
Text object is removed.
const sal_uInt16 EXC_CHDATERANGE_AUTOMAJOR
const sal_Int32 EXC_CHART_AXESSET_SECONDARY
API primary axes set index.
const sal_uInt16 EXC_CHMARKERFORMAT_STAR
const sal_uInt16 EXC_CHFRAME_AUTOSIZE
const sal_uInt8 EXC_CHPROPS_EMPTY_SKIP
Manual plot area layout in CHFRAMEPOS record.
const sal_uInt16 EXC_CHPICFORMAT_STACK
Bitmap stretched to area.
const sal_Int16 EXC_CHLINEFORMAT_DOUBLE
const sal_uInt8 EXC_CHTICK_NEXT
Above diagram/left of diagram.
const sal_uInt16 EXC_CHLINEFORMAT_SOLID
const sal_uInt16 EXC_CHAXIS_X
const sal_uInt16 EXC_CHAXIS_Z
const sal_uInt16 EXC_ID_CHAREA
const sal_uInt16 EXC_ID_CHBAR
const sal_uInt16 EXC_CHLINEFORMAT_LIGHTTRANS
const sal_uInt16 EXC_CHDATERANGE_AUTOBASE
const sal_uInt16 EXC_CHMARKERFORMAT_NOFILL
const sal_uInt16 EXC_CHDATAFORMAT_DEFAULT
Maximum number of data points.
const sal_uInt8 EXC_CH3DDATAFORMAT_STRAIGHT
Circular base.
@ EXC_CHTEXTTYPE_AXISTITLE
Chart legend.
XclChPropertyMode
Specifies the type of a formatting.
@ EXC_CHPROPMODE_LINEARSERIES
Common objects, no special handling.
@ EXC_CHPROPMODE_FILLEDSERIES
Specific to data series drawn as lines.
const sal_uInt16 EXC_CHPICFORMAT_TOPBOTTOM
Bitmap scaled to axis scale.
const sal_uInt8 EXC_CHSERERR_END_TSHAPE
Line end: blank.
const sal_uInt16 EXC_ID_CHSURFACE
const sal_uInt8 EXC_CHSRCLINK_DEFAULT
const sal_uInt16 EXC_CHFRAME_AUTOPOS
const sal_uInt16 EXC_CHPICFORMAT_LEFTRIGHT
constexpr OUStringLiteral EXC_CHPROP_ROLE_ERRORBARS_NEGX
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_uInt32 EXC_CHMARKERFORMAT_SINGLESIZE
Automatic symbol size for hair lines.
const sal_uInt8 EXC_CHSERERR_YMINUS
const sal_Int32 EXC_CHART_AXIS_NONE
Automatic rotation, e.g. axis labels (internal use only).
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_CONNECTLINE
Series error bar.
@ EXC_CHOBJTYPE_FLOOR3D
Wall formatting in 3d charts.
@ EXC_CHOBJTYPE_BLACKDROPBAR
White-day drop bar in stock charts.
const sal_uInt8 EXC_CHLEGEND_RIGHT
const sal_uInt16 EXC_CHVALUERANGE_AUTOMINOR
const sal_uInt16 EXC_CHPICFORMAT_NONE
const sal_uInt16 EXC_CHDATERANGE_AUTOMAX
const sal_uInt16 EXC_CHLINEFORMAT_DASHDOTDOT
const sal_uInt16 EXC_CHMARKERFORMAT_CROSS
const sal_uInt16 EXC_CHMARKERFORMAT_PLUS
const sal_uInt16 EXC_ID_CHPIE
const sal_uInt16 EXC_CHLINEFORMAT_AUTO
const sal_uInt16 EXC_CHLINEFORMAT_MEDTRANS
const sal_uInt16 EXC_CHLEGEND_AUTOSERIES
const sal_uInt8 EXC_CHSRCLINK_TITLE
const sal_uInt16 EXC_CHTEXT_TRANSPARENT
const sal_uInt16 EXC_CHLINEFORMAT_DOT
XclChTypeId
Enumerates all kinds of different chart types.
@ EXC_CHTYPEID_RADARAREA
Linear radar chart.
@ EXC_CHTYPEID_BUBBLES
Scatter (XY) chart.
@ EXC_CHTYPEID_HORBAR
Vertical bar chart.
@ EXC_CHTYPEID_AREA
Line chart.
@ EXC_CHTYPEID_DONUT
Pie chart.
@ EXC_CHTYPEID_LINE
Horizontal bar chart.
@ EXC_CHTYPEID_PIEEXT
Donut chart.
@ EXC_CHTYPEID_RADARLINE
Stock 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.
const sal_uInt16 EXC_CHDATERANGE_AUTOMINOR
const sal_uInt16 EXC_CHSERGROUP_NONE
const sal_uInt16 EXC_CHVALUERANGE_AUTOMAX
const sal_uInt16 EXC_CHSCATTER_AREA
const sal_uInt8 EXC_CH3DDATAFORMAT_RECT
const sal_uInt8 EXC_CHTEXT_ALIGN_CENTER
Horizontal: left, vertical: top.
const sal_uInt16 EXC_ID_CHRADARLINE
constexpr OUStringLiteral EXC_CHPROP_ROLE_ERRORBARS_POSX
const sal_uInt16 EXC_CHLEGEND_AUTOPOSY
const sal_uInt16 EXC_CHLINEFORMAT_DASH
const sal_uInt16 EXC_CHVALUERANGE_AUTOMIN
const sal_uInt16 EXC_CHART_AUTOROTATION
const sal_uInt8 EXC_CHLEGEND_MEDIUM
const sal_uInt16 EXC_CHPICFORMAT_STRETCH
For internal use only.
constexpr OUStringLiteral SERVICE_DRAWING_DASHTABLE
const sal_uInt16 EXC_CHLEGEND_DOCKED
const sal_uInt16 EXC_CHMARKERFORMAT_DIAMOND
const sal_uInt16 EXC_CHAXESSET_PRIMARY
const sal_uInt16 EXC_CHMARKERFORMAT_NOLINE
const sal_uInt16 EXC_CHLINEFORMAT_DASHDOT
const sal_uInt16 EXC_CHMARKERFORMAT_NOSYMBOL
constexpr OUStringLiteral SERVICE_DRAWING_GRADIENTTABLE
const sal_uInt8 EXC_CHSERERR_FIXED
const sal_uInt16 EXC_CHTEXT_AUTOCOLOR
const sal_uInt16 EXC_CHVALUERANGE_AUTOCROSS
const sal_uInt16 EXC_ID_CHSCATTER
constexpr OUStringLiteral EXC_CHPROP_ROLE_ERRORBARS_NEGY
const sal_uInt16 EXC_CHAXIS_NONE
const sal_uInt16 EXC_CHMARKERFORMAT_SQUARE
const sal_uInt16 EXC_CHTICK_AUTOROT
const sal_uInt16 EXC_CHDATERANGE_AUTODATE
Other axis crosses at own maximum.
const sal_uInt16 EXC_CHPICFORMAT_FRONTBACK
const sal_Int32 EXC_CHART_AXIS_Y
API X axis index.
const sal_uInt16 EXC_CHDATERANGE_AUTOCROSS
const sal_uInt8 EXC_CHSERTREND_POLYNOMIAL
const sal_Int32 EXC_CHART_AXESSET_PRIMARY
For internal use only.
const sal_uInt8 EXC_CHSERERR_YPLUS
@ EXC_CHFRAMETYPE_INVISIBLE
Missing frame represents automatic formatting.
const sal_uInt16 EXC_CHMARKERFORMAT_STDDEV
const sal_uInt16 EXC_CHFRAME_STANDARD
const sal_Int32 EXC_CHART_AXIS_Z
API Y axis index.
const sal_uInt16 EXC_CHLINEFORMAT_DARKTRANS
const sal_uInt16 EXC_CHAXESSET_SECONDARY
const sal_uInt16 EXC_CHOBJLINK_NONE
const sal_uInt16 EXC_CHMARKERFORMAT_TRIANGLE
const sal_uInt16 EXC_CHTICK_AUTOCOLOR
const sal_uInt8 EXC_ROT_NONE
Text orientation: 90 deg clockwise.
const sal_uInt8 EXC_ROT_STACKED
Text rotation: 90 deg clockwise.
const sal_uInt16 EXC_COLOR_CHBORDERAUTO
Chart window background color (BIFF8 charts).
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_COLOR_CHWINDOWTEXT
System button background color (face color).