QTabelView导出文本到Excel

int saveEx(QStandardItemModel* model, QTableView *tabelview)
{
    //![1]文件
    QString fileName = QFileDialog::getSaveFileName(this, tr("保存文件"), "./", "*.csv");//文件对话框
    QFile file(fileName);
    if(file.open(QIODevice::ReadWrite) == false)//检验文件能否成功打开
    {
        qDebug() << "open failure";
        return -1;
    }
    //![2]初始化
    QTextStream stream(&file);//写入文件的Text流
    QString string_temp;//缓存变量
    //![3]写头
    QHeaderView * header = tabelview->horizontalHeader();//tabelview的表头
    if(nullptr != header)//tabelview表头不为空
    {
        for (int i = 0; i < header->count(); i++)//遍历tabelview的表头所有项
        {
            QStandardItem* item = model->horizontalHeaderItem(i);//tabelview的第i个表头项
            if(nullptr != item)//这里检验item对象是否存在,而不是检验是否为如""的空格子
                string_temp += item->text() + ",";//追加到缓存变量,","可分离单元格
            else//表头没遍历完但是item对象不存在,说明这一格没有实例,为了不影响后续位置加","分离单元格
                string_temp += ",";//追加到缓存变量,","可分离单元格
        }
        string_temp += "\n";//头写完,追加到换行符到缓存变量
    }
    //![4]写内容
    for(int rows = 0; rows < model->rowCount(); rows++)//遍历tabelview表栏所有行
    {
        for(int cols = 0; cols < model->columnCount(); cols++)//遍历tabelview表栏所有列
        {
            QStandardItem* item = model->item(rows, cols);//tabelview的row行column列表栏项
            if(nullptr != item)//这里检验item对象是否存在,而不是检验是否为如""的空格子
                string_temp += item->text() + ",";//追加到缓存变量,","可分离单元格
            else//表格没遍历完但是item对象不存在,说明这一格没有实例,为了不影响后续位置加","分离单元格
                string_temp += ",";//追加到缓存变量,","可分离单元格
        }
        string_temp += "\n";//表栏所有项写完,追加到换行符到缓存变量
    }
    //![5]写入文件
    stream << string_temp;//写到Text流,以写入文件
    //![6]结束
    file.close();//关闭文件
    QMessageBox::information(this, "提示", "文件保存成功");
    return 0;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值