1

我正在编写一个小应用程序来将数据导出到 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 文件时,我收到了 2 个以下错误警告

无法导出 CSV 文件

无法导出 CSV 文件

这是 CSV 文件中的数据

CSV 文件中的数据

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

您能否解释一下为什么我收到 2 条上述消息以及如何在每列中显示每个字段(ID、用户名和地址)?

提前致谢!

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

4

1 回答 1

2

CSV 是逗号分隔值的缩写。

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

您正在使用TAB字符来分隔列。尝试改用逗号。

\n编辑:另外,您需要在每行的末尾有一个换行符。

于 2013-10-01T17:31:45.613 回答