cFileName = "sample.xls" && "sample.xlsx", "sample.xlsb" as well iSec = SECONDS() oExcelParser = CREATEOBJECT("excel.application") ? "Excel COM open",SECONDS() - iSec oExcelBook = oExcelParser.Workbooks.Open(cFileName,.T.) ? "File open",SECONDS() - iSec oSheet = oExcelBook.Sheets(1) FOR M.iLine = 1 TO 7500 FOR M.iCol = 1 TO 6 oCell = M.oSheet.Cells(1+M.iLine,M.iCol).Value ENDFOR ENDFOR ? "COM-based Excel data introspection",SECONDS() - iSec oExcelBook.Close(.F.) iSec = SECONDS() oExcelParser = CREATEOBJECT("ExcelGenerator.ARsTDesign") ? "generator COM open",SECONDS() - iSec oExcelParser.Open("c:\hroffice\Sample data.xls","") ? "Excel resource open",SECONDS() - iSec oSheet = oExcelParser.https://www.levelextreme.com/Images/Save.gifWorkbooks.Item(1).WorksheetByIndex(1) FOR M.iLine = 1 TO 7500 FOR M.iCol = 1 TO 6 && among cell retrieval functions available: Label, Date, FormattedLabel, Float, Number, ContainsFormula, CellType, StyleFromLocation... cCellString = M.oSheet.FormattedLabel(1+M.iLine,M.iCol) ENDFOR ENDFOR ? "COM-based Excel-free data introspection",SECONDS() - iSec RELEASE oSheet,oExcelParser