QTP中DataTable对象的方法

1: AddSheet 方法

描述 

向运行时数据表中添加指定工作表并返回该工作表,以便可以直接在同一语句中设置新工作表的属性。 

语法 

DataTable.AddSheet(SheetName)

示例 

以下示例先使用 AddSheet 方法在运行时数据表中新建工作表"MySheet",然后向新工作表中添加参数。 

Dim Variable

Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00") 

2:DeleteSheet方法

描述 

从运行时数据表中删除指定工作表。 

语法 

DataTable.DeleteSheet SheetID

示例 

以下示例使用 DeleteSheet 方法从运行时数据表中删除工作表"MySheet"。 

DataTable.DeleteSheet "MySheet"

3:Export方法

描述 

在指定位置保存运行时数据表的副本。 

语法 

DataTable.Export(FileName)

示例 

以下示例使用 Export 方法将运行时的数据表保存在 C:\flights.xls 中。 

DataTable.Export ("C:\flights.xls") 

flights.xls内容

4:ExportSheet方法

描述 

将运行时数据表的指定工作表导出到指定文件中。 

如果指定文件不存在,则将创建一个新文件并保存指定工作表。

如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。

如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。

语法 

DataTable.ExportSheet(FileName, DTSheet)

DTSheet  变量  要导出的运行时数据表工作表的名称或索引。索引值从 1 开始。  

示例 

以下示例使用 ExportSheet 方法将运行时数据表的第一个工作表保存到 name.xls 文件中。 

DataTable.ExportSheet "C:\name.xls" ,1

DataTable.ExportSheet "C:\name.xls" , " MySheet "

name.xls表内容

5:GetCurrentRow方法

描述 

返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中的当前(活动)行。 

语法 

DataTable.GetCurrentRow 

返回值 :数字 

示例 

以下示例使用 GetCurrentRow 方法检索当前在运行时数据表中使用的行,并将其写入报告。 

row = DataTable.GetCurrentRow 

Reporter.ReportEvent 1, "行号", row 

6:GetRowCount方法

描述 

返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中最长的列中的总行数。 

语法 

DataTable.GetRowCount 

返回值 :数字 

示例 

以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告。 

rowcount = DataTable.GetSheet("MySheet").GetRowCount 

Reporter.ReportEvent 2, "数据工作表中有 " &rowcount, "行。" 

7:GetSheet方法

描述 :返回运行时数据表中的指定工作表。 

语法 :DataTable.GetSheet(SheetID)

SheetID  变量  标识要返回的工作表。SheetID 可以是工作表名称或索引。索引值从 1 开始。  

示例 

返回值 

DTSheet 对象 

1)     以下示例使用 GetSheet 方法返回运行时数据表的"MySheet"工作表,以便向其中添加参数。 

MyParam=DataTable.GetSheet ("MySheet").AddParameter("Time", "8:00") 

2)     您还可以使用该方法向"MySheet"本地表中添加参数(注意,不会返回值)。 

DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00" 

3)     向”MySheet”表中添加新的一列(Global表)

DataTable.GetSheet(“Global”).AddParameter "NewColumn","Row1Value"

"NewColumn"为列的名字,"Row1Value"为列中的值

4)    从一个旧的表中把单元格的内容复制到一个新的表中

cnt=DataTable.GetRowCount

DataTable.SetCurrentRow(1)

For i=1 to cnt

       DataTable.SetCurrentRow(i)

       OldVal=DataTable.Value("UserName","Global") '把Global表中UserName列的每行的值赋给OldVal

       DataTable.Value("User","Action1")=OldVal  'User必须为已经存在的行,否则qtp提示User列找不到

Next

8:GetSheetCount方法

描述 

返回运行时数据表中的总工作表数。 

语法 

DataTable.GetSheetCount 

返回值 :数字 

示例 

以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。 

sheetcount = DataTable.GetSheetCount 

Reporter.ReportEvent 0, "工作表编号", "数据表中有 " & sheetcount & " 个工作表。"

9:Import方法

描述 

将指定的 Microsoft Excel 文件导入运行时数据表。 

