qt5.7读取csv文件,并将结果存在二维数组中
时间: 2024-10-18 14:06:09 浏览: 32
在Qt5.7中,你可以使用内置的QFile和QTextStream类来读取CSV文件,然后通过QStringList来存储每一行的数据,最后将数据转换成二维数组。这里是一个简单的步骤说明:
首先,你需要包含必要的头文件:
```cpp
#include <QFile>
#include <QTextStream>
#include <QVector>
```
接着创建一个函数来处理CSV文件读取:
```cpp
QVector<QVector<QString>> readCsvFile(const QString& filePath) {
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "Failed to open CSV file: " + file.errorString();
return QVector<QVector<QString>>();
}
QTextStream in(&file);
QStringList headerLine;
QVector<QVector<QString>> data;
// 读取文件头部作为列名
if (in.readLine()) { // 跳过表头
headerLine = in.readLine().split(',');
}
while (!in.atEnd()) {
QStringList line = in.readLine().split(',');
data.append(line);
}
file.close();
// 将QStringList转换为QVector<QString>二维数组
for (int i = 0; i < data.size(); ++i) {
for (int j = 0; j < headerLine.size(); ++j) {
data[i][j] = data[i][j].trimmed(); // 去除首尾空格
}
}
return data;
}
```
这个函数会返回一个二维的QString列表,如果你需要转换成更通用的数据类型(如整数或浮点数),你需要进一步解析字符串。
阅读全文