-
Доброго времени суток! Не работал ли кто с добавлением графиков в Power Point? Задача состоит в создании графиков в самом Power Point. В принципе, добавить диаграмму как OLE-объект можно PowerPointSlide1.Shapes.AddOLEObject(350,200,300,300,'MSGraph.Chart','',0,'',-1,'',0); Но дальше у меня ступор - нужно добавить данные, изменить тип диаграммы. Работаю с компонентами вкладки Servers, Delphi 7. Заранее спасибо за ответ!
-
Удалено модератором Примечание: Правила читаем
-
Здесь представлен код для 2х кнопок, вторая кнопка создает скрин графика (в моем случае диаграммы), первая кнопка берет полученное изображение и пересылает его в powerPoint unit Unit13;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DbChart, Grids,
DBGrids, DB, DBClient, StdCtrls, comobj, PowerPointXP, OleServer, ExtDlgs;
type
TForm13 = class(TForm)
DBChart1: TDBChart;
Series1: TPieSeries;
DBGrid2: TDBGrid;
ClientDataSet2: TClientDataSet;
DataSource2: TDataSource;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form13: TForm13;
implementation
procedure TForm13.Button1Click(Sender: TObject);
var PPT,Presentation,CurrentSlide,ShapeText,ShapeLabel:variant;
Bmp: TBitmap;
begin
PPT:=CreateOleObject('PowerPoint.Application');
Presentation:=PPT.Presentations.add;
CurrentSlide:=Presentation.Slides.Add(1, 12);
ShapeLabel:=CurrentSlide.Shapes.AddLabel(1, 40, 40,400, 100);
ShapeLabel.TextFrame.TextRange.Text:='Niioiioaiea ?aineiai e io?neiai ia?niiaea';
PPT.AddPicture('d:\image.gif').Select
PPT.Selection.Unselect
end;
procedure TForm13.Button2Click(Sender: TObject);
var Bmp: TBitmap;
begin
Bmp:=TBitmap.Create;
DBChart1.Draw(Bmp.Canvas,Rect(0,0,DBChart1.Width,DBChart1.Height));
DBChart1.SaveToBitmapFile('d:\image.gif');
end;
end.
-
PSli1.Shapes.AddOLEObject(0, 226.62, 255, 311.75, 'MSGraph.Chart.8','',0,'',0,'',0); Shape := PSli1.Shapes.Item(PSli1.Shapes.Count); Chart := Shape.OLEFormat.Object_; Chart.ChartType := 54; Chart.Application.DataSheet.Activate; Chart.ChartArea.Font.Bold := False; Chart.Application.DataSheet.Cells.Clear; Chart.Application.DataSheet.Cells[2, 1].Value := 'cost';
-
Chart : OLEVariant; ;о)
|