LOCAL loXls, loWorkbook, loSheet, lnFields, lnRow, llEofXls, i loXls = CREATEOBJECT("excel.application") loWorkbook = loXLS.Application.Workbooks.Open("c:\temp\bidon.xls") loSheet = loXls.worksheets("Sheet1") lnFields = 4 && number of columns in spreadsheet DIMENSION laRecord[lnFields] *-- create cursor/table according spreadsheet structure CREATE CURSOR Test (Field1 C(15), mMemo M, Field2 C(15), Field3 C(15)) lnRow = 2 DO WHILE NOT llEofXls *-- store each cell of current row into an array FOR i = 1 TO lnFields laRecord[i] = loSheet.Range(loSheet.Cells(lnRow, i), loSheet.Cells(lnRow, i)).value ENDFOR &&* i = 1 TO lnFields IF EMPTY(laRecord[1]) *-- we bail out if we hit an empty cell in column 1 llEofXls = .t. ELSE *-- add the record to the cursor INSERT INTO Test FROM ARRAY laRecord ENDIF lnRow = lnRow + 1 ENDDOAnother way that I thought of to import the data was to use OLE to open the Spreadsheet and loop through the Cells and insert them into the DBF. Does anyone know how to read an Spreadsheet using OLE, I know how to create one using OLE but not how to do the reverse. I don't really want to use low level file functions either <s>. >>