QT 写入csv
时间: 2023-08-15 13:17:22 浏览: 132
要在 Qt 中写入 CSV 文件,可以使用 QIODevice 类和 QTextStream 类的组合。以下是一个示例代码:
```cpp
#include <QFile>
#include <QTextStream>
void writeCSV(const QString& fileName, const QStringList& headers, const QList<QStringList>& data)
{
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
return;
}
QTextStream out(&file);
out.setCodec("UTF-8");
// 写入表头
for (int i = 0; i < headers.size(); ++i) {
out << headers.at(i);
if (i != headers.size() - 1) {
out << ",";
}
}
out << "\n";
// 写入数据
for (const auto& row : data) {
for (int i = 0; i < row.size(); ++i) {
out << row.at(i);
if (i != row.size() - 1) {
out << ",";
}
}
out << "\n";
}
file.close();
}
```
在这个示例中,`writeCSV` 函数接受三个参数:文件名、表头和数据。函数首先尝试打开文件,然后创建一个 QTextStream,用于写入文件。接下来,函数遍历表头并将其写入文件中,然后遍历每行数据并将其写入文件中。最后,函数关闭文件。
使用示例:
```cpp
QStringList headers = { "Name", "Age", "Gender" };
QList<QStringList> data = {
{ "Alice", "25", "Female" },
{ "Bob", "30", "Male" },
{ "Charlie", "40", "Male" }
};
writeCSV("mydata.csv", headers, data);
```
这将在项目根目录下创建一个名为 `mydata.csv` 的文件,并在其中写入表头和数据。
阅读全文