im trying use for loop on this to loop from datasheet, but its only reading one row, dont know where i did wrong any Ideas?
import org.apache.poi.xssf.usermodel.*;
    import org.apache.poi.ss.usermodel.DataFormatter
    cellDataFormatter = new DataFormatter()
  //Create formula evaluator
 fEval = new XSSFFormulaEvaluator(context.srcWkSheet.getWorkbook())
    //Increment the rowcounter then read in the next row of items
    RC = context.rowCounter;
    if(RC<=context.srcWkSheet.getLastRowNum()){//Check if we've reached the last row
    for(int i =0;  i < RC;  i++)
    {
        curTC = testRunner.testCase
        sourceRow = context.srcWkSheet.getRow(i)//Get a spreadsheet row
        //Step through cells in the row and populate property data 
        data1Cell = sourceRow.getCell(0)
        curTC.setPropertyValue("data1",cellDataFormatter.formatCellValue(data1Cell ,fEval))
        data2Cell = sourceRow.getCell(1)
        curTC.setPropertyValue("data2",cellDataFormatter.formatCellValue(data2Cell ,fEval))
        data3Cell = sourceRow.getCell(2)
        curTC.setPropertyValue("data3",cellDataFormatter.formatCellValue(data3Cell ,fEval))
        //Rename test cases for readability in the TestSuite log
        curTC.getTestStepAt(0).setName("data1-" + curTC.getPropertyValue("BC"))
        //Go back to first test request with newly copied properties
        testRunner.gotoStep(0)
    }
    }
				
                        
From the API documentation for
testRunner.gotoStep(0):Execution will continue after the indexed step. You are probably expecting it will return back to your loop, which is incorrect!
You probably meant something like:
curTC.getTestStepAt(0).run(context.testRunner, context); API documentation.