注意: 

导入的表必须与测试或组件匹配。列名必须与测试或组件中的参数匹配,并且工作表名称(用于测试)必须与操作名匹配。 

如果导入的 Excel 表包含组合框或列表单元格、条件格式或 其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。 

语法 

DataTable.Import(FileName)

FileName  字符串型  要导入的 Excel 表的完整路径。  

示例 

导入的表将替换现有运行时数据表(包括所有数据表)中的所有数据。 

以下示例使用 Import 方法将 flights.xls 表导入运行时数据表。 

DataTable.Import ("C:\flights.xls")

   

10:ImportSheet方法

描述 

将指定文件的工作表导入运行时数据表的指定工作表。导入的工作表中的数据将替换目标工作表中的数据(请参阅 SheetDest 参数)。 

注意: 

导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。 

导入的工作表会自动采用它所替换的工作表的名称。 

如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。 

语法 

DataTable.ImportSheet(FileName, SheetSource, SheetDest)

FileName  字符串型  要从中导入工作表的 Excel 表的完整路径。  

SheetSource  变量  要从文件导入的工作表的名称或索引。索引值从 1 开始。  

SheetDest  变量  数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。  

示例 

以下示例使用 ImportSheet 方法将 name.xls 表的第一个工作表导入测试的运行时数据表中的Action1工作表。 

DataTable.ImportSheet "C:\name.xls" ,1 ," Action1" 

 DataTable.ImportSheet "C:\name.xls" ,1 ," Global"

Qtp中不要使用Global表,会出现死循环现象。

11:SetCurrentRow方法

描述 

在运行时数据表中将指定行设置为当前(活动)行。 

注意:你仅能设置一行为当前活动行

语法 

DataTable.SetCurrentRow(RowNumber)

RowNumber 数字 指明要设置为活动行的行号。第一行的编号为 1。  

示例

在global运行时表中设置第二行为当前活动行

DataTable.SetCurrentRow (2)

12:SetNextRow方法

描述

在运行时数据表中将当前活动行的下一行作为新的当前行

注意:你仅能设置一行为新的当前活动行,在数据表中如果当前行为最后一行,使用这个方法将把数据表中的第一行作为新的当前行

语法

DataTable.SetNextRow

示例

DataTable.SetNextRow

13:SetPrevRow

描述

在运行时数据表中将当前活动行的前一行作为新的当前行

注意:在运行时数据表中,如果当前行为第一行则把当前表中的最后一行作为新的当前行

语法

DataTable.SetPrevRow

示例

DataTable.SetPrevRow

14:RawValue

描述

检索运行时数据表中当前行的单元格内容

语法

DataTable.RawValue ParameterID [, SheetID]

示例

a = DataTable.RawValue ("UserName", "Global")

msgbox a

15:Value

描述

Note: This property returns the computed value of the cell. For example, if the cell contains a formula, the method returns True or False.

数据表的缺省属性,在运行表中检索或设置当前行的指定单元格

注意:该属性返回指定单元格的值,如果单元格是表达式,则返回true或false

语法

1)     检索单元格的值

DataTable.Value(ParameterID [, SheetID]) 或

DataTable(ParameterID [, SheetID])

2)     设置单元格的值

DataTable.Value(ParameterID [, SheetID])=NewValue  或

DataTable(ParameterID [, SheetID]) =NewValue

示例

DataTable.Value ("Destination", "ActionA")="New York" 或

DataTable.Value (2,3)="New York"

DataTable("Destination", dtlocalSheet)="New York"

3)     从一个旧的表中把单元格的内容复制到一个新的表中

cnt=DataTable.GetRowCount

For i=1 to cnt

       DataTable.SetCurrentRow(i)

       OldVal=DataTable.Value("UserName","Global")

       DataTable.Value("User","Action1")=OldVal  ‘User必须为已经存在的行,否则qtp提示User列找不到

Next

DataTable.GetSheet("Action1").DeleteParameter("User")

原文地址:https://www.cnblogs.com/emilyzhang68/p/2284621.html