mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-20 01:04:34 +08:00
added extension list conversion
This commit is contained in:
@ -129,7 +129,7 @@ namespace OOX
|
||||
sResult += L" relId=\"" + m_oRelId->ToString() + L"\"";
|
||||
}
|
||||
sResult += L" minVer=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\"/>";
|
||||
|
||||
|
||||
return sResult;
|
||||
}
|
||||
EElementType CDataModelExt::getType() const
|
||||
@ -214,9 +214,9 @@ namespace OOX
|
||||
*m_sUri == L"{46F421CA-312F-682f-3DD2-61675219B42D}" ||
|
||||
*m_sUri == L"{DE250136-89BD-433C-8126-D09CA5730AF9}" ||
|
||||
*m_sUri == L"{19B8F6BF-5375-455C-9EA6-DF929625EA0E}" ||
|
||||
*m_sUri == L"{725AE2AE-9491-48be-B2B4-4EB974FC3084}" ||
|
||||
*m_sUri == L"{725AE2AE-9491-48be-B2B4-4EB974FC3084}" ||
|
||||
*m_sUri == L"{231B7EB2-2AFC-4442-B178-5FFDF5851E7C}" ||
|
||||
*m_sUri == L"http://schemas.microsoft.com/office/drawing/2008/diagram"))
|
||||
*m_sUri == L"http://schemas.microsoft.com/office/drawing/2008/diagram"))
|
||||
{
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while (oReader.ReadNextSiblingNode(nCurDepth))
|
||||
@ -491,7 +491,7 @@ namespace OOX
|
||||
NSStringUtils::CStringBuilder writer;
|
||||
writer.StartNode(L"externalReference");
|
||||
writer.StartAttributes();
|
||||
|
||||
|
||||
if (m_oFileKey.IsInit()) writer.WriteAttribute(L"fileKey", *m_oFileKey);
|
||||
if (m_oInstanceId.IsInit()) writer.WriteAttribute(L"instanceId", *m_oInstanceId);
|
||||
|
||||
@ -585,7 +585,7 @@ namespace OOX
|
||||
}
|
||||
|
||||
pWriter->WriteNodeEnd(ns + L"extLst");
|
||||
}
|
||||
}
|
||||
std::wstring COfficeArtExtensionList::toXML() const
|
||||
{
|
||||
return toXMLWithNS(L"a:");
|
||||
@ -606,6 +606,38 @@ namespace OOX
|
||||
|
||||
return sResult;
|
||||
}
|
||||
XLS::BaseObjectPtr COfficeArtExtensionList::toBinWorksheet()
|
||||
{
|
||||
auto ptr(new XLSB::FRTWORKSHEET);
|
||||
XLS::BaseObjectPtr objectPtr(ptr);
|
||||
if(m_arrExt.empty())
|
||||
return objectPtr;
|
||||
for(auto i:m_arrExt)
|
||||
{
|
||||
if(i->m_sUri == L"{78C0D931-6437-407d-A8EE-F0AAD7539E65}")
|
||||
{
|
||||
auto formatPtr(new XLSB::CONDITIONALFORMATTINGS);
|
||||
ptr->m_CONDITIONALFORMATTINGS = XLS::BaseObjectPtr{formatPtr};
|
||||
for(auto j:i->m_arrConditionalFormatting)
|
||||
{
|
||||
formatPtr->m_arCONDITIONALFORMATTING14.push_back(j->toBin());
|
||||
}
|
||||
}
|
||||
else if(i->m_sUri == L"{CCE6A557-97BC-4B89-ADB6-D9C93CAAB3DF}")
|
||||
{
|
||||
ptr->m_DVALS14 = i->m_oDataValidations->toBin();
|
||||
}
|
||||
else if(i->m_sUri == L"{05C60535-1F16-4fd2-B633-F4F36F0B64E0}")
|
||||
{
|
||||
ptr->m_SPARKLINEGROUPS = i->m_oSparklineGroups->toBin();
|
||||
}
|
||||
else if(i->m_sUri == L"{A8765BA9-456A-4dab-B4F3-ACF838C121DE}")
|
||||
{
|
||||
ptr->m_SLICERSEX = i->m_oSlicerList->toBin();
|
||||
}
|
||||
}
|
||||
return objectPtr;
|
||||
}
|
||||
void COfficeArtExtensionList::fromBin(XLS::BaseObjectPtr& obj)
|
||||
{
|
||||
if (obj->get_type() == XLS::typeFRTWORKBOOK)
|
||||
|
||||
@ -105,7 +105,7 @@ namespace OOX
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// COfficeArtExtension 20.1.2.2.14 (Part 1)
|
||||
//--------------------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
class COfficeArtExtension : public WritingElement
|
||||
{
|
||||
@ -150,7 +150,7 @@ namespace OOX
|
||||
std::vector<OOX::Spreadsheet::CSlicerCachePivotTable*> m_oSlicerCachePivotTables;
|
||||
nullable<OOX::Spreadsheet::CTableSlicerCache> m_oTableSlicerCache;
|
||||
nullable<OOX::Spreadsheet::CSlicerCacheHideNoData> m_oSlicerCacheHideItemsWithNoData;
|
||||
|
||||
|
||||
std::vector<OOX::Spreadsheet::CConditionalFormatting*> m_arrConditionalFormatting;
|
||||
|
||||
nullable<OOX::CPresenceInfo> m_oPresenceInfo;
|
||||
@ -167,7 +167,7 @@ namespace OOX
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// COfficeArtExtensionList 20.1.2.2.15 (Part 1)
|
||||
//--------------------------------------------------------------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
class COfficeArtExtensionList : public WritingElement
|
||||
{
|
||||
@ -185,6 +185,7 @@ namespace OOX
|
||||
virtual std::wstring toXML() const;
|
||||
std::wstring toXMLWithNS(const std::wstring& sNamespace) const;
|
||||
void fromBin(XLS::BaseObjectPtr& obj);
|
||||
XLS::BaseObjectPtr toBinWorksheet();
|
||||
virtual EElementType getType() const;
|
||||
|
||||
std::vector<OOX::Drawing::COfficeArtExtension*> m_arrExt;
|
||||
|
||||
@ -540,6 +540,15 @@ void CSlicerCache::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
}
|
||||
XLS::BaseObjectPtr CSlicerRef::toBin()
|
||||
{
|
||||
auto ptr(new XLSB::SLICEREX);
|
||||
XLS::BaseObjectPtr objectPtr(ptr);
|
||||
auto ptr1(new XLSB::BeginSlicerEx);
|
||||
ptr1->FRTheader.relID.relId = m_oRId->GetValue();
|
||||
|
||||
return objectPtr;
|
||||
}
|
||||
void CSlicerRef::fromBin(XLS::BaseObjectPtr &obj)
|
||||
{
|
||||
ReadAttributes(obj);
|
||||
@ -557,7 +566,6 @@ void CSlicerRef::ReadAttributes(XLS::BaseObjectPtr &obj)
|
||||
if(!ptr1->FRTheader.relID.relId.value().empty())
|
||||
m_oRId = ptr1->FRTheader.relID.relId.value();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if(obj->get_type() == XLS::typeTABLESLICEREX)
|
||||
@ -778,6 +786,17 @@ void CSlicerCaches::toXML(NSStringUtils::CStringBuilder& writer, const std::wstr
|
||||
}
|
||||
writer.EndNode(sPrefix + sName);
|
||||
}
|
||||
XLS::BaseObjectPtr CSlicerRefs::toBin()
|
||||
{
|
||||
auto ptr(new XLSB::SLICERSEX);
|
||||
XLS::BaseObjectPtr objectPtr(ptr);
|
||||
|
||||
for(auto i:m_oSlicer)
|
||||
{
|
||||
ptr->m_arSLICEREX.push_back(i.toBin());
|
||||
}
|
||||
return objectPtr;
|
||||
}
|
||||
void CSlicerRefs::fromBin(XLS::BaseObjectPtr &obj)
|
||||
{
|
||||
if(obj->get_type() == XLS::typeSLICERSEX)
|
||||
|
||||
@ -206,6 +206,7 @@ namespace OOX
|
||||
virtual void toXML(NSStringUtils::CStringBuilder& writer, const std::wstring& sName) const;
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
void fromBin(XLS::BaseObjectPtr& obj);
|
||||
XLS::BaseObjectPtr toBin();
|
||||
void ReadAttributes(XLS::BaseObjectPtr& obj);
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
@ -280,6 +281,7 @@ namespace OOX
|
||||
virtual void toXML(NSStringUtils::CStringBuilder& writer, const std::wstring& sName) const;
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
void fromBin(XLS::BaseObjectPtr& obj);
|
||||
XLS::BaseObjectPtr toBin();
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
|
||||
virtual EElementType getType() const
|
||||
{
|
||||
|
||||
@ -393,6 +393,65 @@ namespace OOX
|
||||
m_oSparklines = obj;
|
||||
}
|
||||
}
|
||||
XLS::BaseObjectPtr CSparklineGroup::toBin()
|
||||
{
|
||||
auto ptr1(new XLSB::SPARKLINEGROUP);
|
||||
XLS::BaseObjectPtr objectPtr(ptr1);
|
||||
|
||||
auto ptr(new XLSB::BeginSparklineGroup);
|
||||
ptr1->m_BrtBeginSparklineGroup = XLS::BaseObjectPtr{ptr};
|
||||
|
||||
ptr->dManualMax.data.value = m_oManualMax->GetValue();
|
||||
ptr->dManualMin.data.value = m_oManualMin->GetValue();
|
||||
ptr->dLineWeight.data.value = m_oLineWeight->GetValue();
|
||||
ptr->isltype = static_cast<decltype(ptr->isltype)>(m_oType->GetValue());
|
||||
ptr->fDateAxis = m_oDateAxis->GetValue();
|
||||
ptr->fShowEmptyCellAsZero = (m_oDisplayEmptyCellsAs == OOX::Spreadsheet::ST_DispBlanksAs::st_dispblanksasZERO) ? 0x01 : 0x00;
|
||||
ptr->fMarkers = m_oMarkers->GetValue();
|
||||
ptr->fHigh = m_oHigh->GetValue();
|
||||
ptr->fLow = m_oLow->GetValue();
|
||||
ptr->fFirst = m_oFirst->GetValue();
|
||||
ptr->fLast = m_oLast->GetValue();
|
||||
ptr->fNegative = m_oNegative->GetValue();
|
||||
ptr->fAxis = m_oDisplayXAxis->GetValue();
|
||||
ptr->fDisplayHidden = m_oDisplayHidden->GetValue();
|
||||
ptr->fRTL = m_oRightToLeft->GetValue();
|
||||
|
||||
if(m_oMaxAxisType == SimpleTypes::Spreadsheet::ESparklineAxisMinMax::Individual)
|
||||
ptr->fIndividualAutoMax = true;
|
||||
|
||||
|
||||
if(m_oColorSeries.IsInit())
|
||||
ptr->brtcolorSeries = m_oColorSeries->toColor();
|
||||
|
||||
if(m_oColorNegative.IsInit())
|
||||
ptr->brtcolorNegative = m_oColorNegative->toColor();
|
||||
|
||||
if(m_oColorAxis.IsInit())
|
||||
ptr->brtcolorAxis = m_oColorAxis->toColor();
|
||||
|
||||
if(m_oColorMarkers.IsInit())
|
||||
ptr->brtcolorMarkers = m_oColorMarkers->toColor();
|
||||
|
||||
if(m_oColorFirst.IsInit())
|
||||
ptr->brtcolorFirst = m_oColorFirst->toColor();
|
||||
|
||||
if(m_oColorLast.IsInit())
|
||||
ptr->brtcolorLast = m_oColorLast->toColor();
|
||||
|
||||
if(m_oColorHigh.IsInit())
|
||||
ptr->brtcolorHigh = m_oColorHigh->toColor();
|
||||
|
||||
if(m_oColorLow.IsInit())
|
||||
ptr->brtcolorLow = m_oColorLow->toColor();
|
||||
|
||||
if(ptr->FRTheader.rgFormulas.array.size() > 0)
|
||||
{
|
||||
ptr->FRTheader.rgFormulas.array[0].formula = m_oRef.get();
|
||||
}
|
||||
|
||||
return objectPtr;
|
||||
}
|
||||
EElementType CSparklineGroup::getType () const
|
||||
{
|
||||
return et_x_SparklineGroup;
|
||||
@ -556,6 +615,14 @@ namespace OOX
|
||||
m_arrItems.push_back(new CSparklineGroup(sparklineGroup));
|
||||
}
|
||||
}
|
||||
XLS::BaseObjectPtr CSparklineGroups::toBin()
|
||||
{
|
||||
auto ptr(new XLSB::SPARKLINEGROUPS);
|
||||
XLS::BaseObjectPtr objectPtr(ptr);
|
||||
for(auto i:m_arrItems)
|
||||
ptr->m_arSPARKLINEGROUP.push_back(i->toBin());
|
||||
return objectPtr;
|
||||
}
|
||||
EElementType CSparklineGroups::getType () const
|
||||
{
|
||||
return et_x_SparklineGroups;
|
||||
|
||||
@ -109,6 +109,7 @@ namespace OOX
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
void fromBin(XLS::BaseObjectPtr& obj);
|
||||
XLS::BaseObjectPtr toBin();
|
||||
virtual EElementType getType () const;
|
||||
|
||||
private:
|
||||
@ -163,6 +164,7 @@ namespace OOX
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
void fromBin(XLS::BaseObjectPtr& obj);
|
||||
XLS::BaseObjectPtr toBin();
|
||||
virtual EElementType getType () const;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user