QT 读写CSV文件
目录
一、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文件相关推荐
- python pandas 读写 csv 文件
python pandas 读写 csv 文件 具体看官方文档 https://www.pypandas.cn/docs/user_guide/io.html#csv-文本文件 import pand ...
- 使用 Apache Commons CSV 读写 CSV 文件
有时候,我们需要读写 CSV 文件,在这里给大家分享Apache Commons CSV,读写 CSV 文件非常方便. 具体官方文档请访问Apache Commons CSV. 官方文档已经写得很详细 ...
- python读取csv文件的方法-python读写csv文件的方法
1.爬取豆瓣top250书籍 import requests import json import csv from bs4 import BeautifulSoup books = [] def b ...
- python读csv-python读写csv文件
1用python做数据分析,数据来源一般会有多种格式,而我喜欢以CSV的方式进行存储分析,如果数据本身就是CSV格式的那我可以直接用pandas库自带的方法进行读取即可,但是有时候各种来源的数据不方便 ...
- python本地读csv文件_python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- 利用JavaCSV API来读写csv文件
转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/53423121 1 背景 CSV文件的读写其实是有很多方法 ...
- python导入文件列行_python读写csv文件并增加行列的实例代码
python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28: ...
- java opencsv_用opencsv文件读写CSV文件
首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...
- python操作csv文件第7行开始的数据_Python教程-Python读写CSV文件
前言 本教程学习在Python中使用CSV文件.CSV(逗号分隔值)格式是在电子表格和数据库中使用的非常流行的导入和导出格式.Python语言包含该模块,该模块具有用于读取和写入CSV格式的数据的类. ...
最新文章
- java.util.concurrent.locks.Condition 源码
- 使用阿里云CentOS安装LAMP时,安装PHP扩展需要注意的事情
- 整数划分问题(递归法)
- Json和XML之间的对比
- java 获取oracle mysql sqlserver 链接 connection
- odoo10参考系列--网络控制器(Web Controllers)
- java服务器发送邮件_服务器通过模板发送邮件java代码
- 蹭着 Java 热点出生的 JavaScript 已经 22 岁了!
- Unity Plugins的使用方法
- 数据表底层的B+树的叶子结点为啥用类似双链表连接起来
- 直播带货系统的六大热门功能模块概述
- 一个好的学习方法——MAS 学习法
- Android学之客户端服务端Socket简单通信
- cmd批量文件重命名
- JavaScript基础知识总结复习(一)
- 使用FlatBuffers序列化数据
- 无法安全地用该源进行更新,所以默认禁用该源 E: 无法定位软件包
- win10和win7游戏测试软件,绝地求生win7和win10哪个不卡?绝地求生系统要求测试-游侠网...
- Netty的断线重连
- 教大家电脑重装系统后如何设置硬盘密码
热门文章
- IT项目管理计算题【太原理工大学】
- linux pps驱动实现gps授时
- SLAM基础问题总结(1)
- 潇洒郎: 解决联想电脑Y430p 一碰触摸板就蓝屏
- zbb20180930 Postman 使用方法详解
- androidP Surface到SurfaceFlinger -->surface -> BufferQueue(一)
- ATLAS/ICESAT-2 NASA 数据介绍
- Bootstrap入门使用
- 如何配置Thymeleaf教程,及Thymeleaf的简单使用教程【一篇足够入门】
- Selenium元素操作与属性值_Sinno_Song_新浪博客