文档章节

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

TomShine
 TomShine
发布于 2015/04/01 16:46
字数 225
阅读 1.3K
收藏 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文件为:


© 著作权归作者所有

上一篇: MWeb快捷键
下一篇: Qt 内存管理机制
TomShine
粉丝 8
博文 14
码字总数 2689
作品 0
深圳
后端工程师
私信 提问
加载中

评论(0)

[ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

如果你想让你开发的PyQt5工具展示的数据显得整齐、美观、好看,显得符合你的气质,可以考虑使用QTableWidget控件。之前一直使用的是textBrowser文本框控件,数据展示还是不太美观。其中QTabl...

osc_88a08cel
2019/11/16
8
0
Qt编写数据导出到Excel及Pdf和打印数据

一、前言 用Qt开发已经九年了,期间用Qt做过不少的项目,在各种项目中有个功能很常用,尤其是涉及到数据记录存储的项目,那就是需要对查询的数据进行导出到Excel,或者导出到Pdf文件,或者直...

osc_isezqdgg
2019/09/18
5
0
怎么将QtableWidget中的表格数据导出成.xls文件

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

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

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

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

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

朱先忠老师
2017/02/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么是 PL/SQL? 怎么用?

PL/SQL 1.什么是PL/SQL? PL/SQL(Procedure Language/SQL)是Oracle对sql语言的过程化扩展,指在SQL命令语言中增加了过程处理语句(如分支/条件、循环、变量、类型等),使SQL语言具有过程处...

煌sir
19分钟前
15
0
dayjs时间处理库基本使用

Day.js 是一个轻量的 JavaScript 时间日期处理库,与 Moment.js 的 API 设计保持一致。 本文只介绍了一些常用操作,关于国际化、插件、自定义等高级内容详见官方文档。 其主要特性如下: 与 ...

whoru
22分钟前
11
0
Delphi xe使用TJSONObject解析JSON数据

在Delphi 10 Seattle中重写 “ 使用TJSONObject分析JSON数据 ”。 由于不推荐使用某些方法,因此已对其进行了更改。 要使用TJSONObject,请添加“ System.JSON”。 uses System.JSON; 使用T...

simpower
31分钟前
11
0
树莓派使用 OLED 屏显示图片及文字

树莓派默认是不带显示屏的,如果想要查看系统的一些信息,需要使用电脑登录到树莓派,或者通过 HDMI 连接外接显示器查看。这样做总是有点麻烦,我们可以通过外接一个 OLED 屏来显示一些关键参...

良许Linux
34分钟前
7
0
BIO学习

1. BIO介绍 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程...

steven-黄笑笑
36分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部