qt/LedOK/QXlsx/header/xlsxchart.h

77 lines
1.9 KiB
C
Raw Normal View History

2025-06-27 22:06:33 +08:00
// xlsxchart.h
#ifndef QXLSX_CHART_H
#define QXLSX_CHART_H
#include "xlsxabstractooxmlfile.h"
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
QT_BEGIN_NAMESPACE_XLSX
class AbstractSheet;
class Worksheet;
class ChartPrivate;
class CellRange;
class DrawingAnchor;
class QXLSX_EXPORT Chart : public AbstractOOXmlFile
{
Q_DECLARE_PRIVATE(Chart)
public:
enum ChartType { // 16 type of chart (ECMA 376)
CT_NoStatementChart = 0, // Zero is internally used for unknown types
CT_AreaChart,
CT_Area3DChart,
CT_LineChart,
CT_Line3DChart,
CT_StockChart,
CT_RadarChart,
CT_ScatterChart,
CT_PieChart,
CT_Pie3DChart,
CT_DoughnutChart,
CT_BarChart,
CT_Bar3DChart,
CT_OfPieChart,
CT_SurfaceChart,
CT_Surface3DChart,
CT_BubbleChart,
};
enum ChartAxisPos { None = (-1), Left = 0, Right, Top, Bottom };
private:
friend class AbstractSheet;
friend class Worksheet;
friend class Chartsheet;
friend class DrawingAnchor;
private:
Chart(AbstractSheet *parent, CreateFlag flag);
public:
~Chart();
public:
void addSeries(const CellRange &range,
AbstractSheet *sheet = nullptr,
bool headerH = false,
bool headerV = false,
bool swapHeaders = false);
void setChartType(ChartType type);
void setChartStyle(int id);
void setAxisTitle(Chart::ChartAxisPos pos, QString axisTitle);
void setChartTitle(QString strchartTitle);
void setChartLegend(Chart::ChartAxisPos legendPos, bool overlap = false);
void setGridlinesEnable(bool majorGridlinesEnable = false, bool minorGridlinesEnable = false);
public:
bool loadFromXmlFile(QIODevice *device) override;
void saveToXmlFile(QIODevice *device) const override;
};
QT_END_NAMESPACE_XLSX
#endif // QXLSX_CHART_H