xlsxchart.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // xlsxchart.h
  2. #ifndef QXLSX_CHART_H
  3. #define QXLSX_CHART_H
  4. #include "xlsxabstractooxmlfile.h"
  5. #include <QXmlStreamReader>
  6. #include <QXmlStreamWriter>
  7. QT_BEGIN_NAMESPACE_XLSX
  8. class AbstractSheet;
  9. class Worksheet;
  10. class ChartPrivate;
  11. class CellRange;
  12. class DrawingAnchor;
  13. class QXLSX_EXPORT Chart : public AbstractOOXmlFile
  14. {
  15. Q_DECLARE_PRIVATE(Chart)
  16. public:
  17. enum ChartType { // 16 type of chart (ECMA 376)
  18. CT_NoStatementChart = 0, // Zero is internally used for unknown types
  19. CT_AreaChart,
  20. CT_Area3DChart,
  21. CT_LineChart,
  22. CT_Line3DChart,
  23. CT_StockChart,
  24. CT_RadarChart,
  25. CT_ScatterChart,
  26. CT_PieChart,
  27. CT_Pie3DChart,
  28. CT_DoughnutChart,
  29. CT_BarChart,
  30. CT_Bar3DChart,
  31. CT_OfPieChart,
  32. CT_SurfaceChart,
  33. CT_Surface3DChart,
  34. CT_BubbleChart,
  35. };
  36. enum ChartAxisPos { None = (-1), Left = 0, Right, Top, Bottom };
  37. private:
  38. friend class AbstractSheet;
  39. friend class Worksheet;
  40. friend class Chartsheet;
  41. friend class DrawingAnchor;
  42. private:
  43. Chart(AbstractSheet *parent, CreateFlag flag);
  44. public:
  45. ~Chart();
  46. public:
  47. void addSeries(const CellRange &range,
  48. AbstractSheet *sheet = nullptr,
  49. bool headerH = false,
  50. bool headerV = false,
  51. bool swapHeaders = false);
  52. void setChartType(ChartType type);
  53. void setChartStyle(int id);
  54. void setAxisTitle(Chart::ChartAxisPos pos, QString axisTitle);
  55. void setChartTitle(QString strchartTitle);
  56. void setChartLegend(Chart::ChartAxisPos legendPos, bool overlap = false);
  57. void setGridlinesEnable(bool majorGridlinesEnable = false, bool minorGridlinesEnable = false);
  58. public:
  59. bool loadFromXmlFile(QIODevice *device) override;
  60. void saveToXmlFile(QIODevice *device) const override;
  61. };
  62. QT_END_NAMESPACE_XLSX
  63. #endif // QXLSX_CHART_H