上传.csv或.txt文件以填充QTableView

时间:2014-12-08 08:39:29

标签: c++ qt qt4

最近我正在研究一个gui应用程序&我想将QTableView的数据保存在.csv或.txt文件中。我使用了指导received during this question,这使我思考如果反过来也是可能的;即,如果可以从.csv或.txt文件填充QTableView。我再次希望继续使用基于模型的设计,例如QTableView而不是基于项目的QTableWidget。

任何代码段或教程文档都会非常有用。

1 个答案:

答案 0 :(得分:4)

考虑一个test.csv文件(它可以由任何文本编辑器生成):

enter image description here

背后的文本流是(如果通过编程生成):

1,2,3,\n4,5,6,\n7,8,9,\n10,11,12,\n13,14,15,

如果在Microsoft Office Excel中打开,它可能如下所示:

CSV values as displayed in Excel


要将此.csv文件读取到QTableView的模型:

QStandardItemModel *model = new QStandardItemModel;

QFile file("test.csv");
if (file.open(QIODevice::ReadOnly)) {

    int lineindex = 0;                     // file line counter
    QTextStream in(&file);                 // read to text stream

    while (!in.atEnd()) {                           

        // read one line from textstream(separated by "\n") 
        QString fileLine = in.readLine();  

        // parse the read line into separate pieces(tokens) with "," as the delimiter
        QStringList lineToken = fileLine.split(",", QString::SkipEmptyParts); 

        // load parsed data to model accordingly
        for (int j = 0; j < lineToken.size(); j++) {
            QString value = lineToken.at(j);
            QStandardItem *item = new QStandardItem(value);
            model->setItem(lineindex, j, item);
        }

        lineindex++;   
    }

    file.close();
}

(您可以操纵代码以满足您的表格格式)


[结果]

CSV values as displayed in QTableView

相关问题