#ifndef LREXCELEXPORTER_H #define LREXCELEXPORTER_H #include #include #include "lrexporterintf.h" namespace LimeReport{ struct Grid{ QSet x; QSet 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& params = QMap()); 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: QVectorx; QVectory; QVector exportedTypes; int m_xOffset; int m_yOffset; QXlsx::Document* m_document; }; } //namespace LimeReport #endif // LREXCELEXPORTER_H