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 ...
随机推荐
- IT从业人员必看的十几个论坛
IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多,往哪里去,新浪论坛,网易是经常去的,人多啊,好几十万,去了以后才发现没有意思,没有共同的语言,于是逛专 ...
- POJ 2531 Network Saboteur 位运算子集枚举
题目: http://poj.org/problem?id=2531 这个题虽然是个最大割问题,但是分到dfs里了,因为节点数较少.. 我试着位运算枚举了一下,开始超时了,剪了下枝,1079MS过了. ...
- Dom学习笔记-(一)
一.概述 DOM(文档对象模型)是针对HTML和XML文档的一个API,其脱胎于DHTML. DOM可以将任意HTML和XML文档描绘成一个由多层节点构成的结构. 每一个文档包含一个根节点-文档节点, ...
- Ubuntu/Linux下7款轻量级编辑器 (转)
From http://www.feiyan.info/39.html 在Windows卧铺使用Zend Studio或者EditPlus写PHP,Zend Studio适合大项目,EditPlus配 ...
- front-end
http://info.1688.com/detail/1139720782.html http://segmentfault.com/q/1010000000136513 http://h5apps ...
- 【POJ3169 】Layout (认真的做差分约束)
Layout Description Like everyone else, cows like to stand close to their friends when queuing for ...
- 【Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发】
原文:[Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发] 官方地址:https://developer.xamarin.com/guides/cross-platform/adv ...
- user模式下编译android 代码被proguard优化导致类和变量丢失
在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了.所以,在JNI应用中该慎用progurad啊. 解决办法: 1.在An ...
- BroadCastReceiver中耗时操作导致ANR
現象:廣播接收器中進行耗時的I/O操作導致ANR. 查資料發現每次广播到来时 , 会重新创建 BroadcastReceiver 对象 , 并且调用 onReceive() 方法 , 执行完以后 该对 ...
- 17.1.4 Replication and Binary Logging Options and Variables 复制和Binary logging 选项和变量
17.1.4 Replication and Binary Logging Options and Variables 复制和Binary logging 选项和变量 下面的章节包含信息关于mysql ...