【发布时间】:2018-07-10 15:53:22
【问题描述】:
我正在从 csv 文件中导入一些数据,这是数据:
*file.csv
UserName, EmailId, PhoneNumber
Antonio, anto@gmail.com, 1234567890
Oscar, osc@yahoo.com, 9999999999
Luis,lu@hotmail.com,8888888
我有一个函数可以调用这个文件:
'************************************************************
Function ImportCsvFiletoDatatable(CsvFilePath,SheetName,HeaderDelimiter)
Dim filePath
Dim fso
Dim f
Dim fData
Dim arrData
Dim CsvValue
Dim CsvSheet
Dim CsvFirstLine
Dim CsvColumns
Dim ColumnIndex
Dim rIndex
Dim cIndex
filePath=CsvFilePath 'Specify file Path
'Open CSV File using File System Object
Set fso=createobject("scripting.filesystemobject")
Set f = fso.OpenTextFile(filePath)
CsvFirstLine=f.readline 'Treating like first line is the column names
CsvColumns=split(CsvFirstLine,HeaderDelimiter) 'Split the line using HeaderDelimiter
Set CsvSheet=DataTable.GetSheet(SheetName) 'Get the Specified sheet
'Add the splitted values as Datatable Columns
For ColumnIndex=lbound(CsvColumns) to ubound(CsvColumns)
CsvSheet.addparameter CsvColumns(ColumnIndex),""
Next
While not f.AtEndOfStream
rIndex=f.Line-1 'Specify Row index
fData=f.ReadLine ' Read CSV File Line
arrData=split(fData,",") 'Split the line
cIndex=1 'Specify Column Index
CsvSheet.SetCurrentRow(rIndex) 'Set Row in the Datatable
' Add values in Datatable
For Each CsvValue In arrData
CsvSheet.getparameter(cIndex).value=CsvValue
cIndex=cIndex+1
Next
Wend
f.Close
Set fso=Nothing
End Function
'************************************************************
效果很好,但信息不稳定,我无法管理或使用这些数据。 有人知道如何将数据保留在数据表中,尽管离开了 UFT?
【问题讨论】:
-
您实际上想对数据做什么?你是什么意思你不能使用数据? - 那如何“运作良好”?有几种方法可以打开 CSV。如果你手动打开它会起作用吗?
-
那么是VBA还是VBS?
DataTable(不管它是什么)最后改变了吗?函数旨在返回一些东西。 -
将所有值加载到
Datatable后,如果您希望它们在脚本之外保留,您需要将它们Datatable.Export保存到文件中。 -
感谢@Dave,我现在正在尝试将 CSV 导入数据表,我可以使用数据但是...当迭代结束时,所有数据都将被删除。
-
是的,因为它是一个运行时数据表。如果您按照我提到的方式导出它,则可以在 UFT 之外加载或查看它