12 #include <string_view>
17 #include <stlpool.hxx>
23 #include <oox/token/namespaces.hxx>
25 using namespace ::
oox;
61 nIndex(rCustomEntry.second)
76 rWorksheet->singleElementNS(XML_x14, XML_cfIcon,
78 XML_iconId, OString::number(
nIndex));
132 rWorksheet->startElementNS(XML_x14, XML_cfvo, XML_type, getColorScaleType(
meType,
mbFirst));
139 rWorksheet->startElementNS(XML_xm, XML_f);
140 rWorksheet->writeEscaped(
maValue.getStr());
141 rWorksheet->endElementNS(XML_xm, XML_f);
144 rWorksheet->endElementNS(XML_x14, XML_cfvo);
175 OString aPos = aBuffer.makeStringAndClear();
179 return OString(
"LEFT(" + aPos +
",LEN(" + rText +
"))=" + rText);
181 return OString(
"RIGHT(" + aPos +
",LEN(" + rText +
"))=" + rText);
183 return OString(OString::Concat(
"NOT(ISERROR(SEARCH(") + rText +
"," + aPos +
")))");
185 return OString(OString::Concat(
"ISERROR(SEARCH(") + rText +
"," + aPos +
"))");
205 std::unique_ptr<XclExpColor> pColor(
new XclExpColor);
206 if(!pColor->FillFromItemSet( rSet ))
214 if (!pAlign->FillFromItemSet( rSet,
false,
GetBiff()))
218 if (!pCellProt->FillFromItemSet( rSet ))
223 std::unique_ptr<XclExpNumFmt> pNumFormat;
229 sal_uInt32 nXclNumFmt = rNumFmtBuffer.
Insert(nScNumFmt);
237 std::move(pNumFormat),
238 std::move(pCellProt),
244 if (RequiresFixedFormula(eOperation))
247 OString aFixedFormulaText = aFormula.toUtf8();
248 OString aFixedFormula = GetFixedFormula(eOperation, aFixedFormulaPos, aFixedFormulaText);
249 rWorksheet->startElementNS( XML_xm, XML_f );
250 rWorksheet->writeEscaped(aFixedFormula.getStr());
251 rWorksheet->endElementNS( XML_xm, XML_f );
253 rWorksheet->startElementNS( XML_xm, XML_f );
254 rWorksheet->writeEscaped( aFormula );
255 rWorksheet->endElementNS( XML_xm, XML_f );
260 rWorksheet->startElementNS(XML_xm, XML_f);
261 rWorksheet->writeEscaped(aFormula);
262 rWorksheet->endElementNS(XML_xm, XML_f);
289 switch(eAxisPosition)
303 const char* pRet =
nullptr;
313 pRet =
"greaterThan";
316 pRet =
"lessThanOrEqual";
319 pRet =
"greaterThanOrEqual";
343 pRet =
"containsText";
346 pRet =
"notContains";
368 return "containsText";
370 return "notContainsText";
381 rWorksheet->startElementNS( XML_x14, XML_dataBar,
392 rWorksheet->endElementNS( XML_x14, XML_dataBar );
421 rWorksheet->startElementNS(XML_x14, XML_iconSet,
434 rWorksheet->endElementNS(XML_x14, XML_iconSet);
479 rWorksheet->startElementNS( XML_x14, XML_cfRule,
487 rWorksheet->endElementNS( XML_x14, XML_cfRule );
492 std::vector<XclExpExtCondFormatData>& rData,
const ScRangeList& rRange):
497 for (
const auto& rItem : rData)
505 bool bNeedsExt =
false;
543 rWorksheet->startElementNS( XML_x14, XML_conditionalFormatting,
547 rWorksheet->startElementNS(XML_xm, XML_sqref);
550 rWorksheet->endElementNS( XML_xm, XML_sqref );
552 rWorksheet->endElementNS( XML_x14, XML_conditionalFormatting );
558 maURI = OString(
"{7626C862-2A13-11E5-B345-FEFF819CDC9F}");
572 maSyntax = OString(
"CalcA1ExcelA1");
587 rWorksheet->startElement( XML_ext,
591 rWorksheet->singleElementNS(XML_loext, XML_extCalcPr, XML_stringRefSyntax,
maSyntax);
593 rWorksheet->endElement( XML_ext );
599 maURI = OString(
"{78C0D931-6437-407d-A8EE-F0AAD7539E65}");
605 rWorksheet->startElement( XML_ext,
609 rWorksheet->startElementNS(XML_x14, XML_conditionalFormattings);
613 rWorksheet->endElementNS( XML_x14, XML_conditionalFormattings );
614 rWorksheet->endElement( XML_ext );
628 rWorksheet->startElement(XML_extLst);
632 rWorksheet->endElement( XML_extLst );
643 for(
size_t i = 0;
i < n; ++
i )
const char * mpIconSetName
std::unique_ptr< XclExpExtNegativeColor > mpNegativeColor
static OString ToOString(const Color &rColor)
XclExpRecordList< XclExpExtIcon > maCustom
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual void SaveXml(XclExpXmlStream &rStrm) override
const XclExpRoot & GetRoot() const
Returns the filter root data.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpRecordList< XclExpExtCfvo > maCfvos
XclExpRecordList< XclExpExt > maExtEntries
XclExpExtIcon(const XclExpRoot &rRoot, const std::pair< ScIconSetType, sal_Int32 > &rCustomEntry)
void AppendRecord(RecType *pRec)
Appends a record to the list.
static OUString ToOUString(const char *s)
XclExpExtNegativeColor(const Color &rColor)
void SaveXml(XclExpXmlStream &rStrm)
const OUString & GetStyle() const
OUString GetFormatCode(sal_uInt32 nScNumFmt)
const ContentProperties & rData
XclExpExtCfRule(const XclExpRoot &rRoot, const ScFormatEntry &rFormat, const ScAddress &rPos, const OString &rId, sal_Int32 nPriority)
virtual SfxItemSet & GetItemSet()
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
ScConditionMode GetOperation() const
XclExpExtAxisColor(const Color &maColor)
const char * pIconSetName
Base class for ext entries.
const ScTokenArray * GetFormula() const
XclExpExt(const XclExpRoot &rRoot)
Access to global data from other classes.
ScCondFormatEntry mrFormat
XclExpExtCalcPr(const XclExpRoot &rRoot, formula::FormulaGrammar::AddressConvention eConv)
OUString getNamespaceURL(sal_Int32 nNSID) const
void AddRecord(XclExpExt *pEntry)
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpExtCfvo(const XclExpRoot &rRoot, const ScColorScaleEntry &rEntry, const ScAddress &rPos, bool bFirst)
ScColorScaleEntryType GetType() const
Stores all number formats used in the document.
Extends the XclCellAlign struct for export.
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
databar::ScAxisPosition meAxisPosition
sax_fastparser::FSHelperPtr & GetCurrentStream()
XclExtLst(const XclExpRoot &rRoot)
ScAddress GetValidSrcPos() const
Return a position that's adjusted to allow textual representation of expressions if possible...
Extends the XclCellBorder struct for export.
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
XclExpExtCF(const XclExpRoot &rRoot, const ScCondFormatEntry &rFormat)
sal_uInt16 Insert(sal_uInt32 nScNumFmt)
Inserts a number format into the format buffer.
XclExpPalette & GetPalette() const
Returns the color buffer.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclExpNumFmtBuffer & GetNumFmtBuffer() const
Returns the number format buffer.
std::unique_ptr< XclExpExtCfvo > mpLowerLimit
virtual void SaveXml(XclExpXmlStream &rStrm) override
virtual void SaveXml(XclExpXmlStream &rStrm) override
constexpr TypedWhichId< SfxUInt32Item > ATTR_VALUE_FORMAT(146)
ScColorScaleEntryType meType
std::shared_ptr< FastSerializerHelper > FSHelperPtr
void AppendNewRecord(RecType *pRec)
Appends a newly created record to the list.
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
Stores a core number format index with corresponding Excel format index.
Extends the XclCellProt struct for export.
XclExpExtIconSet(const XclExpRoot &rRoot, const ScIconSetFormat &rFormat, const ScAddress &rPos)
RecType * GetRecord(size_t nPos) const
Returns reference to an existing record or empty reference on error.
virtual void SaveXml(XclExpXmlStream &rStrm) override
std::unique_ptr< char[]> aBuffer
void SaveXml(XclExpXmlStream &rStrm)
XclExpExtDataBar(const XclExpRoot &rRoot, const ScDataBarFormat &rFormat, const ScAddress &rPos)
virtual XclExpExtType GetType()=0
std::unique_ptr< XclExpExtCfvo > mpUpperLimit
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
constexpr sal_Int32 FSNS(sal_Int32 namespc, sal_Int32 element)
virtual Type GetType() const =0
void SaveXmlExt(XclExpXmlStream &rStrm)
std::unique_ptr< ScTokenArray > CreateFlatCopiedTokenArray(sal_uInt16 nPos) const
Create a flat copy using ScTokenArray copy-ctor with shared tokens.
std::unique_ptr< XclExpExtAxisColor > mpAxisColor
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
const char * UseIf(const char *s, bool bUse)
XclExpExt * GetItem(XclExpExtType eType)
sc::CompileFormulaContext & GetCompileFormulaContext() const