Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
Delphi 2009 Professional
|
Re: Excel Tabellen in Delphi
29. Okt 2006, 10:20
Zitat von Jürgen Thomas:
Steht in der von Jens angegebenen Hilfedatei wirklich nichts darüber, wie Makro-Befehle in Delphi umzusetzen sind?
Nein, das ist die VBA Hilfe Datei für Excel. Mann muss nur wissen wie man das in Delphi umsetzt. Dafür ist es zwingend notwenig (für mich) die Excel2000.pas oder ExcelXP.pas Sourcedatei zu haben um die Makrobefehle darin zu finden.
Ich habe mal versucht mit den Serverkomponenten ein Beispiel zu basteln (ich verwende gundsätzlich die frühe Bindung)
Delphi-Quellcode:
procedure TForm1.GenerateChart;
var
Cells : ExcelRange;
DataRange : ExcelRange;
ExcelChart : ChartObject;
Chart : _Chart;
begin
OpenExcel;
Try
ExcelApplication.Workbooks.Add(EmptyParam,FLCID);
ExcelWorkbook.ConnectTo(ExcelApplication.ActiveWorkBook);
ExcelWorksheet.ConnectTo(ExcelWorkbook.Sheets[1] as ExcelXP._WorkSheet);
ExcelChart:=(ExcelWorkSheet.ChartObjects as ChartObjects).Add(20,20,200,200);
ExcelChart.Name:='Chart1';
Chart:=ExcelChart.Chart;
Cells:=ExcelWorksheet.Cells;
Cells.Item[1,1]:='U1';
Cells.Item[1,2]:='U2';
Cells.Item[1,3]:='V1';
Cells.Item[1,4]:='V2';
Cells.Item[2,1]:='1';
Cells.Item[2,2]:='2';
Cells.Item[2,3]:='3';
Cells.Item[2,4]:='4';
DataRange:=Cells.Range['A1','D2'];
Chart.SetSourceData(DataRange,xlRows); // Hier gibt es eine Zugriffsverletzung
// ExcelChart.Chart.ChartType:=xlLine;
// Jetzt das Ergebnis speichern
ExcelWorkbook.SaveAs('c:\test.xls',EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
xlNoChange,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
FLCID);
Finally
CloseExcel;
end;
end;
Warum es zu der Zugriffsverletzung kommt weiss ich noch nicht.
I come from outer space to save the human race
|
|
Zitat
|