File indexing completed on 2024-06-23 03:45:57
0001 // xlsxworkbook.h 0002 0003 #ifndef XLSXWORKBOOK_H 0004 #define XLSXWORKBOOK_H 0005 0006 #include <QtGlobal> 0007 #include <QList> 0008 #include <QImage> 0009 #include <QSharedPointer> 0010 #include <QIODevice> 0011 0012 #include <memory> 0013 0014 #include "xlsxglobal.h" 0015 #include "xlsxabstractooxmlfile.h" 0016 #include "xlsxabstractsheet.h" 0017 0018 QT_BEGIN_NAMESPACE_XLSX 0019 0020 class SharedStrings; 0021 class Styles; 0022 class Drawing; 0023 class Document; 0024 class Theme; 0025 class Relationships; 0026 class DocumentPrivate; 0027 class MediaFile; 0028 class Chart; 0029 class Chartsheet; 0030 class Worksheet; 0031 class WorkbookPrivate; 0032 0033 class QXLSX_EXPORT Workbook : public AbstractOOXmlFile 0034 { 0035 Q_DECLARE_PRIVATE(Workbook) 0036 public: 0037 ~Workbook(); 0038 0039 int sheetCount() const; 0040 AbstractSheet *sheet(int index) const; 0041 0042 AbstractSheet *addSheet(const QString &name = QString(), AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet); 0043 AbstractSheet *insertSheet(int index, const QString &name = QString(), AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet); 0044 bool renameSheet(int index, const QString &name); 0045 bool deleteSheet(int index); 0046 bool copySheet(int index, const QString &newName=QString()); 0047 bool moveSheet(int srcIndex, int distIndex); 0048 0049 AbstractSheet *activeSheet() const; 0050 bool setActiveSheet(int index); 0051 0052 // void addChart(); 0053 bool defineName(const QString &name, const QString &formula, const QString &comment=QString(), const QString &scope=QString()); 0054 bool isDate1904() const; 0055 void setDate1904(bool date1904); 0056 bool isStringsToNumbersEnabled() const; 0057 void setStringsToNumbersEnabled(bool enable=true); 0058 bool isStringsToHyperlinksEnabled() const; 0059 void setStringsToHyperlinksEnabled(bool enable=true); 0060 bool isHtmlToRichStringEnabled() const; 0061 void setHtmlToRichStringEnabled(bool enable=true); 0062 QString defaultDateFormat() const; 0063 void setDefaultDateFormat(const QString &format); 0064 0065 //internal used member 0066 void addMediaFile(std::shared_ptr<MediaFile> media, bool force=false); 0067 QList<std::shared_ptr<MediaFile> > mediaFiles() const; 0068 void addChartFile(QSharedPointer<Chart> chartFile); 0069 QList<QSharedPointer<Chart> > chartFiles() const; 0070 0071 private: 0072 friend class Worksheet; 0073 friend class Chartsheet; 0074 friend class WorksheetPrivate; 0075 friend class Document; 0076 friend class DocumentPrivate; 0077 0078 Workbook(Workbook::CreateFlag flag); 0079 0080 void saveToXmlFile(QIODevice *device) const override; 0081 bool loadFromXmlFile(QIODevice *device) override; 0082 0083 SharedStrings *sharedStrings() const; 0084 Styles *styles(); 0085 Theme *theme(); 0086 QList<QImage> images(); 0087 QList<Drawing *> drawings(); 0088 QList<QSharedPointer<AbstractSheet> > getSheetsByTypes(AbstractSheet::SheetType type) const; 0089 QStringList worksheetNames() const; 0090 AbstractSheet *addSheet(const QString &name, int sheetId, AbstractSheet::SheetType type = AbstractSheet::ST_WorkSheet); 0091 }; 0092 0093 QT_END_NAMESPACE_XLSX 0094 0095 #endif // XLSXWORKBOOK_H