资源简介
QT读取excel文件 并可以修改 还有sqlite数据库 实现了一些 打开文件 保存 等基本功能(打印没实现)
![](http://www.nz998.com/pic/39068.jpg)
代码片段和文件信息
#include “excelengine.h“
#include “qt_windows.h“
ExcelEngine::ExcelEngine()
{
pExcel = NULL;
pWorkbooks = NULL;
pWorkbook = NULL;
pWorksheet = NULL;
sXlsFile = ““;
nRowCount = 0;
nColumnCount = 0;
nStartRow = 0;
nStartColumn = 0;
bIsOpen = false;
bIsValid = false;
HRESULT r = OleInitialize(NULL);
if (r != S_OK && r != S_FALSE)
{
qDebug(“Qt: Could not initialize OLE (error %x)“ (unsigned int)r);
}
}
ExcelEngine::ExcelEngine(QString xlsFile)
{
pExcel = NULL;
pWorkbooks = NULL;
pWorkbook = NULL;
pWorksheet = NULL;
sXlsFile = xlsFile;
nRowCount = 0;
nColumnCount = 0;
nStartRow = 0;
nStartColumn = 0;
bIsOpen = false;
bIsValid = false;
HRESULT r = OleInitialize(0);
if (r != S_OK && r != S_FALSE)
{
qDebug(“Qt: Could not initialize OLE (error %x)“ (unsigned int)r);
}
}
ExcelEngine::~ExcelEngine()
{
if ( bIsOpen )
{
//析构前,先保存数据,然后关闭workbook
Close();
}
OleUninitialize();
}
/**
*@brief 打开sXlsFile指定的excel报表
*@return true : 打开成功
* false: 打开失败
*/
bool ExcelEngine::Open(UINT nSheet bool visible)
{
if ( bIsOpen )
{
//return bIsOpen;
Close();
}
if ( NULL == pExcel )
{
this->pExcel = new QAxobject(“Excel.Application“this);
if ( pExcel )
{
bIsValid = true;
}
else
{
bIsValid = false;
bIsOpen = false;
return bIsOpen;
}
bIsVisible = false;
pExcel->dynamicCall(“SetVisible(bool)“ bIsVisible);//是否显示Excel
}
if ( !bIsValid )
{
bIsOpen = false;
return bIsOpen;
}
if ( sXlsFile.isEmpty() )
{
bIsOpen = false;
return bIsOpen;
}
bool ok = CreateXlsFile(sXlsFile);
if ( !ok )
{
bIsOpen = false;
return bIsOpen;
}
nCurrSheet = nSheet;
//bIsVisible = visible;
pWorkbooks = pExcel->querySubobject(“WorkBooks“); //获取工作簿
pWorkbook = pWorkbooks->querySubobject(“Open(QString QVariant)“sXlsFileQVariant(0)); //打开xls对应的工作簿
pWorksheet = pWorkbook->querySubobject(“WorkSheets(int)“ nCurrSheet);//打开第一个sheet
//至此已打开,开始获取相应属性
QAxobject *usedrange = pWorksheet->querySubobject(“UsedRange“);//获取该sheet的使用范围对象
QAxobject *rows = usedrange->querySubobject(“Rows“);
QAxobject *columns = usedrange->querySubobject(“Columns“);
qDebug()<<“rows“< qDebug()<<“columns“<
//因为excel可以从任意行列填数据而不一定是从00开始,因此要获取首行列下标
nStartRow = usedrange->property(“Row“).toInt(); //第一行的起始位置
nStartColumn = usedrange->property(“Column“).toInt(); //第一列的起始位置
nRowCount = rows->property(“Count“).toInt(); //获取行数
nColumnCount = columns->p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-09-19 08:41 Qxcel_sqlite\
文件 1772 2012-09-04 13:30 Qxcel_sqlite\close-file.png
文件 10201 2012-09-19 11:28 Qxcel_sqlite\excelengine.cpp
文件 2438 2012-09-19 11:32 Qxcel_sqlite\excelengine.h
文件 493 2012-09-20 14:27 Qxcel_sqlite\jiaoduyi.pro
文件 7988 2012-09-24 15:50 Qxcel_sqlite\jiaoduyi.pro.user
文件 1344 2012-09-19 16:11 Qxcel_sqlite\judgeFileAndDeal.cpp
文件 672 2012-09-19 15:01 Qxcel_sqlite\judgeFileAndDeal.h
文件 377 2012-09-20 17:31 Qxcel_sqlite\main.cpp
文件 10578 2012-09-24 08:44 Qxcel_sqlite\mywindow.cpp
文件 2038 2012-09-19 15:49 Qxcel_sqlite\mywindow.h
文件 1145 2012-09-10 15:04 Qxcel_sqlite\mywindow.ui
文件 1117 2012-09-04 13:29 Qxcel_sqlite\open-file.png
文件 131 2012-09-04 15:28 Qxcel_sqlite\source.qrc
相关资源
- 在线词典项目v1.1.zip
- 通过SqlBulkCopy对象从Excel中批量导入到
- QT使用POST传递数据
- 易语言Access数据库中的数据导出到E
- 中文SQLite参考书册
- delphi调用wxsqlite3
- sqlite3 64位动态库包含 .lib文件
- mysql5.7驱动.rar
- Qt实现的一个简单的学生学籍管理系统
- 实验十 使用SQLite数据库存储数据
- 中文版 Excel 2016 公式与函数应用宝典
- 2019最新银行卡bin表单、包含excel表,
- Inside SQLite(SQLite技术内幕) 原版+个
- 一个较完整的Qt用户登录界面设计
- EXCEL服务器9.2.335 旗舰版无限用户 ,附
- Delphi实现excel和SQLserver数据的导入导出
- QT用户登录界面源代码
-
AccessDataba
seEngine_2016x64 - ViewPager+Fragment+ListView+sqlite案例
- StudentInformationManagementSystem.zip
- SQLiteSpy工具
- 微信数据库查看工具sqlcipher
- 简单的超市收银系统,QT5.3+Ubuntu14.0
- 银行卡bin数据(Excel+MySQL)-2020最新最
- Sqlite存储图片
-
Qt 动态解析xm
l文件 左侧显示在QTr - 全国省、市、县、街道四个表数据e
- SQLite数据库的增删改查demo
- 大一大二 基于qt的学生管理系统
- QT实现车辆管理系统,数据库使用SQ
评论
共有 条评论