首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >QT 读取csv文件「建议收藏」

QT 读取csv文件「建议收藏」

作者头像
全栈程序员站长
发布2022-09-13 17:36:13
发布2022-09-13 17:36:13
4.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

最近项目中提出的需求是从excel表格中导入数据,查阅了很多资料之后,发现直接操作xls格式文件并不容易,之后找到了一个比较好的解决办法,那就是把xls文件另存为csv文件,然后在程序中进行操作。首先大致说明一下这两种格式的区别:

xls文件是Excel电子表格的文件格式,而csv是一种比较通用的文件格式,xls文件只能用Excel才能打开,而csv文件可以用Excel、记事本、文本编辑器打开。

好了,说明了它们的不同之后我们就说一下大体思路,读取csv文件中的数据,就是先以换行符进行断开,这样就能获取到每行的数据,然后再以半角的逗号断开,这样就能获取到具体每个单元格中的数据,话不多说,上代码:

代码语言:javascript
代码运行次数:0
运行
复制
QFileDialog* fd = new QFileDialog(this);//创建打开文件对话框  
QString fileName = fd->getOpenFileName(this,tr("Open File"),"/home",tr("Excel(*.csv)"));  
if(fileName == "")  
      return;  
QDir dir = QDir::current();  
QFile file(dir.filePath(fileName));  
if(!file.open(QIODevice::ReadOnly))  
     qDebug()<<"OPEN FILE FAILED";  
QTextStream * out = new QTextStream(&file);//文本流  
QStringList tempOption = out->readAll().split("\n");//每行以\n区分  
for(int i = 0 ; i < tempOption.count() ; i++)  
{  
     QStringList tempbar = tempOption.at(i).split(",");//一行中的单元格以,区分  
     ...//省略具体对数据的操作  
}  
file.close();//操作完成后记得关闭文件  

//打开多个文件

QStringList pathList=QFileDialog::getOpenFileNames(this, QStringLiteral(“选择文件”), “../datas”,tr(“(*).csv”)); QStringList::Iterator it = pathList.begin(); while (it != pathList.end()) { ProcessAndSave(*it); ++it; }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162514.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档