Qt是应用程序开发常用的开发框架,但桌面编程中很多时候对用到excel的操作,这种情况怎么处理呢?Qt提供了一套调用com组件的方法,本文就介绍一下,如何使用Qt实现对excel的操作。文中采用Qt4.8.5进行开发。本文介绍从excel中读取单元格的数据。
前期准备工作(包括相关工具或所使用的原料等)
Qt4.8.5qtcreator详细的操作方法或具体步骤
首先,我们要创建一个项目并进行初步的项目设置,过程参见本系列文章的第一篇。这里就不再多说了,我们将项目文件从qtcreator中打开。

为了显示读取到的数据,我们先在界面文件中添加一个Label,如果读取了数据可以在这里显示一下进行验证。

然后,打开mainwindow.cpp文件,在其中引入适当的头文件,具体如图中所示。

接着,我们在头文件中打开置顶的excel文件,并对其中的对象类进行配置,因为前文已经介绍过,就不详细说了,具体代码如下:
QAxObject excel("Excel.Application");
excel.setProperty("Visible",false);
QAxObject *workbooks=excel.querySubObject("WorkBooks");
workbooks->dynamicCall("Open (const QString&)",QString("c:/a.xls"));
QAxObject *workbook=excel.querySubObject("ActiveWorkBook");//获取活动工作簿
QAxObject *worksheets=workbook->querySubObject("WorkSheets");//获取所有的工作表,如图

然后,我们开始获取第一工作表。

通过range查询对应的cell,然后获取cell中value值。代码如下:
QAxObject *range=worksheet->querySubObject("Cells(int,int)",1,1); //获取cell的值
QString strVal=range->dynamicCall("Value2()").toString();

接着,我们将得到的strVal显示label上用于验证是否成功读取。

我们再在c盘下新建一个a.xls文件,并且在第一个单元格输入一个字符串,如图所示.

之后,我们用程序运行下,查看程序是否达到预期的效果.可以看到程序运行成功了.

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
