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 ...
随机推荐
- C语言-06复杂数据类型-02字符串
#include <stdio.h> int main() { //char name[] = {'i', 't', 'c', 'H', 's', 't', '\0'}; char nam ...
- C语言学习总结(一) 基本语法
第一章--C语言的基本概念 丹尼斯 里奇 一.什么是C语言? 定义:是一个面向过程的计算机高级语言--不需要任何运行环境便能运行的程序语言: 发展:目前是C11 (K&R C—> ...
- POJ 2531 Network Saboteur 位运算子集枚举
题目: http://poj.org/problem?id=2531 这个题虽然是个最大割问题,但是分到dfs里了,因为节点数较少.. 我试着位运算枚举了一下,开始超时了,剪了下枝,1079MS过了. ...
- myeclipse使用SVN团队开发
很多时候我们做项目都是已一个团队一起开发,所以我们可以选择SVN开发工具. 一:了解SVN的使用流程: 1).有一个服务端,他可以在上面添加一个项目,添加成员 2).myeclipse需要安装svn的 ...
- Android直接通过ip进行Http请求
在测试环境,如果直接通过ip访问的话,比如:url:123.123.123/user/login.do?username=a&psw=b,这样是不行的,会报protocal协议错误,要写全称, ...
- Quartz2D 备忘 + 学习
Quartz2D Quartz2D是支持iOS和Mac系统的二维绘制引擎,它可以绘制: 绘制图形(图形,线条,圆等) 绘制文字 绘制/生成图片 读取/生成PDF 截图 Quartz2D主要功能就是以画 ...
- SQL Server 2005 版本的操作系统兼容性详细列表
操作系统要求(32 位) 此表显示对于每种 32 位版本的 SQL Server 2005,操作系统是否可以运行其服务器软件. 有关如何在 Windows Server 2008 上安装 SQL Se ...
- 【poj3734】矩阵乘法求解
[题意] 给N个方块排成一列.现在要用红.蓝.绿.黄四种颜色的油漆给这些方块染色.求染成红色方块和染成绿色方块的个数同时为偶数的染色方案的个数,输出对10007取余后的答案.(1<=n<= ...
- POJ - 3264 Balanced Lineup 线段树解RMQ
这个题目是一个典型的RMQ问题,给定一个整数序列,1~N,然后进行Q次询问,每次给定两个整数A,B,(1<=A<=B<=N),求给定的范围内,最大和最小值之差. 解法一:这个是最初的 ...
- [wikioi]奇怪的梦境
http://wikioi.com/problem/2833/ 拓扑排序,居然1A,哈哈. #include <cstdio> #include <iostream> #inc ...