首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将QTable导出为.csv?

如何将QTable导出为.csv?
EN

Stack Overflow用户
提问于 2020-11-19 20:14:36
回答 1查看 214关注 0票数 0

如何将值从QTableWidget导出到.csv文件或Excel文件?

程序应从PLC收集三个变量的值。此PLC属于我的公司,具有执行此采集的功能。

将项目插入到QTableWidget .cpp:

代码语言:javascript
复制
void MainWindow::on_pushInsert_clicked()
{
/*
the program already is connected to plc, 
so I just have to choose the address inside of the plc. 
*/
    WORD wAddress = 50001;
    WORD value1 = 0;
    WORD value2 = 0;
    WORD value3 = 0;
    CollectVariables(wAddress,wValue);
    int ID = 0;
    string Name = "";
    int Age = 0;
    QTableWidget *table = ui->tableWidget;
    for(i=0;i<10; i++) {
        //id
        CollectVariables(wAddress+i, value1);
        table->setItem(i, 0, new QTableWidgetItem(value1));

        //name
        CollectVariables(wAddress+10+i, value2);
        table->setItem(i, 1, new QTableWidgetItem(value2));

        //age
        CollectVariables(wAddress+20+i, value3);
        table->setItem(i, 2, new QTableWidgetItem(value3));
        tabela->selectRow(i);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 20:30:58

我用来将QTableWidget“导出”到.csv文件的方法(我不能导出do excel)是在向表中插入条目时将表中每个空间的值存储到一个数组中。

QFile用于创建.csv文件,QTextStream用于在该文件上插入值。

为了改进代码,我创建了一个按钮来选择保存此.csv文件的目录。

选择目录.cpp:

代码语言:javascript
复制
void MainWindow::on_pushSelectDir_clicked()
{
    QFileDialog directory;
    ui->lineEditDir->setText(directory.getSaveFileName(this,"Choose an directory"));
    dir_name = ui->lineEditDir->text();
}

创建.csv文件.cpp:

代码语言:javascript
复制
void MainWindow::on_pushExportCSV_clicked()
{
    QFile data(dir_name+".csv");
    if (data.open(QFile::WriteOnly | QIODevice::Append)) {
     }
    QTextStream output(&data);
    output <<"ID"<<","<<"Name"<<","<<"Age"<< '\n';
    for(i=0;i<10; i++) {   
        output << ID[i] <<","<< Name[i] <<","<< Age[i] << '\n';
    }
    data.close();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64911452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档