我正在创建一个名为getExcelFile()的函数来获取excel文件的内容并将其存储到结构数组中。首先,我想读取csv文件的一行并使用分隔符。然后我想将内容添加到QStringList并使用for循环迭代结构数组并将内容添加到其中。一切都工作得很好,除了它说的datalist.append((line.split(',')));非常感谢帮助!
void Widget::getExcelFile(){
//Name of the Qfile object.
//filename is the directory of the file once it has been selected in prompt
QFile thefile(filename);
//QStringList named datalist.
QStringList datalist;
//If the file is successfully open
if (thefile.open(QIODevice::ReadOnly | QIODevice::Text)){
qDebug() << "File opened successfully";
while (!thefile.atEnd()){
QByteArray line = thefile.readLine();
datalist.append((line.split(',')));
}
}
qDebug() << datalist;
ui->textEdit->setPlainText(fileContent);
}
答案 0 :(得分:0)
CSV文件比阅读起来有点棘手。
您的特定文件可能包含简单记录,但Excel会创建具有转义的CSV,缺少值等等。
如果您使用我的CSV解析器,则可以查询它的CSV文件结构(哪些列在那里以及它们的类型)和值。解析器没有做任何非常复杂的事情,但它处理分配内存和打破字段并将它们分配给列的混乱。
如果要填写简单的C结构,则抛弃任何不匹配的CSV对象。如果一个对象匹配,那么调用getfield就是一个简单的循环。然后,您销毁CSV对象。