如何使用QTP/UFT Datatable方法为导出的XLS文件追加日期?
如何给UFT/QTP导出的XLS文件追加日期时间
我来帮你搞定这个需求!其实核心思路就是先生成符合Windows文件名规则的日期时间字符串,再把它拼到你的目标文件名里,这样每次执行测试导出的文件都会带上执行时间,不会覆盖之前的结果。
具体步骤和代码示例:
- 生成合法的日期时间字符串
Windows文件名不能包含: / * ? " < > |这些字符,所以我们要把时间里的冒号替换掉,或者直接用自定义格式生成无非法字符的字符串。这里给你两种常用方式:
- 方式一:利用系统格式化函数,替换冒号
' 获取当前时间并格式化为"HH:mm:ss 月/日/年",再把冒号换成横杠 strDateTime = Replace(FormatDateTime(Now(), vbLongTime), ":", "-") & "_" & FormatDateTime(Now(), vbShortDate) ' 生成的结果类似:14-30-25_5/20/2024
- 方式二:自定义紧凑格式(推荐,更规范且无歧义)
' 生成"yyyyMMdd_HHmmss"格式的字符串,比如20240520_143025 strDateTime = Year(Now()) & _ Right("0" & Month(Now()), 2) & _ Right("0" & Day(Now()), 2) & "_" & _ Right("0" & Hour(Now()), 2) & _ Right("0" & Minute(Now()), 2) & _ Right("0" & Second(Now()), 2)
- 构建带日期时间的完整文件路径
把生成的日期时间字符串拼到你的原始文件名末尾:
strTargetFilePath = "D:\QTP_Automation\Test_Results_AutomationTesting_Results_" & strDateTime & ".xls"
- 执行导出操作
用新的文件路径调用ExportSheet,注意两个工作表要导出到同一个文件:
' 导出TestCases工作表到目标文件 DataTable.ExportSheet strTargetFilePath, "TestCases" ' 导出TestSteps工作表到同一个文件(这样两个表会在同一个XLS里) DataTable.ExportSheet strTargetFilePath, "TestSteps"
注意事项:
- 确保导出的文件路径已经存在(比如
D:\QTP_Automation文件夹必须存在),否则UFT会报错。如果需要自动创建文件夹,可以添加文件夹检查和创建的代码。 - 如果你希望每次执行的文件都不重复,加上秒数是很有必要的,避免短时间内多次执行导致文件覆盖。
内容的提问来源于stack exchange,提问作者Rajesh Om
相关产品推荐
相关产品推荐

