使用QTP实现EXCEL数据比对的解决方案
需积分: 14 114 浏览量
更新于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 上传
266 浏览量
2023-06-30 上传
2021-09-03 上传
2013-06-22 上传
103 浏览量
2013-06-22 上传
小婉青青
- 粉丝: 26
- 资源: 2万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