How to retrieve data from excel sheet by checking column name and its value & next column and its value(without using keyword view) scripting only
This is the question asked by visitor Nags
How to retrieve data from excel sheet by checking column name and its value & next column and its value(without using keyword view) scripting only
This is the question asked by visitor Nags
Hi,
Import the excel sheet to your datatable. Then use a for loop like
row_cnt=datatable.getrowcount
for i=1 to row_cnt
datatable.getsheet(i)
a=datatable.value("header",1)
b=datatable.value("header1",1)
.
.
datatable.setnextrow
Next
Thansk for usefull info
You can simply access the excell sheet (not import) by using the script. See bellow example:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.WorkBooks.Open("path of yourfile.xls")
Set objDriverSheet = objWorkbook.Worksheets("name of the sheet")
then just acces the cell itself :
row = 1
objDriverSheet.Cells(row,"A").Value
I used just default column names by A,B,C,......
Hope that helps,
I am using the For Loop to get data from the data table. The summary code is:
C=datatable.getrowcount
For i=1 to c
msgbox Datatable.Value("Column1")
Next
'The message box always returns data of row 1. Irrespective of the iteration. How is it possible.
the reason may be cos you r not updating the current row value :
May be this will give you some idea:
i=1
RowCount = DataTable.GetSheet("Global").GetRowCount
CurrentRow = DataTable.GetSheet("Global").GetCurrentRow
For j =1 to RowCount
...
Do whatever you want to do with that value here
...
DataTable.SetCurrentRow (i) 'set the current row to the next one
Next
Thanks,
Kunal.
Please check the below script for reading/Accessing data from excell sheet.
n = DataTable.getSheet("Action1").GetRowCount
For i = 1 to n dataTable.set currentrow(i)
x = dataTable.value("data", 1)
if x = "1" Then
msgbox x
else
msgbox " not a valid data"
end if
Next.
Please check the below script for reading/Accessing data from excell sheet.
n = DataTable.getSheet("Action1").GetRowCount
For i = 1 to n dataTable.set currentrow(i)
x = dataTable.value("data", 1)
if x = "1" Then
msgbox x
else
msgbox " not a valid data"
end if
Next.
here we can use two ways of coding.
1st method:
datatable.importsheet "path of the excel file.xls",source sheetID,desination sheetID
n = datatable.getsheet("desination sheetname").getrowcount
for i = 1 to n
columnname = datatable.getsheet("destination sheetname").getparameter(i).name
if colunmname = knowncolumnname then
value = datatable.getsheet(destinationsheetname).getparameter(i)
end if
next
2nd method:
set objexcel = createobject("excel.application")
Set objWorkbook = objExcel.WorkBooks.Open("path of the file.xls")
Set objDriverSheet = objWorkbook.Worksheets("name of the sheet")
columncount = objDriverSheet.usedrange.columns.count
rowcount = objDriverSheet.usedrange.rows.count
for i = 1 to colunmcount
columnname = objDriversheet.cells(i,1)
if columnname = knowncolumnname then
for j = 1 to rowcount
fieldvalue = objdriversheet.cells(j,i)
next
end if
next
Thanks
Bhaskar kumar
Hello Bhaskar,
I used your 2nd method to read data from excel sheet. Can you please tell me how can I create an array to continously loop through excel sheet and read ONLY required values.
Shouldn't I use an array inside the for loop or outside? Please help.
Thanks much.
Hi Bhaskar,
I used your 2nd method, but I'm not able to get the column count and row count of the used range of the excel sheet. Could you please help. I'll really appreciate it. Thanks.
Below is my code:
Set objExcelObj = CreateObject("Excel.Application")
objExcelObj.Visible = True
Set objWorkbook = objExcelObj.Workbooks.Open(strParticipantDataSetupFile)
Set objParticipantSheet = objWorkbook.Worksheets(strSheetName)
columncount = objParticipantSheet.usedrange.columns.count
rowcount = objParticipantSheet.usedrange.rows.count
For i = 1 to columncount
columnname = objParticipantSheet.cells(i,1)
If columnname = "PlatformName_vc" Then
For j = 1 to rowcount
fieldvalue = objParticipantSheet.cells(j,i)
Next
End If
Next
Hi
Pls I need you help, I m trying to loop values from an external excel sheet in a call function but its only picking the first rows of data, can you help please. I have researched and used several options but no JOY!. See code below:
=====================================================================================================================
Function fnFetchDataFromExcelSheet(strColumnName)
Dim sColValue
'Initialize the return the value to "empty" string
fnFetchDataFromExcelSheet = "empty"
'Add a new blank sheet into the QTP data table
'Excel data will be copied into this blank sheet
DataTable.AddSheet("dtDataSheet")
'Import the data from the excel sheet into the QTP data table
DataTable.ImportSheet sExcelWorkbookPath, sTestCaseName, "dtDataSheet"
'Find the value from the data table
sColValue = DataTable.Value(strColumnName, "dtDataSheet")
'Return the value back to the calling function
fnFetchDataFromExcelSheet = sColValue
'Remove Reference
DataTable.DeleteSheet("dtDataSheet")
End Function
Thanks for sharing information.
Hi ,
I have imported the file & tried with your code.
Suppose there are 3 records in my file & I want to retrieve the values from column 'Name'.
But I am getting the required output 3 times since there are 3 records. I want the required O/P only once. Could u pls guide me on this? Below is my code.
DataTable.Import "C:\1.xls"
row_cnt=datatable.getrowcount
for i=1 to row_cnt
datatable.getsheet(1)
a=datatable.value("DbTable_Row_1_Col_1_out",1)
'b=datatable.value("header1",1)
msgbox a
datatable.setnextrow
Next
Last edited by archgk; 03-25-2009 at 04:31 AM.
Hi All,
Just try below code , hope this will help you
''opens excel file
Set xlApp = GetObject("","Excel.Application")
xlApp.visible = true
Set xlWrkbk = xlApp.Workbooks.Open("abc.xls")
Set xlWrksht = xlWrkbk.Worksheets("Data") ' Data is the name of the sheet
intStartRow = 2 ' Row from whcih you need to start
For intRow = intStartRow to xlWrksht.UsedRange.Rows.Count
strAccountNumber = Trim(xlWrksht.Range("A" & intRow))
strAccuntName = Trim(xlWrksht.Range("B" & intRow))
dtDate = Trim(xlWrksht.Range("C" & intRow))
Next
Hi Bhaskar,
Your way of explanation is very good.
Thanks so much.
Hi Iam trying to import data from excel sheet
iam using
datatable.Import "C:\Automation\Automation\project centre\result.xls"
but when running the test
A general error occurred while importing file C:\Automation\Automation\project centre\result.xls.
Line (109): "datatable.Import "C:\Automation\Automation\project centre\result.xls"".
occurring.Can anyone solve my problem
Last edited by sjrani; 04-20-2010 at 01:30 AM.
hi friend,
hi friend,
As of now I can give two suggestions
1.Without adding placing results.xls in folders directly use the below code and check whether the data is getting imported.
Datatable.Import "C:\results.xls"
If the above is successful then check out the path of the excel sheet which is present with in three folders (Automation\Automation\project centre) are you sure you have three folders, i doubt you would have a single folder named Automation am I right ????Check out the names of the folders and make sure the folders is not spelled wrongly.
Thanks,
Deepa
Arise Awake And Stop Not Till The Goal Is Reached
Hi deepa
Iam sure about the folders because i copied the address from the addressbar.
If iam trying to copy it in the Folder C then iam getting the following error
'C:\result.xls' could not be found. Check the spelling of the file name, and verify that the file location is correct.
If i change the file name then its working. Do you have any idea why its not working with other files
If i am using a file that created by the application then iam getting the error
The DataTable.Import (file) operation failed. Invalid file.
Line (109): "datatable.Import "\\aumail02\users\sailaja.javvaji\My Documents\excel\xx.xls"".
If i change the name of the file its working.
Last edited by sjrani; 04-20-2010 at 11:01 PM.
hi friend,
As of now one guess from my side. The file may be read only. I mean already some one has opened this file, else the excel sheet itself sometimes will create the problem. Just create a new excel sheet will resolbve your issue.
Thanks,
Deepa
Arise Awake And Stop Not Till The Goal Is Reached