Qt之自定义model读写CSV文件

一.效果

Qt之自定义model读写CSV文件_第1张图片
本文基于QAbstractTableModel实现了一个支持读写CSV文件的TableModel。CSV数据格式虽然很简单,但是网上大多数读写方式其实都是有bug的,没考虑到字段里包含逗号或换行符这种复杂数据的情况。

二.原理

CSV(Comma-Separated Values)文件是一种简单类型的纯文本文件,它使用特定的结构来排列表格数据。CSV文件的标准格式由行和列数据定义。其中换行符终止一行并开始下一行,并且每一列在行内用逗号分割。文件的第一行通常用于定义字段名,后续行则包含相应的数据值。字段值可以使用引号或双引号进行包裹,以处理包含逗号或换行符的复杂数据。CSV文件可以用记事本或Excel预览,当用Excel预览时,以表格的形式呈现。
假设一份CSV文件用Excel打开如下:

Qt之自定义model读写CSV文件_第2张图片
那么它用记事本打开如下:

Qt之自定义model读写CSV文件_第3张图片

三.实现

自定义TableModel:QxtCsvModel,分离自Qt第三方扩展库libqxt,稍作修改。
qxtcsvmodel.h

 
 

你可能感兴趣的:(Qt工作笔记,qt,QTableView,CSV,TableModel,C++)