CREATE CURSOR test (myID i, myValue n(10,2)) >INSERT INTO test VALUES (1, 11000.03) > > >oExcel = Createobject("Excel.Application") >With oExcel > .Workbooks.Add > .Visible = .T. > With .ActiveWorkBook.ActiveSheet > VFP2Excel('test', .Range('A1')) > Endwith >Endwith > >Function VFP2Excel > Lparameters tcCursorName, toRange, tcHeaders > tcCursorName = Iif(Empty(m.tcCursorName),Alias(),m.tcCursorName) > Local loConn As AdoDB.Connection, loRS As AdoDB.Recordset,; > lcTemp, oExcel,ix > > lcTemp = Forcepath(Sys(2015)+'.dbf',Sys(2023)) > Select (m.tcCursorName) > Copy To (m.lcTemp) > loConn = Createobject("Adodb.connection") > loConn.ConnectionString = "Provider=VFPOLEDB;Data Source="+Sys(2023) > loConn.Open() > loRS = loConn.Execute("select * from "+m.lcTemp) > > * Use first row for headers > Local Array aHeader[1] > > toRange.Offset(1,0).CopyFromRecordSet( loRS ) && Copy data starting from headerrow + 1 > For ix=1 To Iif( !Empty(m.tcHeaders), ; > ALINES(aHeader, m.tcHeaders,1,','), ; > loRS.Fields.Count ) > toRange.Offset(0,m.ix-1).Value = ; > Iif( !Empty(m.tcHeaders), ; > aHeader[m.ix], ; > Proper(loRS.Fields(m.ix-1).Name) ) > toRange.Offset(0,m.ix-1).Font.Bold = .T. > Endfor > > loRS.Close > loConn.Close > Erase (m.lcTemp) >Endfunc>