You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iData/iFileEngine/iCsvFileHelper.h

52 lines
1.6 KiB
C

#pragma once
#include <QStringList>
#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<QString, QVariant>& 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; // 存储最后一次错误信息
};