qt 进程打开excel_Qt 操作Excel

本文介绍了一个使用Qt通过QAxObject来读写Excel的封装类ExcelEngine。该类提供了打开、保存、读取和写入数据等方法,方便Qt应用程序与Excel数据交互。提供了一个简单的使用示例,包括打开文件、修改数据、保存并关闭文件的过程。
摘要由CSDN通过智能技术生成

Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享。

头文件:

#ifndef EXCELENGINE_H

#define EXCELENGINE_H

#include #include

#include

#include

#include

#include

#include

#include #include

#include

#include

typedef unsigned int UINT;/** *@brief 这是一个便于Qt读写excel封装的类,同时,便于把excel中的数据

*显示到界面上,或者把界面上的数据写入excel中,同GUI进行交互,关系如下:

*Qt tableWidget ExcelEngine xls file.

*

*@note ExcelEngine类只负责读/写数据,不负责解析,做中间层

*@author yaoboyuan 254200341@qq.com

*@date 2012-4-12

*/

class ExcelEngine : protected QObject

{

public:

ExcelEngine();

ExcelEngine(QString xlsFile);

~ExcelEngine();

public: bool Open(UINT nSheet = 1,bool visible = false); //打开xls文件

bool Open(QString xlsFile,UINT nSheet = 1,bool visible = false);

void Save(); //保存xls报表

void Close(); //关闭xls报表

bool SaveDataFrTable(QTableWidget* tableWidget); //保存数据到xls bool ReadDataToTable(QTableWidget* tableWidget); //从xls读取数据到ui

QVariant GetCellData(UINT row,UINT column); //获取指定单元数据 bool SetCellData(UINT row,UINT column,QVariant data); //修改指定单元数据

UINT GetRowCount()const; UINT GetColumnCount()const;

bool IsOpen();

bool IsValid();

protected:

void Clear();

private: QAxObject *pExcel; //指向整个excel应用程序

QAxObject *pWorkbooks; //指向工作簿集,excel有很多工作簿

QAxObject *pWorkbook; //指向sXlsFile对应的工作簿

QAxObject *pWorksheet; //指向工作簿中的某个sheet表单

QString sXlsFile; //xls文件路径 UINT nCurrSheet; //当前打开的第几个sheet

bool bIsVisible; //excel是否可见

int nRowCount; //行数

int nColumnCount; //列数

int nStartRow; //开始有数据的行下标值

int nStartColumn; //开始有数据的列下标值

bool bIsOpen; //是否已打开 bool bIsValid; //是否有效

bool bIsANewFile; //是否是一个新建xls文件,用来区分打开的excel是已存在文件还是有本类新建的

bool bIsSaveAlready;//防止重复保存

};

#endif // EXCELENGINE_H

源文件:#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;

bIsANewFile = false;

bIsSaveAlready = fa

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值