#include c:\reports\others\xl97cons.h >#define xltrue -1 >#define xlfalse 0 > >local oexcel, osheet >oexcel = createobject("Excel.Application") >oexcel.visible = 0 && for debugging >oexcel.workbooks.open("c:\exc\test.xls") >osheet = oexcel.activesheet >nline=2 >select t2 >scan > nline=nline+1 > iyear=int(t2.year) > icount=int(t2.count) > iall=int(t2.all) > osheet.cells(nline,2).value =iyear > osheet.cells(nline,3).value = icount > osheet.cells(nline,4).value = iall >endscan > >oexcel.visible = -1 && for debugging > >osheet.parent.saved = xltrue > >>Thanks
Create Cursor _sample (Year b(2),Count b(2),All b(2)) For ix = 1 To 10 Insert Into _sample Values ; (1997+m.ix,; Rand()*1000,; Rand()*1000) Endfor Local lcTemp lcTemp = Forcepath( Sys(2015)+'.txt',Sys(2023) ) Select Int(Year),Int(Count),Int(All) From _sample Into Cursor crsData Copy To (m.lcTemp) Type Delimited With Tab _Cliptext = "Year"+Chr(9)+"Count"+Chr(9)+"All"+Chr(13)+Filetostr(m.lcTemp) Erase (m.lcTemp) #include xlconstants.h Local oexcel oexcel = Createobject("Excel.Application") oexcel.workbooks.Add oexcel.Visible = .T. With oexcel.ActiveWorkBook.ActiveSheet .Range('B2').PasteSpecial oRange = .Application.Selection With oRange oChartRange = .Range(.Cells(0,1), .Cells(.Rows.Count-1, 2)) oLabelsRange = .Range(.Cells(1,0), .Cells(.Rows.Count-1, 0)) Endwith .ChartObjects.Add(200, 10, 300, 300) With .ChartObjects(1).Chart .SetSourceData(oChartRange, xlColumns) .hastitle = .T. .haslegend = .T. .ChartTitle.Caption = "My Custom Chart Title" .ChartType = xlColumnClustered .SeriesCollection(1).XValues = oLabelsRange Endwith EndwithIf you base your chart on a pivot table then you wouldn't need adjustments on ranges but simply provide new data for your pivot.