Welcome, Guest
Username: Password: Remember me
CodeTyphon MS Windows (Win7, Win8.x, Win10 and Win11) OS Development, discussions and problems
  • Page:
  • 1

TOPIC:

SpreadSheet add chart 4 hours 8 minutes ago #19552

  • Fernando Sandoval
  • Fernando Sandoval's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
  • Posts: 68
  • Thank you received: 0
Hi i tried to add chart on excell spreadsheet but i don't what i doing wrong don't show me nothing
please help me..

procedure TFormCharts.BtnToExcellClick(Sender: TObject);
Var I,s:integer;
    SourceSeries:TLIneSeries;
    MyWorkbook: TsWorkbook;
    MyWorksheet: TsWorksheet;
    ch: TsChart;
    cser: TsLineSeries;
    ser: TsChartSeries;
begin
   MyWorkbook := TsWorkbook.Create;
   MyWorkbook.SetDefaultFont('Calibri', 12);
   MyWorkbook.Options := MyWorkbook.Options + [boCalcBeforeSaving];
   For s:=0 to  Chart1.SeriesCount-1 do begin
     SourceSeries:=TLineSeries(ChartListbox1.Series);
     if( SourceSeries.Count > 0) then begin
      MyWorksheet := MyWorkbook.AddWorksheet('Datos '+inttostr(s+1));
      MyWorksheet.WriteText(0, 1, 'Axe X');
      MyWorksheet.WriteText(0, 2, 'Axe Y');
      ChartDataDb.Filtered:=false;
      ChartDataDb.Filter:='serie='+''+inttostr(s)+'';
      ChartDataDb.Filtered:=true;
      for i := 0 to SourceSeries.Count - 1 do  begin
         if(ChartDataDb.Locate('serie;id', VarArrayOf([s,i]),[loCaseInsensitive,loPartialKey])) then begin
           MyWorksheet.WriteNumber(i+1, 1, ChartDataDb.FieldByName('XValue').AsInteger); //  GetXValue(i));
           MyWorksheet.WriteNumber(i+1, 2, ChartDataDb.FieldByName('YValue').AsInteger);
         end;
      end;
      if( SourceSeries.Count > 0 ) then begin
        ch := MyWorkbook.AddChart(MyWorkSheet,200, 200, 4, 4);
        cser:= TsLineSeries.Create(ch);
        ch.Title.Caption := 'Graph '+inttostr(s+1);
        ch.Title.Font.Style := [fssBold];
        ch.Title.Font.Color := scBlue;
        cser.SetTitleAddr(1, 1);              
        cser.SetYRange(2, 2, 20, 2);     
        cser.SetXRange(1, 2, 20, 2);
        cser:=nil;
      end;
      ChartDataDb.Filtered:=false;
    end;

   end;
   MyWorkbook.WriteToFile(GetCurrentDir + '\testfrafica.xls', sfExcel8, true);
   MyWorkbook.Free;

end;

i attached information get from app and what i need to send to chart.. 
 
Attachments:

Please Log in or Create an account to join the conversation.

  • Page:
  • 1