LibreOffice Module sc (master)  1
xeextlst.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #include <xeextlst.hxx>
11 #include <xeroot.hxx>
12 #include <stlsheet.hxx>
13 #include <ftools.hxx>
14 #include <xestyle.hxx>
15 #include <stlpool.hxx>
16 #include <scitems.hxx>
17 #include <svl/itemset.hxx>
18 #include <svl/intitem.hxx>
19 
20 #include <oox/export/utils.hxx>
21 #include <oox/token/namespaces.hxx>
23 
24 using namespace ::oox;
25 
27  XclExpRoot(rRoot)
28 {
29 }
30 
32  XclExpRoot(rRoot)
33 {
34 }
35 
37  maColor(rColor)
38 {
39 }
40 
42 {
43  rStrm.GetCurrentStream()->singleElementNS( XML_x14, XML_negativeFillColor,
44  XML_rgb, XclXmlUtils::ToOString(maColor) );
45 }
46 
48  maAxisColor(rColor)
49 {
50 }
51 
53 {
54  rStrm.GetCurrentStream()->singleElementNS( XML_x14, XML_axisColor,
56 }
57 
58 XclExpExtIcon::XclExpExtIcon(const XclExpRoot& rRoot, const std::pair<ScIconSetType, sal_Int32>& rCustomEntry):
59  XclExpRoot(rRoot),
60  nIndex(rCustomEntry.second)
61 {
62  pIconSetName = ScIconSetFormat::getIconSetName(rCustomEntry.first);
63 }
64 
66 {
67  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
68 
69  if (nIndex == -1)
70  {
71  nIndex = 0;
72  pIconSetName = "NoIcons";
73  }
74 
75  rWorksheet->singleElementNS(XML_x14, XML_cfIcon,
76  XML_iconSet, pIconSetName,
77  XML_iconId, OString::number(nIndex));
78 }
79 
80 XclExpExtCfvo::XclExpExtCfvo( const XclExpRoot& rRoot, const ScColorScaleEntry& rEntry, const ScAddress& rSrcPos, bool bFirst ):
81  XclExpRoot(rRoot),
82  meType(rEntry.GetType()),
83  mbFirst(bFirst)
84 {
85  if( rEntry.GetType() == COLORSCALE_FORMULA )
86  {
87  const ScTokenArray* pArr = rEntry.GetFormula();
88  OUString aFormula;
89  if(pArr)
90  {
91  aFormula = XclXmlUtils::ToOUString( GetCompileFormulaContext(), rSrcPos, pArr);
92  }
93  maValue = OUStringToOString(aFormula, RTL_TEXTENCODING_UTF8 );
94  }
95  else
96  maValue = OString::number(rEntry.GetValue());
97 }
98 
99 namespace {
100 
101 const char* getColorScaleType( ScColorScaleEntryType eType, bool bFirst )
102 {
103  switch(eType)
104  {
105  case COLORSCALE_MIN:
106  return "min";
107  case COLORSCALE_MAX:
108  return "max";
109  case COLORSCALE_PERCENT:
110  return "percent";
111  case COLORSCALE_FORMULA:
112  return "formula";
113  case COLORSCALE_AUTO:
114  if(bFirst)
115  return "autoMin";
116  else
117  return "autoMax";
119  return "percentile";
120  default:
121  break;
122  }
123  return "num";
124 }
125 
126 }
127 
129 {
130  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
131  rWorksheet->startElementNS(XML_x14, XML_cfvo, XML_type, getColorScaleType(meType, mbFirst));
132 
133  if (meType == COLORSCALE_FORMULA ||
137  {
138  rWorksheet->startElementNS(XML_xm, XML_f);
139  rWorksheet->writeEscaped(maValue.getStr());
140  rWorksheet->endElementNS(XML_xm, XML_f);
141  }
142 
143  rWorksheet->endElementNS(XML_x14, XML_cfvo);
144 }
145 
146 XclExpExtCF::XclExpExtCF( const XclExpRoot& rRoot, const ScCondFormatEntry& rFormat ):
147  XclExpRoot(rRoot),
148  mrFormat(rFormat)
149 {
150 }
151 
153 {
154  OUString aStyleName = mrFormat.GetStyle();
156  SfxStyleSheetBase* pStyle = pPool->Find(aStyleName, SfxStyleFamily::Para);
157  SfxItemSet& rSet = pStyle->GetItemSet();
158 
159  std::unique_ptr<ScTokenArray> pTokenArray(mrFormat.CreateFlatCopiedTokenArray(0));
161 
162  std::unique_ptr<XclExpColor> pColor(new XclExpColor);
163  if(!pColor->FillFromItemSet( rSet ))
164  pColor.reset();
165 
166  std::unique_ptr<XclExpCellBorder> pBorder(new XclExpCellBorder);
167  if (!pBorder->FillFromItemSet( rSet, GetPalette(), GetBiff()) )
168  pBorder.reset();
169 
170  std::unique_ptr<XclExpCellAlign> pAlign(new XclExpCellAlign);
171  if (!pAlign->FillFromItemSet( rSet, false, GetBiff()))
172  pAlign.reset();
173 
174  std::unique_ptr<XclExpCellProt> pCellProt(new XclExpCellProt);
175  if (!pCellProt->FillFromItemSet( rSet ))
176  pCellProt.reset();
177 
178  std::unique_ptr<XclExpDxfFont> pFont(new XclExpDxfFont(GetRoot(), rSet));
179 
180  std::unique_ptr<XclExpNumFmt> pNumFormat;
181  const SfxPoolItem *pPoolItem = nullptr;
182  if( rSet.GetItemState( ATTR_VALUE_FORMAT, true, &pPoolItem ) == SfxItemState::SET )
183  {
184  sal_uInt32 nScNumFmt = static_cast< const SfxUInt32Item* >(pPoolItem)->GetValue();
185  XclExpNumFmtBuffer& rNumFmtBuffer = GetRoot().GetNumFmtBuffer();
186  sal_uInt32 nXclNumFmt = rNumFmtBuffer.Insert(nScNumFmt);
187  pNumFormat.reset(new XclExpNumFmt(nScNumFmt, nXclNumFmt, rNumFmtBuffer.GetFormatCode(nScNumFmt)));
188  }
189 
190  XclExpDxf rDxf( GetRoot(),
191  std::move(pAlign),
192  std::move(pBorder),
193  std::move(pFont),
194  std::move(pNumFormat),
195  std::move(pCellProt),
196  std::move(pColor) );
197 
198  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
199 
200  rWorksheet->startElementNS( XML_xm, XML_f );
201  rWorksheet->writeEscaped( aFormula );
202  rWorksheet->endElementNS( XML_xm, XML_f );
203  rDxf.SaveXmlExt( rStrm );
204 }
205 
206 XclExpExtDataBar::XclExpExtDataBar( const XclExpRoot& rRoot, const ScDataBarFormat& rFormat, const ScAddress& rPos ):
207  XclExpRoot(rRoot)
208 {
209  const ScDataBarFormatData& rFormatData = *rFormat.GetDataBarData();
210  mpLowerLimit.reset(new XclExpExtCfvo(*this, *rFormatData.mpLowerLimit, rPos, true));
211  mpUpperLimit.reset(new XclExpExtCfvo(*this, *rFormatData.mpUpperLimit, rPos, false));
212  if (rFormatData.mpNegativeColor)
213  mpNegativeColor.reset(new XclExpExtNegativeColor(*rFormatData.mpNegativeColor));
214  else
215  mpNegativeColor.reset( new XclExpExtNegativeColor( rFormatData.maPositiveColor ) );
216  mpAxisColor.reset( new XclExpExtAxisColor( rFormatData.maAxisColor ) );
217 
218  meAxisPosition = rFormatData.meAxisPosition;
219  mbGradient = rFormatData.mbGradient;
220  mnMinLength = rFormatData.mnMinLength;
221  mnMaxLength = rFormatData.mnMaxLength;
222 }
223 
224 namespace {
225 
226 const char* getAxisPosition(databar::ScAxisPosition eAxisPosition)
227 {
228  switch(eAxisPosition)
229  {
230  case databar::NONE:
231  return "none";
232  case databar::AUTOMATIC:
233  return "automatic";
234  case databar::MIDDLE:
235  return "middle";
236  }
237  return "";
238 }
239 
240 const char* GetOperatorString(ScConditionMode eMode)
241 {
242  const char* pRet = nullptr;
243  switch(eMode)
244  {
246  pRet = "equal";
247  break;
249  pRet = "lessThan";
250  break;
252  pRet = "greaterThan";
253  break;
255  pRet = "lessThanOrEqual";
256  break;
258  pRet = "greaterThanOrEqual";
259  break;
261  pRet = "notEqual";
262  break;
264  pRet = "between";
265  break;
267  pRet = "notBetween";
268  break;
270  pRet = nullptr;
271  break;
273  pRet = nullptr;
274  break;
276  pRet = "beginsWith";
277  break;
279  pRet = "endsWith";
280  break;
282  pRet = "containsText";
283  break;
285  pRet = "notContains";
286  break;
288  break;
290  default:
291  break;
292  }
293  return pRet;
294 }
295 
296 }
297 
299 {
300  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
301  rWorksheet->startElementNS( XML_x14, XML_dataBar,
302  XML_minLength, OString::number(mnMinLength),
303  XML_maxLength, OString::number(mnMaxLength),
304  XML_axisPosition, getAxisPosition(meAxisPosition),
305  XML_gradient, ToPsz(mbGradient) );
306 
307  mpLowerLimit->SaveXml( rStrm );
308  mpUpperLimit->SaveXml( rStrm );
309  mpNegativeColor->SaveXml( rStrm );
310  mpAxisColor->SaveXml( rStrm );
311 
312  rWorksheet->endElementNS( XML_x14, XML_dataBar );
313 }
314 
315 XclExpExtIconSet::XclExpExtIconSet(const XclExpRoot& rRoot, const ScIconSetFormat& rFormat, const ScAddress& rPos):
316  XclExpRoot(rRoot)
317 {
318  const ScIconSetFormatData& rData = *rFormat.GetIconSetData();
319  for (auto const& itr : rData.m_Entries)
320  {
321  maCfvos.AppendNewRecord(new XclExpExtCfvo(*this, *itr, rPos, false));
322  }
323  mbCustom = rData.mbCustom;
324  mbReverse = rData.mbReverse;
325  mbShowValue = rData.mbShowValue;
327 
328  if (mbCustom)
329  {
330  for (const auto& rItem : rData.maCustomVector)
331  {
332  maCustom.AppendNewRecord(new XclExpExtIcon(*this, rItem));
333  }
334  }
335 }
336 
338 {
339  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
340 
341  rWorksheet->startElementNS(XML_x14, XML_iconSet,
342  XML_iconSet, mpIconSetName,
343  XML_custom, sax_fastparser::UseIf(ToPsz10(mbCustom), mbCustom),
344  XML_reverse, ToPsz10(mbReverse),
345  XML_showValue, ToPsz10(mbShowValue));
346 
347  maCfvos.SaveXml(rStrm);
348 
349  if (mbCustom)
350  {
351  maCustom.SaveXml(rStrm);
352  }
353 
354  rWorksheet->endElementNS(XML_x14, XML_iconSet);
355 }
356 
357 XclExpExtCfRule::XclExpExtCfRule( const XclExpRoot& rRoot, const ScFormatEntry& rFormat, const ScAddress& rPos, const OString& rId, sal_Int32 nPriority ):
358  XclExpRoot(rRoot),
359  maId(rId),
360  pType(nullptr),
361  mnPriority(nPriority),
362  mOperator(nullptr)
363 {
364  switch (rFormat.GetType())
365  {
367  {
368  const ScDataBarFormat& rDataBar = static_cast<const ScDataBarFormat&>(rFormat);
369  mxEntry = new XclExpExtDataBar( *this, rDataBar, rPos );
370  pType = "dataBar";
371  }
372  break;
374  {
375  const ScIconSetFormat& rIconSet = static_cast<const ScIconSetFormat&>(rFormat);
376  mxEntry = new XclExpExtIconSet(*this, rIconSet, rPos);
377  pType = "iconSet";
378  }
379  break;
381  {
382  const ScCondFormatEntry& rCondFormat = static_cast<const ScCondFormatEntry&>(rFormat);
383  mxEntry = new XclExpExtCF(*this, rCondFormat);
384  pType = "cellIs";
385  mOperator = GetOperatorString( rCondFormat.GetOperation() );
386  }
387  break;
388  default:
389  break;
390  }
391 }
392 
394 {
395  if (!mxEntry)
396  return;
397 
398  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
399  rWorksheet->startElementNS( XML_x14, XML_cfRule,
400  XML_type, pType,
401  XML_priority, sax_fastparser::UseIf(OString::number(mnPriority + 1), mnPriority != -1),
402  XML_operator, mOperator,
403  XML_id, maId );
404 
405  mxEntry->SaveXml( rStrm );
406 
407  rWorksheet->endElementNS( XML_x14, XML_cfRule );
408 
409 }
410 
412  std::vector<XclExpExtCondFormatData>& rData, const ScRangeList& rRange):
413  XclExpRoot(rRoot),
414  maRange(rRange)
415 {
416  ScAddress aAddr = maRange.front().aStart;
417  for (const auto& rItem : rData)
418  {
419  const ScFormatEntry* pEntry = rItem.pEntry;
420  switch (pEntry->GetType())
421  {
423  {
424  const ScIconSetFormat& rIconSet = static_cast<const ScIconSetFormat&>(*pEntry);
425  bool bNeedsExt = false;
426  switch (rIconSet.GetIconSetData()->eIconSetType)
427  {
428  case IconSet_3Triangles:
429  case IconSet_3Smilies:
431  case IconSet_5Boxes:
432  case IconSet_3Stars:
433  bNeedsExt = true;
434  break;
435  default:
436  break;
437  }
438 
439  if (rIconSet.GetIconSetData()->mbCustom)
440  bNeedsExt = true;
441 
442  if (bNeedsExt)
443  {
444  maCfRules.AppendNewRecord(new XclExpExtCfRule(*this, *pEntry, aAddr, rItem.aGUID, rItem.nPriority));
445  }
446  }
447  break;
449  maCfRules.AppendNewRecord(new XclExpExtCfRule( *this, *pEntry, aAddr, rItem.aGUID, rItem.nPriority));
450  break;
452  maCfRules.AppendNewRecord(new XclExpExtCfRule( *this, *pEntry, aAddr, rItem.aGUID, rItem.nPriority));
453  break;
454  default:
455  break;
456  }
457  }
458 }
459 
461 {
462  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
463  rWorksheet->startElementNS( XML_x14, XML_conditionalFormatting,
464  FSNS( XML_xmlns, XML_xm ), rStrm.getNamespaceURL(OOX_NS(xm)) );
465 
466  maCfRules.SaveXml( rStrm );
467  rWorksheet->startElementNS(XML_xm, XML_sqref);
468  rWorksheet->write(XclXmlUtils::ToOString(rStrm.GetRoot().GetDoc(), maRange));
469 
470  rWorksheet->endElementNS( XML_xm, XML_sqref );
471 
472  rWorksheet->endElementNS( XML_x14, XML_conditionalFormatting );
473 }
474 
476  XclExpExt( rRoot )
477 {
478  maURI = OString("{7626C862-2A13-11E5-B345-FEFF819CDC9F}");
479 
480  switch (eConv)
481  {
483  maSyntax = OString("CalcA1");
484  break;
486  maSyntax = OString("ExcelA1");
487  break;
489  maSyntax = OString("ExcelR1C1");
490  break;
492  maSyntax = OString("CalcA1ExcelA1");
493  break;
499  maSyntax = OString("Unspecified");
500  break;
501  }
502 }
503 
505 {
506  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
507  rWorksheet->startElement( XML_ext,
508  FSNS(XML_xmlns, XML_loext), rStrm.getNamespaceURL(OOX_NS(loext)),
509  XML_uri, maURI );
510 
511  rWorksheet->singleElementNS(XML_loext, XML_extCalcPr, XML_stringRefSyntax, maSyntax);
512 
513  rWorksheet->endElement( XML_ext );
514 }
515 
517  XclExpExt( rRoot )
518 {
519  maURI = OString("{78C0D931-6437-407d-A8EE-F0AAD7539E65}");
520 }
521 
523 {
524  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
525  rWorksheet->startElement( XML_ext,
526  FSNS(XML_xmlns, XML_x14), rStrm.getNamespaceURL(OOX_NS(xls14Lst)),
527  XML_uri, maURI );
528 
529  rWorksheet->startElementNS(XML_x14, XML_conditionalFormattings);
530 
531  maCF.SaveXml( rStrm );
532 
533  rWorksheet->endElementNS( XML_x14, XML_conditionalFormattings );
534  rWorksheet->endElement( XML_ext );
535 }
536 
538 {
539  maCF.AppendRecord( pEntry );
540 }
541 
543 {
544  if(maExtEntries.IsEmpty())
545  return;
546 
547  sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
548  rWorksheet->startElement(XML_extLst);
549 
550  maExtEntries.SaveXml(rStrm);
551 
552  rWorksheet->endElement( XML_extLst );
553 }
554 
556 {
557  maExtEntries.AppendRecord( pEntry );
558 }
559 
561 {
562  size_t n = maExtEntries.GetSize();
563  for( size_t i = 0; i < n; ++i )
564  {
565  if (maExtEntries.GetRecord( i )->GetType() == eType)
566  return maExtEntries.GetRecord( i );
567  }
568 
569  return nullptr;
570 }
571 
572 
573 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
const char * mpIconSetName
Definition: xeextlst.hxx:132
double mnMaxLength
Maximal length of a databar in percent of cell length Value has to be in the range (0...
Definition: colorscale.hxx:178
std::unique_ptr< XclExpExtNegativeColor > mpNegativeColor
Definition: xeextlst.hxx:115
const char * mOperator
Definition: xeextlst.hxx:147
static OString ToOString(const Color &rColor)
Definition: xestream.cxx:698
OString maURI
Definition: xeextlst.hxx:44
sal_Int32 nIndex
XclExpRecordList< XclExpExtIcon > maCustom
Definition: xeextlst.hxx:128
ScAddress aStart
Definition: address.hxx:500
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:128
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:298
XclExpExtCondFormat(const XclExpRoot &rRoot)
Definition: xeextlst.cxx:516
std::vector< std::pair< ScIconSetType, sal_Int32 > > maCustomVector
Definition: colorscale.hxx:345
const XclExpRoot & GetRoot() const
Returns the filter root data.
Definition: xestream.hxx:290
XclExpExtConditionalFormatting(const XclExpRoot &rRoot, std::vector< XclExpExtCondFormatData > &rData, const ScRangeList &rRange)
Definition: xeextlst.cxx:411
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xerecord.hxx:383
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:460
std::string GetValue
XclExpRecordList< XclExpExtCfvo > maCfvos
Definition: xeextlst.hxx:127
XclExpRecordList< XclExpExt > maExtEntries
Definition: xeextlst.hxx:203
void AddRecord(XclExpExtConditionalFormatting *pFormat)
Definition: xeextlst.cxx:537
XclExpExtIcon(const XclExpRoot &rRoot, const std::pair< ScIconSetType, sal_Int32 > &rCustomEntry)
Definition: xeextlst.cxx:58
void AppendRecord(RecType *pRec)
Appends a record to the list.
Definition: xerecord.hxx:349
OString maValue
Definition: xeextlst.hxx:55
static OUString ToOUString(const char *s)
Definition: xestream.cxx:783
bool mbReverse
Specifies whether the icons should be shown in reverse order.
Definition: colorscale.hxx:339
XclExpRecordRef mxEntry
Definition: xeextlst.hxx:143
double mnMinLength
Minimal length of a databar in percent of cell length Value has to be in the range [0...
Definition: colorscale.hxx:173
XclExpExtNegativeColor(const Color &rColor)
Definition: xeextlst.cxx:36
sal_Int64 n
void SaveXml(XclExpXmlStream &rStrm)
Definition: xeextlst.cxx:52
const OUString & GetStyle() const
Definition: conditio.hxx:474
OUString GetFormatCode(sal_uInt32 nScNumFmt)
Definition: xestyle.cxx:1419
XclExpRecordList< XclExpExtCfRule > maCfRules
Definition: xeextlst.hxx:159
const ContentProperties & rData
XclExpExtCfRule(const XclExpRoot &rRoot, const ScFormatEntry &rFormat, const ScAddress &rPos, const OString &rId, sal_Int32 nPriority)
Definition: xeextlst.cxx:357
basegfx::BColor maColor
virtual SfxItemSet & GetItemSet()
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
Definition: xlroot.cxx:278
double mnMaxLength
Definition: xeextlst.hxx:111
ScConditionMode GetOperation() const
Definition: conditio.hxx:370
XclExpExtAxisColor(const Color &maColor)
Definition: xeextlst.cxx:47
const char * pIconSetName
Definition: xeextlst.hxx:86
Base class for ext entries.
Definition: xeextlst.hxx:37
const ScTokenArray * GetFormula() const
Definition: colorscale.cxx:215
static const char * getIconSetName(ScIconSetType eType)
XclExpExt(const XclExpRoot &rRoot)
Definition: xeextlst.cxx:26
Access to global data from other classes.
Definition: xeroot.hxx:113
ScCondFormatEntry mrFormat
Definition: xeextlst.hxx:98
XclExpExtCalcPr(const XclExpRoot &rRoot, formula::FormulaGrammar::AddressConvention eConv)
Definition: xeextlst.cxx:475
OUString getNamespaceURL(sal_Int32 nNSID) const
void AddRecord(XclExpExt *pEntry)
Definition: xeextlst.cxx:555
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:393
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:522
XclExpExtCfvo(const XclExpRoot &rRoot, const ScColorScaleEntry &rEntry, const ScAddress &rPos, bool bFirst)
Definition: xeextlst.cxx:80
ScIconSetType eIconSetType
Definition: colorscale.hxx:334
ScColorScaleEntryType GetType() const
Definition: colorscale.hxx:76
ScConditionMode
Definition: conditio.hxx:61
Stores all number formats used in the document.
Definition: xestyle.hxx:270
Extends the XclCellAlign struct for export.
Definition: xestyle.hxx:324
databar::ScAxisPosition meAxisPosition
Definition: xeextlst.hxx:108
sax_fastparser::FSHelperPtr & GetCurrentStream()
Definition: xestream.cxx:910
XclExtLst(const XclExpRoot &rRoot)
Definition: xeextlst.cxx:31
Color maPositiveColor
Color for all Positive Values and if mbNeg == false also for negative ones.
Definition: colorscale.hxx:135
ScAddress GetValidSrcPos() const
Return a position that's adjusted to allow textual representation of expressions if possible...
Definition: conditio.cxx:1326
Color maAxisColor
Color of the axis if used Default color is black.
Definition: colorscale.hxx:146
OUString aFormula
Definition: xeextlst.hxx:97
double mnMinLength
Definition: xeextlst.hxx:110
double mnPriority
ScColorScaleEntryType
Definition: colorscale.hxx:31
Extends the XclCellBorder struct for export.
Definition: xestyle.hxx:343
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
int i
XclExpExtCF(const XclExpRoot &rRoot, const ScCondFormatEntry &rFormat)
Definition: xeextlst.cxx:146
sal_uInt16 Insert(sal_uInt32 nScNumFmt)
Inserts a number format into the format buffer.
Definition: xestyle.cxx:1354
XclExpPalette & GetPalette() const
Returns the color buffer.
Definition: xeroot.cxx:105
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:65
bool mbGradient
Paint the bars with gradient.
Definition: colorscale.hxx:153
XclExpNumFmtBuffer & GetNumFmtBuffer() const
Returns the number format buffer.
Definition: xeroot.cxx:117
std::unique_ptr< XclExpExtCfvo > mpLowerLimit
Definition: xeextlst.hxx:113
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:542
XclExpRecordList< XclExpExtConditionalFormatting > maCF
Definition: xeextlst.hxx:176
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:504
const ScIconSetFormatData * GetIconSetData() const
constexpr TypedWhichId< SfxUInt32Item > ATTR_VALUE_FORMAT(146)
sal_Int32 mnPriority
Definition: xeextlst.hxx:146
ScColorScaleEntryType meType
Definition: xeextlst.hxx:54
std::shared_ptr< FastSerializerHelper > FSHelperPtr
void AppendNewRecord(RecType *pRec)
Appends a newly created record to the list.
Definition: xerecord.hxx:362
sal_Int32 nIndex
Definition: xeextlst.hxx:87
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
Definition: xeroot.hxx:119
Stores a core number format index with corresponding Excel format index.
Definition: xestyle.hxx:255
Extends the XclCellProt struct for export.
Definition: xestyle.hxx:310
OString OUStringToOString(const OUString &str, ConnectionSettings const *settings)
XclExpExtIconSet(const XclExpRoot &rRoot, const ScIconSetFormat &rFormat, const ScAddress &rPos)
Definition: xeextlst.cxx:315
RecType * GetRecord(size_t nPos) const
Returns reference to an existing record or empty reference on error.
Definition: xerecord.hxx:334
OString maSyntax
Definition: xeextlst.hxx:188
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:152
void SaveXml(XclExpXmlStream &rStrm)
Definition: xeextlst.cxx:41
databar::ScAxisPosition meAxisPosition
Paint negative values into the same direction as positive values If false we will set the mid point a...
Definition: colorscale.hxx:168
const char * pType
Definition: xeextlst.hxx:145
XclExpExtDataBar(const XclExpRoot &rRoot, const ScDataBarFormat &rFormat, const ScAddress &rPos)
Definition: xeextlst.cxx:206
std::unique_ptr< Color > mpNegativeColor
Specifies the color for negative values.
Definition: colorscale.hxx:141
std::unique_ptr< ScColorScaleEntry, o3tl::default_delete< ScColorScaleEntry > > mpUpperLimit
Definition: colorscale.hxx:185
virtual XclExpExtType GetType()=0
std::unique_ptr< XclExpExtCfvo > mpUpperLimit
Definition: xeextlst.hxx:114
virtual void SaveXml(XclExpXmlStream &rStrm) override
Definition: xeextlst.cxx:337
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
Definition: xlroot.hxx:140
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
Definition: document.cxx:6069
constexpr sal_Int32 FSNS(sal_Int32 namespc, sal_Int32 element)
size_t GetSize() const
Definition: xerecord.hxx:328
const ScDataBarFormatData * GetDataBarData() const
Definition: colorscale.cxx:735
virtual Type GetType() const =0
ScRange & front()
Definition: rangelst.hxx:93
void SaveXmlExt(XclExpXmlStream &rStrm)
Definition: xestyle.cxx:3160
std::unique_ptr< ScTokenArray > CreateFlatCopiedTokenArray(sal_uInt16 nPos) const
Create a flat copy using ScTokenArray copy-ctor with shared tokens.
Definition: conditio.cxx:1281
std::unique_ptr< ScColorScaleEntry, o3tl::default_delete< ScColorScaleEntry > > mpLowerLimit
Definition: colorscale.hxx:186
std::unique_ptr< XclExpExtAxisColor > mpAxisColor
Definition: xeextlst.hxx:116
bool IsEmpty() const
Definition: xerecord.hxx:327
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
const char * UseIf(const char *s, bool bUse)
XclExpExt * GetItem(XclExpExtType eType)
Definition: xeextlst.cxx:560
RedlineType meType
sc::CompileFormulaContext & GetCompileFormulaContext() const
Definition: xeroot.hxx:122
double GetValue() const
Definition: colorscale.cxx:236
B2DRange maRange
XclExpExtType
Definition: xeextlst.hxx:20