Qtp的global table信息纪录

上一篇 / 下一篇  2010-09-26 16:14:00 / 个人分类:QTP

有时候,需要把qtp的global sheet数据纪录到外面,比如excel。为了保证以前数据不被覆盖,需要先用qtp的datatable相关函数先导入,然后设定当前行为最后一行,再导出。
+j'nlg#](Q0如此一来数据量比较大时势必影响速度,于是写这个函数,每次读取global table数据然后写入到指定的excel里。
5Vc0[ rfmN0其实就是用excel的COM接口。相关函数qtp示例里基本都包括。
b3]wU&rz)T|5Jq051Testing软件测试网8l[dBc$kx
51Testing软件测试网/qG,BfD ? nz-t
Sub WriteGlobalExcel(strFileName)
&R h7]}&]:mtS,GH051Testing软件测试网7o1]_7X[b
Dim nGloColumnNum    'Get column and data from global sheet of QTP.
YoQKzR0Set FSO = CreateObject("Scripting.FileSystemObject")
m(pD)? Q%O0t-x0If Not oFSO.FileExists(strFileName) Then    'If file not exists.
|.~5Q"Xl0    Set XlsApp = CreateObject("Excel.Application")51Testing软件测试网 I9x8A:_,c
    oXlsApp.Workbooks.Add51Testing软件测试网2ncr P.[2s7`z
    oXlsApp.Visible = False
Y'e N$R T2lO0    oXlsApp.Workbooks("Book1").Sheets("Sheet1").name = "output"51Testing软件测试网6dZZ2ToI F:x
    Set NewSheet = oXlsApp.WorkBooks("Book1").Sheets("output")51Testing软件测试网,CI;M2f(Dv
    nGloColumnNum = DataTable.GlobalSheet.GetParameterCount51Testing软件测试网[5Ft[zT tq
    For i = 1 to nGloColumnNum51Testing软件测试网rNr&?6`mf
        NewSheet.Cells(1, i).Font.Color = vbBlue
l L!qJx7Y2N|0        NewSheet.Cells(1, i) = DataTable.GlobalSheet.GetParameter(i).name51Testing软件测试网qd8~ ue4`n
    Next51Testing软件测试网){x(i"E }#zq1fk
    DataTable.GlobalSheet.SetCurrentRow(1)51Testing软件测试网1p5m+tf-MU:oHS1K0a
    For i = 1 to nGloColumnNum
+J6og N"I%E3F]0        NewSheet.Cells(2, i) = DataTable(DataTable.GlobalSheet.GetParameter(i).name, dtGlobalSheet)51Testing软件测试网%L.|8`E P u"g`D
    Next
P,R)[FWnL0    oXlsApp.Workbooks("Book1").saveAs strFileName
6Z[[\*l0b5v0    oXlsApp.Quit51Testing软件测试网3L^7PP,o W!f8^
    Set XlsApp = Nothing51Testing软件测试网%|oHH{dw#Y
Else    'If file exists.51Testing软件测试网7n5i6mx4g7FQVQa
    Set XlsApp = CreateObject("Excel.Application")51Testing软件测试网7k*N/_ ^;e ~1_\
    oXlsApp.Workbooks.Open(strFileName)
7U xCqzf0    oXlsApp.Visible = False
+TG/u+^ K&@1?0    Set Sheet = oXlsApp.WorkBooks(1).Sheets("output")51Testing软件测试网TK'u-S.]Cp.ttg
    nMaxRow = oSheet.UsedRange.Rows.Count
P6N7X&_/Y3N/j^!V+KhT$~0    nGloColumnNum = DataTable.GlobalSheet.GetParameterCount    'get global data.
pgfD7gE/QN0    For i = 1 to nGloColumnNum51Testing软件测试网\6p }*ud"C:kt W
        oSheet.Cells(nMaxRow+1, i) = DataTable(DataTable.GlobalSheet.GetParameter(i).name, dtGlobalSheet)51Testing软件测试网y6V,I k7W
    Next51Testing软件测试网-t} F Anqxu
    oXlsApp.Workbooks(1).Save51Testing软件测试网'w `+Cn0v%]$hku
    oXlsApp.Quit51Testing软件测试网p c Ku9{f
    Set XlsApp = Nothing
B%|Xf9{$EO0End If51Testing软件测试网f F~r:ug n]5nI
Set FSO = Nothing
'C[ O0fVG;_0
JBYY"Z3~L7_0End Sub

TAG:

 

评分:0

我来说两句

Open Toolbar