#ifndef LREXCELEXPORTER_H #define LREXCELEXPORTER_H #include <QSet> #include <xlsxdocument.h> #include "lrexporterintf.h" namespace LimeReport{ struct Grid{ QSet<qreal> x; QSet<qreal> y; }; class ExcelExporter : public QObject, public ReportExporterInterface{ Q_OBJECT public: ExcelExporter(ReportEnginePrivate *parent = 0); // IReportExporter interface QString exporterName(); QString exporterFileExt(); QString hint(); bool exportPages(ReportPages pages, const QString& fileName, const QMap<QString, QVariant>& params = QMap<QString, QVariant>()); private: void buildGrid(Grid* grid, BaseDesignIntf* item); void exportItem(BaseDesignIntf* item); void createItemCell(BaseDesignIntf* item); int cellStartColumnIndex(BaseDesignIntf* item); int cellEndColumnIndex(BaseDesignIntf* item); int cellStartRowIndex(BaseDesignIntf* item); int cellEndRowIndex(BaseDesignIntf* item); QXlsx::Format createTextItemFormat(BaseDesignIntf *item); private: QVector<qreal>x; QVector<qreal>y; QVector<QString> exportedTypes; int m_xOffset; int m_yOffset; QXlsx::Document* m_document; }; } //namespace LimeReport #endif // LREXCELEXPORTER_H