资源简介
可导入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 Creator5)
- 电脑卡西欧计算器 fx-991CN X Emulator19中
- 卡西欧工程计算器模拟器Casio FX
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- PIC 单片机定时器初值计算器
- 湍流k-e经验值计算器
- QT,JPEG解码源代码(已完成)
- PIC单片机延时计算器
- Qt 播放音频文件
- MVC模式实现的计算器
- powerbuilder 计算器小程序
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- 基于51单片机的计算器(C51编写,有
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- labview计算器实例.vi88218
- QT酷炫界面开发指南《QmlBook》
评论
共有 条评论