有时候,需要把
qtp的global sheet数据纪录到外面,比如excel。为了保证以前数据不被覆盖,需要先用qtp的datatable相关函数先导入,然后设定当前行为最后一行,再导出。
+j'nlg#](Q0如此一来数据量比较大时势必影响速度,于是写这个函数,每次读取global table数据然后写入到指定的excel里。
5Vc0[
rfmN0其实就是用excel的COM接口。相关函数qtp示例里基本都包括。
b3]wU&rz)T|5Jq051Testing软件测试网8l[dBc$kx51Testing软件测试网/qG,BfD
?
nz-tSub WriteGlobalExcel(strFileName)
&Rh7]}&]:mtS,GH051Testing软件测试网7o1]_7X[bDim nGloColumnNum 'Get column and data from global sheet of QTP.
Yo QKzR0Set 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.Add
51Testing软件测试网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.GetParameterCount
51Testing软件测试网[5Ft[zTtq For i = 1 to nGloColumnNum
51Testing软件测试网rNr&?6`mf NewSheet.Cells(1, i).Font.Color = vbBlue
lL!qJx7Y2N|0 NewSheet.Cells(1, i) = DataTable.GlobalSheet.GetParameter(i).name
51Testing软件测试网qd8~ ue4`n Next
51Testing软件测试网){x(i"E }#z q1fk DataTable.GlobalSheet.SetCurrentRow(1)
51Testing软件测试网1p5m+tf-MU:oHS1K0a For i = 1 to nGloColumnNum
+J6o g
N"I%E3F]0 NewSheet.Cells(2, i) = DataTable(DataTable.GlobalSheet.GetParameter(i).name, dtGlobalSheet)
51Testing软件测试网%L.|8`EP
u"g`D Next
P,R)[FWnL0 oXlsApp.Workbooks("Book1").saveAs strFileName
6Z[[\*l0b5v0 oXlsApp.Quit
51Testing软件测试网3L^7PP,o W!f8^ Set XlsApp = Nothing
51Testing软件测试网%|oHH{dw#YElse 'If file exists.
51Testing软件测试网7n5i6mx4g7FQVQ a 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 nGloColumnNum
51Testing软件测试网\6p}*ud"C:kt
W oSheet.Cells(nMaxRow+1, i) = DataTable(DataTable.GlobalSheet.GetParameter(i).name, dtGlobalSheet)
51Testing软件测试网y6V,I k7W Next
51Testing软件测试网-t} FAnqxu oXlsApp.Workbooks(1).Save
51Testing软件测试网'w
`+Cn0v%]$hku oXlsApp.Quit
51Testing软件测试网p
c
Ku9{f Set XlsApp = Nothing
B%|Xf9{$EO0End If
51Testing软件测试网f
F~r:ugn]5n ISet FSO = Nothing
'C[O0fVG;_0JB YY"Z3~L7_0End Sub