目录

一、CSV的结构

二、源码简析

三、源码


一、CSV的结构

CSV文件,也称为逗号分隔值文件,顾名思义,就是用逗号和换行符分隔开的文件。下面举个例子就很清楚了:

例如我有一个class.csv文件,如果用表格软件打开,即如下:

如果用记事本打开,就是如下:

无论用什么方式打开,其实就是同一个东西。CSV文件通过","分开列,通过换行符(\t\n)分开行,这就是CSV文件的结构。

所以解析的时候,也是根据CSV文件的结构解析:

①根据换行符号将数据分割为行数据集;
②根据逗号“,”将每一行的数据分割为列数据集;
③然后通过循环索引数据。

二、源码简析

①读取CSV文件

/*
头文件请自行加
*/void MainWindow::on_pushButton_read_clicked()
{QString fileName = QFileDialog::getOpenFileName(this, tr("Excel file"), qApp->applicationDirPath (),tr("Files (*.csv)"));QFile file(fileName);if(!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << "Open Excel file failed!";return;}QStringList list;list.clear();QTextStream in(&file);in.setCodec("GB2312");      //这行的目的是支持读取中文信息//遍历行for(int i = 0; !in.atEnd(); i++){QString fileLine = in.readLine();list = fileLine.split(",", QString::SkipEmptyParts);    //根据","开分隔开每行的列if(i > 0)   //这里的目的是第一行的表项不赋值,如果需要表项内容可以去掉if{//遍历列,我的Domo只有4列for(int j = 0; j <= 4; j++){//list.at(j)就是每列的值}qDebug() << list;}}file.close();
}

调试输出:

②写文件

/*
头文件请自行加
*/void MainWindow::on_pushButton_write_clicked()
{QString fileName = QFileDialog::getOpenFileName(this, tr("Excel file"), qApp->applicationDirPath (),tr("Files (*.csv)"));QFile file(fileName);QStringList lines;lines << "class,name,age,score,teacher\n" << "3,XiaoDong,12,97,Joy\n" << "4,XiaoYao,12,99,Martin\n";//以只写方式打开,完全重写数据if (file.open(QIODevice::WriteOnly)){for (int i = 0; i < lines.size(); i++){file.write(lines[i].toStdString().c_str());/*写入每一行数据到文件*/}file.close();}
}

写入文件结果:

三、源码

链接:https://pan.baidu.com/s/1ZyXN4xZYKfw2UlBqyfUx1w 
提取码:7vwf

QT 读写CSV文件相关推荐

  1. python pandas 读写 csv 文件

    python pandas 读写 csv 文件 具体看官方文档 https://www.pypandas.cn/docs/user_guide/io.html#csv-文本文件 import pand ...

  2. 使用 Apache Commons CSV 读写 CSV 文件

    有时候,我们需要读写 CSV 文件,在这里给大家分享Apache Commons CSV,读写 CSV 文件非常方便. 具体官方文档请访问Apache Commons CSV. 官方文档已经写得很详细 ...

  3. python读取csv文件的方法-python读写csv文件的方法

    1.爬取豆瓣top250书籍 import requests import json import csv from bs4 import BeautifulSoup books = [] def b ...

  4. python读csv-python读写csv文件

    1用python做数据分析,数据来源一般会有多种格式,而我喜欢以CSV的方式进行存储分析,如果数据本身就是CSV格式的那我可以直接用pandas库自带的方法进行读取即可,但是有时候各种来源的数据不方便 ...

  5. python本地读csv文件_python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  6. 利用JavaCSV API来读写csv文件

    转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/53423121 1 背景 CSV文件的读写其实是有很多方法 ...

  7. python导入文件列行_python读写csv文件并增加行列的实例代码

    python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28: ...

  8. java opencsv_用opencsv文件读写CSV文件

    首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...

  9. python操作csv文件第7行开始的数据_Python教程-Python读写CSV文件

    前言 本教程学习在Python中使用CSV文件.CSV(逗号分隔值)格式是在电子表格和数据库中使用的非常流行的导入和导出格式.Python语言包含该模块,该模块具有用于读取和写入CSV格式的数据的类. ...

最新文章

  1. java.util.concurrent.locks.Condition 源码
  2. 使用阿里云CentOS安装LAMP时,安装PHP扩展需要注意的事情
  3. 整数划分问题(递归法)
  4. Json和XML之间的对比
  5. java 获取oracle mysql sqlserver 链接 connection
  6. odoo10参考系列--网络控制器(Web Controllers)
  7. java服务器发送邮件_服务器通过模板发送邮件java代码
  8. 蹭着 Java 热点出生的 JavaScript 已经 22 岁了!
  9. Unity Plugins的使用方法
  10. 数据表底层的B+树的叶子结点为啥用类似双链表连接起来
  11. 直播带货系统的六大热门功能模块概述
  12. 一个好的学习方法——MAS 学习法
  13. Android学之客户端服务端Socket简单通信
  14. cmd批量文件重命名
  15. JavaScript基础知识总结复习(一)
  16. 使用FlatBuffers序列化数据
  17. 无法安全地用该源进行更新,所以默认禁用该源 E: 无法定位软件包
  18. win10和win7游戏测试软件,绝地求生win7和win10哪个不卡?绝地求生系统要求测试-游侠网...
  19. Netty的断线重连
  20. 教大家电脑重装系统后如何设置硬盘密码

热门文章

  1. IT项目管理计算题【太原理工大学】
  2. linux pps驱动实现gps授时
  3. SLAM基础问题总结(1)
  4. 潇洒郎: 解决联想电脑Y430p 一碰触摸板就蓝屏
  5. zbb20180930 Postman 使用方法详解
  6. androidP Surface到SurfaceFlinger -->surface -> BufferQueue(一)
  7. ATLAS/ICESAT-2 NASA 数据介绍
  8. Bootstrap入门使用
  9. 如何配置Thymeleaf教程,及Thymeleaf的简单使用教程【一篇足够入门】
  10. Selenium元素操作与属性值_Sinno_Song_新浪博客