xlsxworkbook.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. // xlsxworkbook.h
  2. #ifndef XLSXWORKBOOK_H
  3. #define XLSXWORKBOOK_H
  4. #include "xlsxabstractooxmlfile.h"
  5. #include "xlsxabstractsheet.h"
  6. #include "xlsxglobal.h"
  7. #include <memory>
  8. #include <QIODevice>
  9. #include <QImage>
  10. #include <QList>
  11. QT_BEGIN_NAMESPACE_XLSX
  12. class SharedStrings;
  13. class Styles;
  14. class Drawing;
  15. class Document;
  16. class Theme;
  17. class Relationships;
  18. class DocumentPrivate;
  19. class MediaFile;
  20. class Chart;
  21. class Chartsheet;
  22. class Worksheet;
  23. class WorkbookPrivate;
  24. class QXLSX_EXPORT Workbook : public AbstractOOXmlFile
  25. {
  26. Q_DECLARE_PRIVATE(Workbook)
  27. public:
  28. ~Workbook();
  29. int sheetCount() const;
  30. AbstractSheet *sheet(int index) const;
  31. AbstractSheet *addSheet(const QString &name = QString(),
  32. AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet);
  33. AbstractSheet *insertSheet(int index,
  34. const QString &name = QString(),
  35. AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet);
  36. bool renameSheet(int index, const QString &name);
  37. bool deleteSheet(int index);
  38. bool copySheet(int index, const QString &newName = QString());
  39. bool moveSheet(int srcIndex, int distIndex);
  40. AbstractSheet *activeSheet() const;
  41. bool setActiveSheet(int index);
  42. // void addChart();
  43. bool defineName(const QString &name,
  44. const QString &formula,
  45. const QString &comment = QString(),
  46. const QString &scope = QString());
  47. bool isDate1904() const;
  48. void setDate1904(bool date1904);
  49. bool isStringsToNumbersEnabled() const;
  50. void setStringsToNumbersEnabled(bool enable = true);
  51. bool isStringsToHyperlinksEnabled() const;
  52. void setStringsToHyperlinksEnabled(bool enable = true);
  53. bool isHtmlToRichStringEnabled() const;
  54. void setHtmlToRichStringEnabled(bool enable = true);
  55. QString defaultDateFormat() const;
  56. void setDefaultDateFormat(const QString &format);
  57. // internal used member
  58. void addMediaFile(std::shared_ptr<MediaFile> media, bool force = false);
  59. QList<std::shared_ptr<MediaFile>> mediaFiles() const;
  60. void addChartFile(std::shared_ptr<Chart> chartFile);
  61. QList<std::shared_ptr<Chart>> chartFiles() const;
  62. private:
  63. friend class Worksheet;
  64. friend class Chartsheet;
  65. friend class WorksheetPrivate;
  66. friend class Document;
  67. friend class DocumentPrivate;
  68. Workbook(Workbook::CreateFlag flag);
  69. void saveToXmlFile(QIODevice *device) const override;
  70. bool loadFromXmlFile(QIODevice *device) override;
  71. SharedStrings *sharedStrings() const;
  72. Styles *styles();
  73. Theme *theme();
  74. QList<QImage> images();
  75. QList<Drawing *> drawings();
  76. QList<std::shared_ptr<AbstractSheet>> getSheetsByTypes(AbstractSheet::SheetType type) const;
  77. QStringList worksheetNames() const;
  78. AbstractSheet *addSheet(const QString &name,
  79. int sheetId,
  80. AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet);
  81. };
  82. QT_END_NAMESPACE_XLSX
  83. #endif // XLSXWORKBOOK_H