#pragma once #include #include "Defines.h" #include "iFileEngine_global.h" class I_FILE_ENGINE_EXPORT iCsvFileHelper { public: iCsvFileHelper(); ~iCsvFileHelper(); public: // 获取最后一次错误信息 QString getLastError() const { return m_sError; } // 清除错误信息 void clearError() { m_sError.clear(); } // 保存QPointF向量到CSV (每行一个点,x和y作为两列) bool saveToCsv(const VecPointF& vecPts, const QStringList& listTitles, const QString& sFile); // 保存二维double向量到CSV (每个子向量为一行) bool saveToCsv(const VVecDouble& vvec, const QStringList& listTitles, const QString& sFile); // 保存键值对映射到CSV (键作为表头,值作为数据行) bool saveToCsv(const QMap& map, const QStringList& listTitles, const QString& sFile); // 保存QStringList到CSV,每个字符串为一行,使用指定的分隔符分割 // delimiter: 分隔符字符串,可以包含多个字符,如 ":\t" 表示按 : 或 \t 分割 bool saveToCsv(const QStringList& lines, const QStringList& listTitles, const QString& sFile, const QString& seps = ":"); // 核心保存函数:将二维QVariant向量写入CSV文件 bool _saveToCsv(const VVecVariant& vvec, const QStringList& listTitles, const QString& sFile); private: // 辅助函数:将QVariant转换为字符串 QString variantToString(const QVariant& value); // 设置错误信息 void setError(const QString& error) { m_sError = error; } private: QString m_sError; // 存储最后一次错误信息 };