文档章节

QtableWidget中的表格数据导出成*.csv文件

NoahShine
 NoahShine
发布于 2015/04/01 16:46
字数 225
阅读 120
收藏 1

这里是我使用的一个方法,取出所有单元格数据,保存为用逗号间隔,保存为csv格式,就可以用excel打开。

代码如下:

bool TableToExcle::exportExecl(QTableWidget *tableWidget, QString dirName, QString fileName)
{
    QDir dir(dirName);
    QString fullDirName = QDir::currentPath() + "/output/" + dirName;
    if (!dir.exists())
    {
        dir.mkdir(fullDirName);
    }

    QString dirFile = fullDirName + "/" + fileName + ".csv";
    QFile file(dirFile);
    bool ret = file.open(QIODevice::Truncate | QIODevice::ReadWrite);
    if(!ret)
    {
        qDebug() << "open failure";
        return ret;
    }

    QTextStream stream(&file);
    QString conTents;
    // 写入头
    QHeaderView * header = tableWidget->horizontalHeader() ;
    if (NULL != header)
    {
        for (int i = 0; i < header->count(); i++)
        {
            QTableWidgetItem *item = tableWidget->horizontalHeaderItem(i);
            if (NULL != item)
            {
                conTents += item->text() + ",";
            }
        }
        conTents += "\n";
    }

    // 写内容
    for (int row = 0; row < tableWidget->rowCount(); row++)
    {
        for (int column = 0; column < tableWidget->columnCount(); column++)
        {
            QTableWidgetItem* item = tableWidget->item(row, column);
            if (NULL != item )
            {
                QString str;
                if ((1 == column) || (2 == column))
                {
                    str = QDateTime::fromString(item->text(), "yyyy-MM-dd hh:mm:ss").toString("yyyyMMdd-hhMMss");
                }
                else
                {
                    str = item->text();
                }

                str.replace(","," ");
                conTents += str + ",";
            }
        }
        conTents += "\n";
    }
    stream << conTents;

    file.close();
    return true;
}

保存到csv文件为:


© 著作权归作者所有

NoahShine
粉丝 8
博文 15
码字总数 2788
作品 0
深圳
后端工程师
私信 提问
怎么将QtableWidget中的表格数据导出成.xls文件

QT中怎么将QTableWidget中的表格数据导出

newsyoung
2012/11/21
1K
3
10 款很有创意的 jQuery 表格插件

本文包含 10 款 jQuery 的表格插件,包含表格功能增强、导出、排序以及过滤等功能。 1. Animated table-sort 该插件可让你使用动画的方式对数据进行排序,在线演示: here. 2. BIGrid 该插件...

红薯
2011/08/09
4.6K
4
Bex5开发技巧之MYSQL Incorrect string value

MySQL开发中经常使用到大量的测试数据,初创生成工具最简单就是使用EXCEL。另一方面,诸多的MySQL客户端图形化管理工具都支持把.csv文件导入到MySQL表格中。但是,MySQL表格编码一般都是...

朱先忠老师
2017/02/09
0
0
有什么工具可以将oracle导出的多个csv表格整合成一个csv表格?

现在从oracle数据库中导出了多个csv表格,这多个csv表格之间是有联系的,通过外键联系,现在有什么工具可以将多个存在外键关系的csv表格整合成一个csv表格吗?通过数据库中写sql语句这种方法...

无心1990
2018/06/27
154
2
Excel导出为Lua table工具 - XlsxToLua

Excel表格数据导出为Lua table形式的工具,兼带数据检查功能 希望这个工具能为今后ulua手机游戏项目带来便利,使得策划可以用Excel进行配表,从而享受Excel各种强大的功能,而程序可以直接读...

zhangqi91
2016/03/30
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

怎么升级phpstudy中的php版本

http://www.php.cn/jishu/php/413274.html php官网 下载php版本 https://windows.php.net/

15834278076
5分钟前
0
0
文件已删除但句柄没有释放导致磁盘空间用完

有时候会发现linux文件系统分区已经快满了,但又找不到到底是什么文件占用了磁盘空间,就有可能是已删除的文件的句柄没有释放,还占着空间 检查命令: lsof | grep deleted 如果发现很多del...

果树啊
9分钟前
0
0
mysql5.7 [Err] 1118 - Row size too large (> 8126).

mysql [Err] 1118 - Row size too large (> 8126). 问题 mysql5.7 在执行创建表或者增加字段时,发现row size长度过长,导致出现以下错误。 [Err] 1118 - Row size too large (> 8126). C......

GritTan
11分钟前
0
0
[mybatis]一级缓存与二级缓存配置(mybatis3.4.0)

二级缓存 添加<cache />即可 日志: 2019-05-20 16:28:16.525 [http-nio-8830-exec-2] DEBUG com.asiainfo.mysql.MysqlMapper -Cache Hit Ratio [com.asiainfo.mysql.MysqlMapper]: 0.......

Danni3
21分钟前
0
0
Kafka两级调度实现分布式协调任务分配Golang版

背景 基于Kafka消息队列的两级协调调度架构 Kafka内部为了协调内部的consumer和kafka connector的工作实现了一个复制协议, 主要工作分为两个步骤: 通过worker(consumer或connect)获取自身的...

8小时
28分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部