资源简介
可导入excel表格的用QT开发的个税计算器,可针对不同税率在代码中进行修改
代码片段和文件信息
#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(0);
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 )
{
pExcel = new QAxobject(“Excel.Application“);
if ( pExcel )
{
bIsValid = true;
}
else
{
bIsValid = false;
bIsOpen = false;
return bIsOpen;
}
pExcel->dynamicCall(“SetVisible(bool)“ bIsVisible);
}
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“);
//因为excel可以从任意行列填数据而不一定是从00开始,因此要获取首行列下标
nStartRow = usedrange->property(“Row“).toInt(); //第一行的起始位置
nStartColumn = usedrange->property(“Column“).toInt(); //第一列的起始位置
nRowCount = rows->property(“Count“).toInt(); //获取行数
nColumnCount = columns->property(“Count“).toInt(); //获取列数
bIsOpen = true;
return bIsOpen;
}
/**
*@brief Open()的重载函数
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9412 2012-06-02 19:35 tax\excelengine.cpp
文件 2210 2012-05-22 20:31 tax\excelengine.h
文件 270 2012-10-08 09:58 tax\main.cpp
文件 10707 2012-10-23 20:10 tax\mainwindow.cpp
文件 478 2012-10-08 11:49 tax\mainwindow.h
文件 4700 2012-10-23 22:16 tax\mainwindow.ui
文件 394 2012-10-07 15:18 tax\tax.pro
文件 17608 2012-10-23 23:03 tax\tax.pro.user
文件 29759 2012-10-23 22:42 tax\tax.pro.user.2.5pre1
目录 0 2013-01-05 08:35 tax
----------- --------- ---------- ----- ----
75538 10
相关资源
- Qt 按钮收缩,点击show按钮,在按钮后
- 基于Qt实现音频播放器
- 8255/273实现六位十进制计算器
- Qt编写的串口收发数据小程序源码
- 基于qrencode4.0.0 库和QT环境 实现QR 二维
- 2048源码qt4
- Qt下tcp和udp的编程
- Qt自动补全
- Qt电子时钟
- qttcpsocket传送结构体
- QT5.7+OPENGL画正方体
- 最新版地图分幅编号计算器
- Qt Flat样式的各种控件
- Qt qml ListViewEx 下拉刷新上拉分页
- Qt qml pageview
- qt实现简单异步日志系统
- 开源QT串口调试助手
- 基于Qt的window service服务封装
- 基于MVC的Web应用程序-个人所得税计算
- QT数据库的操作
- IOS计算器源代码
- 基于51单片机的简单计算器数码管显示
- QT串口编程库--qextserialport-1.2win-alpha
- ubuntu 12.04 +Qt+opencv采集、显示视频并拍
- 移动onenet 基于arduino IDE 的mqtt连接
- QT编写的局域网聊天工具仿飞秋
- ARM开发板QT编写的虚拟全键盘
- source.zip
- 基于Qt的多线程工具
- 数字信号处理库Aquila编译及使用说明
评论
共有 条评论