QT打开*.csv文件存入数组

  • 环境介绍

        系统:Win10 64位

        Qt版本:Qt5.12.7

        编译器:Qt5.12.7  MinGW

  • 说明

        打开*.csv文件并将每列数据各自存入数组

        *.csv文件内容

       

  • 实现步骤

     1.Qt Creator 设计窗口拖拽一个Push Button控件

     2.Push Button控件添加槽函数

     3.实现代码

mainwindow.h

private: 
    QVector<double> x;//存储csv文件第1列数据
    QVector<double> y;//存储csv文件第2列数据

 

mainwindow.cpp

#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QDebug>

Push Button控件槽函数


void MainWindow::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Excel file"),
                                                    "./",
                                                    tr("Files (*.csv)"));
    if(!fileName.isEmpty())
    {
        x.clear(); //x的值
        y.clear();  //y的值

        QFile file(fileName); // 新建QFile对象
        if (!file.open(QFile::ReadOnly | QFile::Text))
        {
            QMessageBox::warning(this, tr("打开csv文件"),
                                 tr("无法读取文件 %1:\n%2.")
                                 .arg(fileName).arg(file.errorString()));
            return ;
        }
        QTextStream in(&file); // 新建文本流对象
        QStringList list;//用于存储逐行数据

        //逐行读取*.csv数据并将每列分别存入x、y数组中
        while(!in.atEnd())
        {
            QString fileLine=in.readLine();//逐行读取数据
            list=fileLine.split(",");//一行中的单元格以,区分
            qDebug()<<"list="<<list;

            double A = (list.at(0)).toDouble();//获取该行第1个单元格内容
            x.append(A);

            double B = (list.at(1)).toDouble();//获取该行第2个单元格内容
            y.append(B);
        }
        qDebug()<<"x="<<x;
        qDebug()<<"y="<<y;  

        file.close();     
    }
  
}

4.输出结果

源码下载地址

https://download.csdn.net/download/mokemg/12337418

参考资料

1.https://blog.csdn.net/mikasoi/article/details/94591794

2.https://blog.csdn.net/mingxia_sui/article/details/7683030

3.https://www.qter.org/portal.php?mod=view&aid=33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值