by Rick Lipkin » Tue Apr 08, 2008 12:05 pm
Here is a code snipit I use.. I do not know if it will work on XLSx
Rick Lipkin
SC Dept of Health, USA
//------------------------------
cPATH := "C:\TEMP\MYFILE.XLS"
DO WHILE .T.
SITEDBF := "TEMP"+(SUBSTR(TIME(),7,2)+SUBSTR(TIME(),4,2))+".DBF"
IF .not. FILE( xVOL+"\DBTMP\"+SITEDBF )
EXIT
ENDIF
ENDDO
DBF_STRU := { }
AADD( DBF_STRU, { "SSN", "C", 11, 0 } )
AADD( DBF_STRU, { "NAME", "C", 30, 0 } )
AADD( DBF_STRU, { "ACT_TYPE", "C", 1, 0 } )
AADD( DBF_STRU, { "EMP_STAT", "C", 1, 0 } )
AADD( DBF_STRU, { "TOFROM", "C", 4, 0 } )
AADD( DBF_STRU, { "COSTCTR", "C", 6, 0 } )
AADD( DBF_STRU, { "FUND", "C", 6, 0 } )
AADD( DBF_STRU, { "RATE", "N", 10, 2 } )
AADD( DBF_STRU, { "SEMI", "N", 10, 2 } )
AADD( DBF_STRU, { "FY", "C", 4, 2 } )
AADD( DBF_STRU, { "COMMENTS", "C", 50, 0 } )
AADD( DBF_STRU, { "APPROVAL", "C", 1, 0 } )
AADD( DBF_STRU, { "SALARY", "N", 7, 0 } )
AADD( DBF_STRU, { "P0701", "C", 1, 0 } )
AADD( DBF_STRU, { "P0716", "C", 1, 0 } )
AADD( DBF_STRU, { "P0801", "C", 1, 0 } )
AADD( DBF_STRU, { "P0816", "C", 1, 0 } )
AADD( DBF_STRU, { "P0901", "C", 1, 0 } )
AADD( DBF_STRU, { "P0916", "C", 1, 0 } )
AADD( DBF_STRU, { "P1001", "C", 1, 0 } )
AADD( DBF_STRU, { "P1016", "C", 1, 0 } )
AADD( DBF_STRU, { "P1101", "C", 1, 0 } )
AADD( DBF_STRU, { "P1116", "C", 1, 0 } )
AADD( DBF_STRU, { "P1201", "C", 1, 0 } )
AADD( DBF_STRU, { "P1216", "C", 1, 0 } )
AADD( DBF_STRU, { "P0101", "C", 1, 0 } )
AADD( DBF_STRU, { "P0116", "C", 1, 0 } )
AADD( DBF_STRU, { "P0201", "C", 1, 0 } )
AADD( DBF_STRU, { "P0216", "C", 1, 0 } )
AADD( DBF_STRU, { "P0301", "C", 1, 0 } )
AADD( DBF_STRU, { "P0316", "C", 1, 0 } )
AADD( DBF_STRU, { "P0401", "C", 1, 0 } )
AADD( DBF_STRU, { "P0416", "C", 1, 0 } )
AADD( DBF_STRU, { "P0501", "C", 1, 0 } )
AADD( DBF_STRU, { "P0516", "C", 1, 0 } )
AADD( DBF_STRU, { "P0601", "C", 1, 0 } )
AADD( DBF_STRU, { "P0616", "C", 1, 0 } )
DBCREATE( xVOL+"\DBTMP\"+SITEDBF, DBF_STRU )
SELECT 9
IF NETUSE( xVOL+"\DBTMP\"+SITEDBF, .T.,5)
ELSE
SELECT( GOBACK )
_Cleanup()
RETURN(.F.)
ENDIF
nREC := 0
cSAY := "Opening Excel File "+STR(nREC)
oSAY:ReFresh()
SysReFresh()
oEXCEL := TOleAuto():New( "Excel.Application" )
oExcel:Workbooks:Open( cPATH )
oBook := oExcel:Get( "ActiveSheet" )
nROWS := oBook:UsedRange:Rows:Count()
nCOLS := oBook:UsedRange:Columns:Count()
SELECT 9
FOR nROW := 3 to nROWS
APPEND BLANK
FOR nCOL := 1 to nCOLS
xVALUE := oBook:Cells( nROW, nCOL):Value
FieldPut( nCol,xValue )
nREC++
cSAY := "Opening Excel File "+STR(nREC)
oSAY:ReFresh()
SysReFresh()
NEXT
NEXT
SELECT 9
dbCommit()