将数据导出到Qt中的CSV文件时出错

时间:2013-10-01 17:24:25

标签: qt csv

我正在编写一个小应用程序来将数据导出到CSV文件。这是我使用的代码

QString fileName = QFileDialog::getSaveFileName(
    this,
    tr("Save As"),
    "",
    tr("Comma Separated Values (*.csv);;All Files (*.*)"));

if (fileName.isEmpty()) return;
else {
    QFile file(fileName);
    if (!file.open(QIODevice::WriteOnly)) {
        QMessageBox::information(this, tr("Unable to open file"), file.errorString());
        return;
    }

    // Write content to *.csv file
    QTextStream stream(&file);

    // Print header
    stream << "ID\tUsername\tAddress";

    stream.flush();
    file.close();
}

然后我运行应用程序,出现一个对话框以保存CSV文件。但是当我打开刚刚保存的CSV文件时,我收到了以下错误警告

Cannot export CSV file

Cannot export CSV file

这是CSV文件中的数据

The data in CSV file

如您所见,我打算在3列中显示3个字段,例如 ID 用户名地址,但所有数据都在列。

你能解释一下为什么我收到2条以上的信息吗?如何在每一栏中显示每个字段(ID,用户名和地址)?

提前致谢!

P / S: 目前我使用的是Microsoft Excel 2013.

1 个答案:

答案 0 :(得分:2)

CSV是逗号分隔值的缩写。

 // Print header
stream << "ID\tUsername\tAddress";

您使用TAB个字符来分隔列。请尝试使用逗号。

编辑:此外,您需要在每行末尾添加换行符\n