local oXL,cOutputFile oXL=createobject('excel_file_automation') && instantiate wrapper class instead of plain excel object ***Open some excel template file oXL.open_instance('C:\Xl_template.xls') &&If you do not pass template file, writing starts from empty file ** Write stuff directly using nSheet,nRow,nCol syntax oXL.make_cell(1,3,4,'Writing') oXL.make_cell(1,4,4,'Excel') oXL.make_cell(1,5,4,'is') oXL.make_cell(1,6,4, 'Easy') ************************************************* ** Or use higher level methods local nSheet,i,j,cFieldList cFieldList='myCursor.field1|myCursor.field2|myCursor.field3' &&list of a fields delimited by '|' nSheet=1 &&First sheet i=10 &&Start in row j=3 &&Start in column no select myCursor scan oXL.fields_in_row(nSheet, i , j,cFieldList) i=i+1 endscan oXL.set_print_area(1,1,i+1,10) &&Preset print area in resulting excel ****************************** cOutputFile='c:\myExcel.xls' &&Preset name/path of resulting file * cOutputFile=getfile('xls') && or call dialog to get name of the resulting file **Save file and release object oXL.save_as(cOutputFile) oXL.release ***Excel Done, do whatever with file **************************************** More wrapper methods * oXL.make_cell_formula() * lparameters i,j,k,cFormula * oXL.make_cell_format() * lparameters i,j,k,cFormat * oXL.insert_row() * lparameters nAfterRow * oXL.set_row_height() * lparameters nRow,nHeight * oXL.set_column_size() * lParameters nCol,nPixSize * oXL.get_row_height * lparameters nRow * oXL.delete_row() * lparameters nRow * oXL.array_in_row() * lparameters i,j,k,aSomeArray * ETC **************************************************So you get the download, find excel automation class code inside source, and dump it into some of your prg's where you
>>>LOCAL loExcel AS Excel.APPLICATION >>> >>>loExcel = CREATEOBJECT("Excel.application") >>>loExcel.VISIBLE = .F. >>> >>>loWorkBook = loExcel.Workbooks.OPEN('P:\Flock Information.xls') >>>loExcel.displayalerts = .F. >>> >>>loWorkBook.Sheets("28 Day").SELECT >>> >>>FOR i = 288 TO 300 >>> legRow = 'M' + ALLTRIM(STR(i)) >>> loWorkBook.ActiveSheet.RANGE("&legRow").select >>> loExcel.ActiveCell.Value = ALLTRIM(STR(i)) &&<--- This doesn't work >>>*!* loWorkBook.ActiveSheet.RANGE("&legRow").Value = ALLTRIM(STR(i)) &&<---- This doesn't work either >>>NEXT >>> >>> >>>* Hardcoding the range also does not work >>>loWorkBook.ActiveSheet.RANGE("M288").select >>>loExcel.ActiveCell.Value = "Hello" >>> >>>* Execute this code just to make sure there is a connection, and IT WORKS >>>lcTest = loWorkBook.ActiveSheet.RANGE("L288").VALUE >>>? lcTest >>> >>>loExcel.displayalerts = .F. >>>loExcel.QUIT() >>>RELEASE loExcel >>>loExcel = NULL >>>>>
>>loWorkbook.Sheets("28 Day").Cell(m.i, m.j).Value = ALLTRIM(STR(i)) >>>>
>lcSheet = "28 Day" >lcSheet = "Sheet1" > >lnColumn = 14 >FOR i = 288 TO 300 > *legRow = 'M' + ALLTRIM(STR(i)) > loWorkbook.Sheets(lcSheet).Cell(i, lnColumn).Value = ALLTRIM(STR(i)) > *loWorkBook.ActiveSheet.RANGE("&legRow").select > *loExcel.ActiveCell.Value = ALLTRIM(STR(i)) &&<--- This doesn't work >*!* loWorkBook.ActiveSheet.RANGE("&legRow").Value = ALLTRIM(STR(i)) &&<---- This doesn't work either >NEXT >>
>ActiveCell.Offset(0, -2).Value) >>