> >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 >************************************************** > >>
>>>>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) >>>>