Rand(-1) Select c.Company,; c.Contact, ; RTRIM(e.First_Name)+' '+Rtrim(e.Last_Name) As eName, ; CAST(Chrtran(e.Notes,Chr(13),'') As m) As Notes ; FROM (_samples+'data\customer') c, (_samples+'data\employee') e ; INTO Cursor xx ; nofilter loExcel = Createobject('Excel.Application') With loExcel .Workbooks.Add() .Visible =.T. VFP2Excel('xx',.ActiveWorkbook.ActiveSheet.Range('A1')) .ActiveWorkbook.ActiveSheet.Usedrange.Columns.Autofit Endwith *** Author: Cetin Basoz Function VFP2Excel Lparameters tcCursorName, toRange, tcHeaders tcCursorName = Iif(Empty(m.tcCursorName),Alias(),m.tcCursorName) Local loConn As AdoDB.Connection, loRS As AdoDB.Recordset, ; lcTemp, loError, lcError 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 " + Justfname(m.lcTemp)) 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) EndfuncCetin