资源简介
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404。经过修改,支持QT的编译和运行。

代码片段和文件信息
#include “exportexcelobject.h“
#include
#include
#include
int ExportExcelobject::export2Excel()
{
if(fieldList.size() <= 0)
{
qDebug() << “ExportExcelobject::export2Excel failed: No fields defined.“;
return -1;
}
QSqlDatabase db = QSqlDatabase::addDatabase(“QODBC“ “excelexport“);
if(!db.isValid())
{
qDebug() << “ExportExcelobject::export2Excel failed: QODBC not supported.“;
return -2;
}
// set the dsn string
QString dsn = QString(“DRIVER={Microsoft Excel Driver (*.xls)};DSN=‘‘;FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\“%1\“;DBQ=%2“).
arg(excelFilePath).arg(excelFilePath);
db.setDatabaseName(dsn);
if(!db.open())
{
qDebug() << “ExportExcelobject::export2Excel failed: Create Excel file failed by DRIVER={Microsoft Excel Driver (*.xls)}.“;
//QSqlDatabase::removeDatabase(“excelexport“);
return -3;
}
QSqlQuery query(db);
//drop the table if it‘s already exists
QString s sSql = QString(“DROP TABLE [%1] (“).arg(sheetName);
query.exec(sSql);
//create the table (sheet in Excel file)
sSql = QString(“CREATE TABLE [%1] (“).arg(sheetName);
for (int i = 0; i < fieldList.size(); i++)
{
s = QString(“[%1] %2“).arg(fieldList.at(i)->sFieldName).arg(fieldList.at(i)->sFieldType);
sSql += s;
if(i < fieldList.size() - 1)
sSql += “ “;
}
sSql += “)“;
query.prepare(sSql);
if(!query.exec())
{
qDebug() << “ExportExcelobject::export2Excel failed: Create Excel sheet failed.“;
//db.close();
//QSqlDatabase::removeDatabase(“excelexport“);
return -4;
}
//add all rows
sSql = QString(“INSERT INTO [%1] (“).arg(sheetName);
for (int i = 0; i < fieldList.size(); i++)
{
sSql += fieldList.at(i)->sFieldName;
if(i < fieldList.size() - 1)
sSql += “ “;
}
sSql += “) VALUES (“;
for (int i = 0; i < fieldList.size(); i++)
{
sSql += QString(“:data%1“).arg(i);
if(i < fieldList.size() - 1)
sSql += “ “;
}
sSql += “)“;
qDebug() << sSql;
int r iRet = 0;
for(r = 0 ; r < tableView->model()->rowCount() ; r++)
{
query.prepare(sSql);
for (int c = 0; c < fieldList.size(); c++)
{
query.bindValue(QString(“:data%1“).arg(c) tableView->model()->data(tableView->model()->index(r fieldList.at(c)->iCol)));
}
if(query.exec())
iRet++;
if(r % 10 == 0)
emit exportedRowCount(r);
}
emit exportedRowCount(r);
return iRet;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 726 2018-08-25 17:05 TableView\.qmake.stash
文件 505638 2018-08-25 17:11 TableView\debug\exportexcelob
文件 503272 2018-08-25 17:12 TableView\debug\main.o
文件 670628 2018-08-25 17:10 TableView\debug\mainwindow.o
文件 4381 2018-08-25 17:11 TableView\debug\moc_exportexcelob
文件 369684 2018-08-25 17:11 TableView\debug\moc_exportexcelob
文件 4176 2018-08-25 17:11 TableView\debug\moc_mainwindow.cpp
文件 329107 2018-08-25 17:11 TableView\debug\moc_mainwindow.o
文件 2822 2018-08-25 17:11 TableView\debug\moc_mytestmodel.cpp
文件 387833 2018-08-25 17:11 TableView\debug\moc_mytestmodel.o
文件 9895 2018-08-25 17:11 TableView\debug\moc_predefs.h
文件 385053 2018-08-25 17:11 TableView\debug\mytestmodel.o
文件 2913033 2018-08-25 17:12 TableView\debug\TestTableView.exe
文件 2798 2010-02-23 12:03 TableView\exportexcelob
文件 2971 2010-02-23 12:01 TableView\exportexcelob
文件 183 2018-08-25 17:12 TableView\main.cpp
文件 2093 2010-02-23 15:31 TableView\mainwindow.cpp
文件 572 2010-02-23 13:32 TableView\mainwindow.h
文件 2262 2010-02-23 13:32 TableView\mainwindow.ui
文件 29438 2018-08-25 17:10 TableView\Makefile
文件 74516 2018-08-25 17:10 TableView\Makefile.Debug
文件 74664 2018-08-25 17:10 TableView\Makefile.Release
文件 17892 2010-01-12 15:53 TableView\mytableview.cpp
文件 5400 2010-01-11 17:01 TableView\mytableview.h
文件 1147 2018-08-25 17:10 TableView\mytestmodel.cpp
文件 481 2010-01-09 17:57 TableView\mytestmodel.h
文件 478 2018-08-25 17:10 TableView\TestTableView.pro
文件 24163 2018-08-25 17:09 TableView\TestTableView.pro.user
文件 4408 2018-08-25 17:10 TableView\ui_mainwindow.h
目录 0 2018-08-25 17:12 TableView\debug
............此处省略5个文件信息
相关资源
- 酒店管理系统基于Qt Creator5)
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
评论
共有 条评论