QTableWidget 导出到表格
跳槽到了新的公司。開始苦逼的出差现场开发。接触到了新的应用。有非常多应用须要将Table导出成表格,能够把table导出成csv格式的文件。
跟大伙分享一下;
lass TableToExcle : public QDialog
{
Q_OBJECT public:
TableToExcle(QWidget *parent = 0, Qt::WFlags flags = 0);
~TableToExcle(); private:
Ui::TableToExcleClass ui;
private slots:
void addRowSlot();
void delRowSlot();
void exportSlot();
};
TableToExcle::TableToExcle(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
ui.setupUi(this);
ui.m_pTable->setColumnCount(4);
QTableWidgetItem * item = new QTableWidgetItem("0");
ui.m_pTable->setHorizontalHeaderItem ( 0, item );
item = new QTableWidgetItem("1");
ui.m_pTable->setHorizontalHeaderItem ( 1, item );
item = new QTableWidgetItem("2");
ui.m_pTable->setHorizontalHeaderItem ( 2, item );
item = new QTableWidgetItem("3");
ui.m_pTable->setHorizontalHeaderItem ( 3, item );
ui.m_pTable->setSelectionBehavior(QAbstractItemView::SelectRows);
connect(ui.m_pAddBtn,SIGNAL(clicked()),this,SLOT(addRowSlot()));
connect(ui.m_pDelBtn,SIGNAL(clicked()),this,SLOT(delRowSlot()));
connect(ui.m_pExportBtn,SIGNAL(clicked()),this,SLOT(exportSlot()));
} TableToExcle::~TableToExcle()
{ } void TableToExcle::addRowSlot()
{
ui.m_pTable->insertRow(ui.m_pTable->rowCount()); } void TableToExcle::delRowSlot()
{
int index = ui.m_pTable->currentRow ();
if (index > -1)
{
ui.m_pTable->removeRow(index);
}
} void TableToExcle::exportSlot()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File")," ",tr("file (*.csv)"));
if (!fileName.isEmpty())
{
QFile file(fileName);
bool ret = file.open( QIODevice::Truncate | QIODevice::WriteOnly);
if(!ret)
return; QTextStream stream(&file);
QString conTents;
QHeaderView * header = ui.m_pTable->horizontalHeader() ;
if (header)
{
for ( int i = 0; i < header->count(); i++ )
{
QTableWidgetItem *item = ui.m_pTable->horizontalHeaderItem(i);
if (!item)
{
continue;
}
conTents += item->text() + ",";
}
conTents += "\n";
} for ( int i = 0 ; i < ui.m_pTable->rowCount(); i++ )
{
for ( int j = 0; j < ui.m_pTable->columnCount(); j++ )
{ QTableWidgetItem* item = ui.m_pTable->item(i, j);
if ( !item )
continue;
QString str = item->text();
str.replace(","," ");
conTents += str + ",";
}
conTents += "\n";
}
stream << conTents;
file.close();
}
if( QMessageBox::Yes == QMessageBox::information(0,QObject::tr("文件导出"),QString("文件导出成功,是否打开该文件?"),QMessageBox::Yes,QMessageBox::No) )
{ QSettings settings("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Office",QSettings::NativeFormat);
QString szDefault, szPath;
bool bSuccess;
szPath = settings.value("12.0/Excel/InstallRoot/Path").toString();
if (szPath.isEmpty())
szPath = settings.value("11.0/Excel/InstallRoot/Path").toString();
if (szPath.isEmpty())
szPath = settings.value("10.0/Excel/InstallRoot/Path").toString();
if (szPath.isEmpty())
szPath = settings.value("9.0/Excel/InstallRoot/Path").toString();
if (szPath.isEmpty())
szPath = settings.value("14.0/Excel/InstallRoot/Path").toString(); if (szPath.isEmpty())
{
QMessageBox::information(0, "提示", "系统没有安装Office, 不能查看故障报告,请您先安装Microsoft Office.");
return;
} QProcess * proce = new QProcess;
QString szExcelexe = szPath + "excel.exe";
QString szopen = "/safe";
QString szDoc = fileName;
QStringList list;
list<<szDoc;
if( proce )
{
proce->start(szExcelexe,list);
proce->waitForStarted(5000); //须要等待完毕启动
}<pre name="code" class="cpp"> delete proce;
QTableWidget 导出到表格的更多相关文章
- QTableWidget 导出到csv表格
跳槽到了新的公司,开始苦逼的出差现场开发,接触到了新的应用.有很多应用需要将Table导出成表格,可以把table导出成csv格式的文件.跟大伙分享一下: lass TableToExcle : pu ...
- PHP导入导出excel表格图片(转)
写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...
- java中使用jxl导出Excel表格详细通用步骤
该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...
- ITextSharp导出PDF表格和图片(C#)
文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接 分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3g ...
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- php:PHPExcel导出excel表格
一.动态生成的内容如何能当成文件来下载呢? 方法:1.将Content-Type设置成application/octet-stream就可以了,即[header('Content-Type: appl ...
- java导出excel表格
java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...
- PowerDesiger 15逆向生成工程E-R图及导出word表格
应用环境:win8(64位)+oracle10g(32位)服务端+PowerDesigner15 需求:oracle数据库中的表结构是web工程框架hibernate 自动生成,现需要将数据库中已有的 ...
- Jquery ajax请求导出Excel表格
直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; data ...
随机推荐
- 开源CMS赏析
国内CMS产品有很多,开源的产品也不少,大概的可分为以下几类: .NET开源产品:We7CMS: PHP开源产品:Dede CMS.PHP CMS和帝国CMS: ASP开源产品:动易SiteFacto ...
- uboot start.S分析
一.概述 1.本文综述及特色 阅读uboot,start.S是第一个源程序文件,主要完成初始化看门狗.定时器.重定位(拷贝代码段到内存中).初始化堆栈.跳转到第二阶段等工作. 网上关于这些内容的 ...
- CAGradientLayer的一些属性解析-b
CAGradientLayer的一些属性解析 iOS中Layer的坐标系统: 效果: - (void)viewDidLoad { [super viewDidLoad]; CAGradientLaye ...
- centos6.5搭建vpn服务器
1 安装ppp yum install -y ppp 2 安装pptpd yum install pptpd // rpm -Uvh http://poptop.sourceforge.net ...
- #include<filename.h> 与 #include“filename.h”
#include<filename.h>:从标准库路径去寻找该文件,对于VC来说,应该还包括VC环境设置选项中的包含目录以及工程属性中指定的目录. #include“filename.h” ...
- 矩阵分解(rank decomposition)文章代码汇总
矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...
- discuz论坛很给力
11.10:老彭在搭建好论坛. 11.17: 主网站导航中加入“论坛” 11.20: 使用“T客在线”的版本将论坛全新改版. 新版论坛非常大气,让网站增色不少.
- 【HDOJ】3047 Zjnu Stadium
带权并查集. /* 3047 */ #include <iostream> #include <string> #include <map> #include &l ...
- -_-#Tiny Raytracer
http://www.gabrielgambetta.com/tiny_raytracer.htmlhttp://gabrielgambetta.com/tiny_raytracer_full.js
- java.lang.Comparable接口
转自:http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 接口 作者: zccst java.lang.Co ...