使用QTP实现EXCEL数据比对的解决方案
需积分: 14 199 浏览量
更新于2024-08-16
收藏 181KB PPT 举报
EXCEL对象-用QTP实现EXCEL数据比对
在本篇文章中,我们将讨论如何使用QTP实现EXCEL数据比对。首先,我们需要了解EXCEL对象的结构。EXCEL对象可以分为三个级别:一级为进程级的oExcelobj,二级为工作薄workbooks,三级为工作表worksheets。我们可以使用CreateObject("Excel.Application")创建EXCEL对象,然后使用workbooks.open()方法打开工作薄,并使用worksheets.count属性获取工作表的数量。
在需求分析中,我们发现TRAS和BI中的相同的分析表需要保持数据一致。这些分析表有相同点和不同点。相同点包括多个分析表可以导出成一个EXCEL,TRAS导出的EXCEL中的sheet名称和BI导出的EXCEL中的sheet名称的前几位非汉字字符串相同,表样相同。不同点包括BI导出的EXCEL不会导出隐藏的行列,TRAS导出的EXCEL会导出隐藏列,TRAS和BI中导出EXCLE相应表元的行列号不相同,TRAS导出的EXCLE其中会把“注:”导出到合并表元,而BI中是最后2行贴一个标签。
为了解决这些问题,我们可以使用QTP实现EXCEL数据比对。我们将TRAS导出的EXCLE作为标准数据,然后遍历TRAS导出的EXCEL中的sheet,在BI导出的EXCEL中查找相应的sheet,调用CompareExcel函数对两个sheet作比较。CompareExcel函数的思路包括查找出两个sheet中为数字表元的起始行列号,除去表尾不是数据区域的行数,求出实际的数据区域的行数,如果行数一致,则比较,否则不比较该sheet。遍历TRAS中当前sheet的所有列,如果TRAS中的sheet当前列不是隐藏的,求出BI中的sheet的相应列的列号,遍历TRAS当前sheet的行,找到BI相应sheet的相应行数,比较两个表元的值。如果TRAS中的sheet当前列是隐藏的,则不比较当前列,继续遍历查看下一列是否隐藏。最后,将不一致的表元标记为红色,导出有问题的excel。
在不足之处中,我们发现了几点需要改进的地方。比如,比较的sheet有数据不一致时,导出的EXCEL应该只导出有问题的sheet,但是现在会把所有的sheet都导出来。在导出EXCEL时,有时会把BI的表导出来,可能是因为BI表该sheet的列数比TRAS表该sheet的列数要多,这个要在脚本里处理一下。除去TRAS导出的sheet中表尾不是数据区域的行数时,只是通过查找“注”字,这样不能适合所有的情况,有些情况是表尾有两行,还有一行是页码。
使用QTP实现EXCEL数据比对可以解决TRAS和BI中的相同的分析表数据不一致的问题。但是,我们需要注意到一些不足之处,并对脚本进行改进,以提高脚本的鲁棒性和可靠性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-07-27 上传
点击了解资源详情
点击了解资源详情
2024-12-21 上传
小婉青青
- 粉丝: 27
- 资源: 2万+
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用