TestLink1.9.3測試用例:Excel轉換XML工具實現代碼

以下是通過VBScript實現的Excel數據轉換成XML格式,主要用於實現Testlink1.9.3的測試用例導入。代碼實現如下:


Dim objexcel,objworkbook,objsheet,objxml_inter,objxml,totalrow,row,id,excelStr

'========================================
'創建Excel對象,關閉Excel對象--函數
'=========================================
Function getExcel(excelname, excelpath)
Set objexcel = CreateObject("excel.application")
Set objworkbook = objexcel.Workbooks.Open(excelpath)
Set objsheet = objworkbook.Sheets(excelname)
EndFunction

Function clsExcel()
objworkbook.Close
EndFunction
'============================================

Function dealStr(excelStr)
    For id=2to8
    excelStr = Replace(excelStr,id&"、","<br/>"&id&"、")
    excelStr = Replace(excelStr,id&".","<br/>"&id&".")
    Next
    dealStr=excelStr
EndFunction


'========================
'獲取Excel單元格數據,並將XML的格式寫入到對應的單元格,之後通過創建XML對象生成XML文件
'========================
Function getExcelData()
row=2
objxml_inter=""
DoWhileNot (objsheet.cells(row,2).value ="")

'testcase
objxml_inter=objxml_inter&CStr("   <testcase internalid=""02"" name=""")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,2)))
objxml_inter=objxml_inter&CStr(""">")


objxml_inter=objxml_inter&CStr("<node_order><![CDATA[0]]></node_order>")

objxml_inter=objxml_inter&CStr("<externalid><![CDATA[7]]></externalid>")

'summary
objxml_inter=objxml_inter&CStr("<summary><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,3)))
objxml_inter=objxml_inter&CStr("</p>]]></summary>")

'preconditions
objxml_inter=objxml_inter&CStr("<preconditions><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,6)))
objxml_inter=objxml_inter&CStr("</p>]]></preconditions>")

'execution_type
objxml_inter=objxml_inter&CStr("<execution_type><![CDATA[1]]></execution_type>")

'importance
objxml_inter=objxml_inter&CStr("<importance><![CDATA[2]]></importance>")

'steps
objxml_inter=objxml_inter&CStr("<steps>")

'step
objxml_inter=objxml_inter&CStr("<step>")

'step_number
objxml_inter=objxml_inter&CStr("<step_number><![CDATA[1]]></step_number>")

'action
objxml_inter=objxml_inter&CStr("<actions><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,7)))
objxml_inter=objxml_inter&CStr("</p>]]></actions>")

'expectedresults
objxml_inter=objxml_inter&CStr("<expectedresults><![CDATA[<p>")
objxml_inter=objxml_inter&CStr(dealStr(objsheet.cells(row,8)))
objxml_inter=objxml_inter&CStr("</p>]]></expectedresults>")

'execution_type
objxml_inter=objxml_inter&CStr("<execution_type><![CDATA[1]]></execution_type>")

objxml_inter=objxml_inter&CStr("</step>")
objxml_inter=objxml_inter&CStr("</steps>")

objxml_inter=objxml_inter&CStr("   </testcase>")

'CStr(objsheet.cells(x,1)),CStr(objsheet.cells(x,2))
'MyFile.Write(objxml_inter)
'WScript.Echo x-1
row=row+1
Loop
totalrow = row-2
EndFunction



'========================
'創建XML文件
'========================
Sub CreateXML
Dim fileObj, XmlFile
Set fileObj = CreateObject("Scripting.FileSystemObject")
Set XmlFile = fileObj.CreateTextFile(XMLname, True)
'xml title
objxml=CStr("<?xml version=""1.0"" encoding=""GBK""?>")
objxml=objxml&CStr("<testcases>")
objxml=objxml&objxml_inter
objxml=objxml&CStr("</testcases>")
XmlFile.Write(objxml)
XmlFile.Close
EndSub

excelpath = Inputbox("請輸入Excel文件正確的路徑名和文件名:","TestLink 1.9.3小助手: Excel轉換XML工具")
If excelpath = ""Then
    MsgBox"文件名不能爲空!"
    WScript.Quit
ElseIf  InStr(excelpath,".xls") < 1Then
    MsgBox"文件名格式不對!"
    WScript.Quit
EndIf


excelname = InputBox("請輸入Excel中所要操作的表格名稱:","TestLink 1.9.3小助手: Excel轉換XML工具")
If excelname = ""Then
    MsgBox"文件名不能爲空!"
    WScript.Quit
EndIf

XMLname = InputBox("請輸入轉換之後的XML文件保存路徑和名稱:","TestLink 1.9.3小助手: Excel轉換XML工具")
If XMLname = ""Then
    MsgBox"文件名不能爲空!"
    WScript.Quit
ElseIf  InStr(XMLname,".xml") < 1Then
    MsgBox"文件名格式不對!"
    WScript.Quit
EndIf

'初始化excel對象
Call
 getExcel(excelname, excelpath)
'讀入Excel數據
Call getExcelData()
'寫入數據, XML
CreateXML

'關閉Excel對象
Call clsExcel()

'提示信息
MsgBox
"完成從Excel到XML的數據轉換,總共"+CStr(totalrow)+"條!"




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章