#ifndef CSVPARSER_H #define CSVPARSER_H #include typedef QHash ModelItemValues; namespace rapidcsv { class Document; } class CsvParser { public: static QList getItemsFromCSVFile(const QString& fileName); static bool exportToCSVFile(const QList& rows, const QString& filePath); private: explicit CsvParser(); static bool isCsvCompatible(const rapidcsv::Document& doc); static QList createListItemsFromCsvEntries(const rapidcsv::Document& doc); static QHash> extractColumnValues( const QList headerNames, const rapidcsv::Document& doc); static ModelItemValues getItemValuesForRow( const QList& headerNames, const QHash>& columnValueMap, const int row); static QVariant parseItemValue(const int role, const std::string& valueString); }; #endif // CSVPARSER_H