Skip to content

要求

  1. Qt 6.0+
  2. c++17+

1.安装

  • CMake

    • 1.直接使用
      在文件中直接添加:
      cmake
      set(SOURCES
          QCsv.cpp
      )
      
      # 设置头文件目录
      set(HEADERS
          QCsv.hpp
      )
      
      # 添加可执行文件
      add_executable(myapp ${SOURCES} ${HEADERS})
    • 2.安装到目录
      安装方法
  • qmake

    添加

    prolog
    # 添加头文件
    HEADERS += QCsv.hpp
    
    # 添加源文件
    SOURCES += QCsv.cpp

2.使用

1.构造

cpp
    QCsv csv(QString filePath); //禁止使用 QCsv csv; (未打开文件的csv对象)
    //或者
    QCsv csv2(csv); //移动构造,禁用拷贝

2.文件操作

方法返回值描述
open(const QString& filePath)void打开指定路径的文件
close()void关闭当前文件
isOpen()bool检查文件是否已打开
load()void加载文件内容
save()bool保存数据到当前文件
saveAs(const QString& filePath)bool另存为指定文件
atomicSave()bool原子保存(防止数据损坏)
atomicSaveAs(const QString& filePath)bool原子另存为
sync()QFuture<bool>异步同步数据到磁盘
finalize()void保存并关闭文件

3.数据访问

方法返回值描述
getValue(const QString& key) constQString获取指定键的值(键格式如 "R1C1")
tryGetValue(const QString& key) conststd::optional<QString>尝试获取值,失败返回空
setValue(const QString& key, const QString& value)void设置指定单元格的值
contains(const QString& key) constbool检查单元格是否存在
keys() constQList<QString>获取所有单元格键
size() constint获取单元格总数
isEmpty() constbool检查数据是否为空

4.批量操作

方法返回值描述
setValues(const QHash<QString, QString>& values)void批量设置多个单元格
getAllValues() constQHash<QString, QString>获取所有数据

5.搜索功能

方法返回值描述
search(const QString& value) constQList<QString>搜索包含指定值的所有单元格键
searchByPrefix(const QString& prefix) constQList<QString>搜索键以指定前缀开头的单元格

6.属性设置

方法返回值描述
setSeparator(char sep)void设置CSV分隔符
getSeparator() constchar获取当前分隔符
setFilePath(const QString& path)void设置文件路径
getFilePath() constQString获取当前文件路径
clear()void清空所有数据

7.元数据

方法返回值描述
getRowCount() constint获取最大行号
getColumnCount() constint获取最大列号

8.流式读取

方法返回值描述
operator>>(QCsv& csv, QString& value)QCsv&流式读取下一个值
resetStream()void重置流读取位置

9.信号

信号参数描述
dataChangedconst QString& key, const QString& oldValue, const QString& newValue当单元格数据发生变化时发出,包含键、旧值和新值
fileOpenedconst QString& filePath文件成功打开时发出
fileClosed无参数文件关闭时发出
fileSavedconst QString& filePath文件成功保存时发出
errorconst QString& errorString发生错误时发出,包含错误信息

这些信号可以用于监控 QCsv 对象的状态变化和操作结果,便于在 UI 层进行相应的反馈和处理。

3.源代码

源代码