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++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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; // 存储最后一次错误信息
};