qt写入带有逗号的内容到csv文件

一、问题描述

我想要得到的文件(标记为文件1):

代码生成的文件(标记为文件2):

 代码如下:

void MainWindow::on_exportCsv_clicked()
{
    //获取创建的csv文件名
    QString fileName = QFileDialog::getSaveFileName(this, tr("Excel file"), "" ,tr("Files (*.csv)"));
    if (fileName.isEmpty())
        return;

    //打开.csv文件
    QFile file(fileName);
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug("Cannot open file for writing: %s",qPrintable(file.errorString()));
        return;
    }
    QTextStream out(&file);

    //创建表头
    out << tr("信息,") << tr("数字,") <<",\n";

    //写入内容
    for(int i = 0; i < 1; i++)//写入1行
    {
        out << "test,1,2,3" << "," << i << "\n";
    }
    //关闭文件
    file.close();
}

 

分析:

我们直接用记事本打开上述两个文件:

文件1:

信息,数字,
"test,1,2,3",0

文件2: 

信息,数字,
test,1,2,3,0

大家应该能看到问题所在了吧,qt在写入字符串的时候没有加上双引号,导致信息中的","被识别为csv文件中的分隔符了。

 

解决办法:

解决办法也简单,手动加上即可(注意加上转义字符)!修改后的代码:

    //写入内容
    for(int i = 0; i < 1; i++)//写入1行
    {
        out << "\"" << "test,1,2,3" << "\"" << "," << i << "\n";
    }

 

ref:

https://blog.csdn.net/wwwlyj123321/article/details/112673439

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值