excel学习笔记五

上一篇 / 下一篇  2009-04-27 16:31:56 / 个人分类:QTP--for—Excel

1)将指定的miscrosoft excel文件导入运行时数据表(including all data sheets).

DataTable.Import "C:\Data.xls" ' Import data from an external file

问:是不是导入到datatableglobal sheet中?

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

 

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

DataTable.ImportSheet “c:\Tables.xls”,1,”Action1” ‘import a single sheet

也可以这样用:DataTable.ImportSheet "C:\name.xls" ,1 ," Global"Qtp中不要使用Global表,会出现死循环现象。

 

问:是不是导入到datatable中的Action1 sheet

答:是,如果要指定一个sheetname

      DataTable.addSheet “name”

      DataTable.ImportSheet filename,1,”name”

      表示在dataTable中新建一个sheet,然后把excel数据导入到这个名称为namesheet

 

问:当用DataTable.Import导入的时候,action1的执行次数等于datatable的记录数?

      当用DataTable.ImportSheet导入的时候,action2的执行次数只有一次?

      两者的区别是?

答:控制test的执行,Test有个设置:data table iterator,可以在file->settings中设置;控制action的执行,可以通过runaction来控制:Runaction "action2",alliterations,或者Runaction "action2",oneiteration

问:但是这个alliterations是根据global dataTable的来执行还是根据datatableaction sheet的数据行来执行?

答:假定global DataTable的记录行数为rowcount1action datatable的记录行数为rowcount2,当在file->settings中设置runrun on all rows的时候,test运行rowcount1次;如果在action call properties中设置run on all rows的时候,test运行rowcount1次,同时该action运行rowcount2

 

2)获得datatable的某工作表name的记录数

x = DataTable.GetSheet("name").getRowCount

3)问:能否导入excel工作表指定的行列内容?

答:只能通过Set bjExcel = CreateObject("Excel.Application")这样的对象去循环获取,然后赋值给dataTable(未找到其他方法)

4)问:怎么定义dataTable的参数名?怎么给参数赋值?

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

                 经过验证,addParameter后面不跟括号。help中说明可以加括号,不解)

5)问:如果要定义参数名,然后指定excel数据导入指定的参数名下,怎么做?

           答:excel表中第一行就可以定义参数名,qtp导入的时候,会把第一行作为参数名导入,第二行开始才是参数值。

6)DataTable.GlobalSheet:全局Sheet

           DataTable.LocalSheet:Action执行是的本地Sheet

7)DataTable.GetSheet("name").getRowCount返回的是excel的所有行,也包括作为参数名的第一行

8)取得datatable中参数名称为p_Text的值,dtLocalSheet为指定的sheetName

           Xname = DataTable("p_Text", dtLocalSheet) 

           

           Xname = DataTable.value("p_Text", dtLocalSheet) 

           Xname = DataTable.GlobalSheet.GetParameter("p_Text").Value

 

           取得datatable中第一列参数的值

           Xname = DataTable.GlobalSheet.GetParameter(1).Value

 

      向某一列的单元格赋值:

          DataTable.value("column_name",dtlocalsheet)="nanjing"

9)循环获取datatable的参数值

           Dim count1,i

            count1 = DataTable.GetSheet("name").getRowCount‘获得名为namesheet的行数

            For i = 1 to (count1)

                 DataTable.SetCurrentRow(i) ‘设置当前行号

                  userId = DataTable.GetSheet("name").getParameter("账号").value

            Next

10)datatable中某一行值
datatable.getsheet(“global”).getparameter("列名").valuebyrow(i)
如果想取第一行,就将i变为1


TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10797
  • 日志数: 22
  • 图片数: 1
  • 建立时间: 2009-04-26
  • 更新时间: 2009-05-26

RSS订阅

Open Toolbar