资源简介
QT读取excel文件 并可以修改 还有sqlite数据库 实现了一些 打开文件 保存 等基本功能(打印没实现)
代码片段和文件信息
#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
相关资源
- 嵌入式数据库Sqlite3比较详细介绍 pp
- Oracle数据库导出数据到Excel批处理
- qt sqlite操作
- Qt从数据库中提取数据给变量赋值
- ubuntu qt提示QMYSQL driver not loaded 的解决
- QT读取access是数据库表名中文乱码
- sqlite记住密码.docx
- zw_u013134025-10223680-sql和excel.zip
- qtSql.rar
- 2015年全国行政区划数据excel和sql
- SQLite学习手册-中文全本.pdf
- 数据库转换软件MYSQL MSSQL ACCESS SQLITE
- QNetWork网络请求模块封装
- 牛津英语词典翻译excel、sql版本非pd
- sqlite3.7.7.1 x64位的lib支持加密、集成
- 基于QT(+MySQL)的学生信息管理系统的
- Springboot+Poi实现Excel的导入导出
- 全国银行网点数据库Excel版最新版
- excel自动生成创建表sql语句,支持My
- 《Excel+SQL Server 数据库管理技术详解》
- excel导入mssql完整破解版
- excel导入Oracle数据库工具 非常强大
- SQLite-1.0.31.0及其源代码
- SQLite数据库编辑工具
- 安卓中SQLite数据库简单
- sqlite数据库查看工具
- SqliteDev3.5中文sqlite可视化管理器支持
- SQLiteSpy绿色中文免费版
- sqlite.dll 含64位和32位的dll
- 64位 System.Data.SQLite.dll
评论
共有 条评论