add dv axis conversion

This commit is contained in:
Viktor Andreev
2026-01-16 20:15:31 +06:00
parent c4708222c6
commit 6e696daa15
3 changed files with 30 additions and 0 deletions

View File

@ -37,12 +37,14 @@
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_unions/SERIESFORMAT.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_unions/SS.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_unions/IVAXIS.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_unions/DVAXIS.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/Series.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/DataFormat.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/BRAI.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/SerToCrt.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/Axis.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/CatSerRange.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/ValueRange.h"
#include "../../../MsBinaryFile/XlsFile/Format/Logic/Biff_records/AxcExt.h"
namespace OOX
@ -3178,6 +3180,21 @@ xmlns:c16r2=\"http://schemas.microsoft.com/office/drawing/2015/06/chart\"");
writer.WriteString(sNodeName);
writer.WriteString(L">");
}
XLS::BaseObjectPtr CT_ValAx::toXLS()
{
auto dvAxis = new XLS::DVAXIS;
auto axis = new XLS::Axis;
axis->wType = 1;
dvAxis->m_Axis = XLS::BaseObjectPtr(axis);
auto valSerRange = new XLS::ValueRange;
valSerRange->fAutoMin = true;
valSerRange->fAutoMax = true;
valSerRange->fAutoMajor = true;
valSerRange->fAutoMinor = true;
valSerRange->fAutoCross = true;
dvAxis->m_ValueRange = XLS::BaseObjectPtr(valSerRange);
return XLS::BaseObjectPtr(dvAxis);
}
EElementType CT_ValAx::getType() { return et_ct_valax; }
CBaseSer::CBaseSer()

View File

@ -1059,6 +1059,7 @@ namespace OOX
void fromXML(XmlUtils::CXmlLiteReader& oReader);
void toXML(const std::wstring& sNodeName, NSStringUtils::CStringBuilder& writer) const;
XLS::BaseObjectPtr toXLS();
EElementType getType();
};
class CT_SerTx

View File

@ -347,6 +347,18 @@ namespace OOX
}
}
}
if(barChart->m_axId.size() > 1)
{
auto vaxId = barChart->m_axId.at(1);
if(!ChartFile->m_oChartSpace.m_chart->m_plotArea->m_Items1.empty())
{
auto dvAx = static_cast<CT_ValAx*>(ChartFile->m_oChartSpace.m_chart->m_plotArea->m_Items1.at(0));
if(dvAx->m_axId.IsInit() && dvAx->m_axId.get() == vaxId)
{
axes->m_arAxes.push_back(dvAx->toXLS());
}
}
}
}
}
}