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

QT 读取csv文件「建议收藏」最近项目中提出的需求是从excel表格中导入数据,查阅了很多资料之后,发现直接操作xls格式文件并不容易,之后找到了一个比较好的解决办法,那就是把xls文件另存为csv文件,然后在程序中进行操作。首先大致说明一下这两种格式的区别:      xls文件是Excel电子表格的文件格式,而csv是一种比较通用的文件格式,xls文件只能用Excel才能打开,而csv文件可以用Excel、记事本

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

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

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

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

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.net/162514.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月20日 下午11:16
下一篇 2022年7月20日 下午11:36


相关推荐

  • 影刀自动化工作流RPA采集教程

    影刀自动化工作流RPA采集教程

    2026年3月19日
    4
  • 微信小程序制作表格代码「建议收藏」

    微信小程序制作表格代码「建议收藏」微信小程序中没有专门的表格制作工具,不过使用列表渲染可以实现,下面是我做的表格图片:方法如下:在XXX.wxml中填写下面的代码参数内容{{item.code}}{{item.text}}{{item.type}}

    2022年7月27日
    44
  • 51单片机按键控制步进电机加减速及正反转

    51单片机按键控制步进电机加减速及正反转之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。所用硬件:步进电机及驱动器、STC89C52单片机、直流电源1、硬件连接图注意:上图为共阳极接法,实际连接参考总体线路连接。 驱动器信号端定义:PUL+:脉冲信号输入正。(C…

    2022年6月1日
    41
  • php curl拓展,php curl扩展的使用

    php curl拓展,php curl扩展的使用1 cURL 介绍 cURL 是一个利用 URL 语法规定来传输文件和数据的工具 支持很多协议 如 HTTP FTP TELNET 等 最爽的是 PHP 也支持 cURL 库 在这里我主要用来跨域获取数据或者提交数据 2 php 使用 curl 的流程 1 curl init 初始化 2 curl setopt 设置变量 3 curl exec 执行获取返回值 4 curl close 释放 c

    2026年3月26日
    3
  • navicat 15激活码【注册码】

    navicat 15激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    93
  • vs2010sp1安装未成功_c++2005怎么安装

    vs2010sp1安装未成功_c++2005怎么安装vs2005sp1安装失败是经常的事情。当发生这样的时候后,经过如下操作即可成功安装。第一步:1.单击“开始”,单击“运行”,键入secpol.msc,然后单击“确定”。2.双击“本地安全策略”。3.单击“软件限制策略”。注意:如果未列出软件限制,请右击“软件限制策略”,然后单击“新建策略”。4.在“对象类型”下,双击“强制”。5.单击“除本地管理员以外的所有…

    2022年10月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号