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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • microsoft setup bootstrapper 已停止工作

    microsoft setup bootstrapper 已停止工作安装office2013提示:microsoftsetupbootstrapper已停止工作

    2022年7月20日
    42
  • EJB学习笔记

    EJB学习笔记Chapter01企业级开发背景知识一、什么是企业级程序(EnterpriseApplication)? 具有以下特点的程序: (1)围绕商业目的; (2)分布分层的程序架构。二、企业级应用的架构发展历史Host/Terminal(主机/终端,终端不具备处理能力,数据由主机处理)终端为哑终端,可接受命令,不处理命令优点:安全(不能直接访问)

    2022年9月30日
    4
  • 瀑布式研发流程

    瀑布式研发流程

    2022年6月17日
    29
  • php随机数生成漏洞函数,php随机数生成函数[通俗易懂]

    php随机数生成漏洞函数,php随机数生成函数[通俗易懂]functionrandpw($len=8,$format=’ALL’){$is_abc=$is_numer=0;$password=$tmp=”;switch($format){case’ALL’:$chars=’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789′;break;case’CHAR’:…

    2025年6月10日
    3
  • 【虚拟DOM】浅析 虚拟DOM「建议收藏」

    【虚拟DOM】浅析 虚拟DOM「建议收藏」虚拟DOM作为目前流行的DOM操作思想,被广泛用在react中,这套设计的确在用户体验上带来了显著提升。下面我们来浅析一下这个东西,一步步看下去,希望你能有所收获。设计理念尽管MVVM将页面逻辑实现的核心转移到数据层面的修改上,但是最终数据层反映到页面上View的层的渲染和改变仍是通过对应的指令进行DOM操作来完成的。而且,通常一次ViewModel的变化可能会触发液面上多个指令操……

    2025年7月15日
    3
  • js怎么让指定方法先后顺序_jquery固定table表头

    js怎么让指定方法先后顺序_jquery固定table表头当时遇见这个问题是医院手麻系统大批量数据展示,由于是旧项目系统没有使用到前端的架构只能使用JQ,JS,css完成也谢谢给予我支持的同行们固定首行数据:采用函数的方式进行JQ/***

    2022年8月2日
    11

发表回复

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

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