A
AthlonXP
Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的:
我想在excel中生成一个XY散点图然后把这个散点图拷贝成一个BMP格式的图。利用DFW上大家的讨论,我已经能够生成相应的散点图了,但在把散点图拷贝成BMP时出了问题,BMP中只有XY轴没有数据点。该怎么办呢?有兴趣的不妨把我的代码自己运行一下,看问题出在哪。
Var
V,TempC,:Variant;
Sheet: Variant;
begin
I:integer;
begin
try
v:= CreateOleObject('Excel.Application');
v.Workbooks.Add;
Tempc:=v.Sheets[1].chartobjects.add(10, 40, 300, 180);
v.Sheets[1].chartobjects[1].chart.charttype:= 63;
Tempc.chart.SeriesCollection.NewSeries;
Tempc.chart.SeriesCollection(1).XValues := '=Sheet1!R1C1:R12C1';
Tempc.chart.SeriesCollection(1).Values := '=Sheet1!R1C2:R12C2';
v.Sheets[1].chartobjects[1].chart.charttype:= 73;
tempc.chart.HasLegend := False;
tempc.chart.HasTitle := True;
tempc.chart.ChartTitle.Characters.Text:=('Cgg-Vgs');
tempc.chart.ChartTitle.Characters.Font.size:=12;
tempc.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
tempc.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := 'Cgg';
tempc.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.font.size := 10;
tempc.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
tempc.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := 'Vgs';
tempc.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.font.size := 10;
tempc.Chart.PlotArea.Left := 20;
tempc.Chart.PlotArea.Top := 15;
tempc.Chart.PlotArea.Width := 250;
tempc.Chart.PlotArea.Height := 120;
tempc.chart.PlotArea.ClearFormats;
tempc.chart.Axes(xlCategory).TickLabels.font.size:=9;
tempc.chart.Axes(xlValue).TickLabels.font.size:=9;
tempc.chart.SeriesCollection(1).Border.Color := RGB(255, 0, 0);
//
tempc.Copypicture(xlscreen,xlbitmap);
v.Sheets[1].paste;
//上面这两句不知道能不能改,但我在VBA下是可以用的啊。
v.Workbooks[1].WorkSheets['Sheet1'].Name := 'DELPHI';
Sheet:= v.Workbooks[1].WorkSheets['DELPHI'];
for I:=1 to 20 do
begin
Sheet.Cells[I,1] :=IntToStr(I);
Sheet.Cells[I,2] :=FloatToStr(0.34*I*I+0.25*I+4.33);
end;
v.sheets['DELPHI'].Activate;
v.Visible := CheckBox1.Checked;
except
Showmessage('Excel wrong');
v.DisplayAlerts := false;
v.Quit;
close;
end;
我想在excel中生成一个XY散点图然后把这个散点图拷贝成一个BMP格式的图。利用DFW上大家的讨论,我已经能够生成相应的散点图了,但在把散点图拷贝成BMP时出了问题,BMP中只有XY轴没有数据点。该怎么办呢?有兴趣的不妨把我的代码自己运行一下,看问题出在哪。
Var
V,TempC,:Variant;
Sheet: Variant;
begin
I:integer;
begin
try
v:= CreateOleObject('Excel.Application');
v.Workbooks.Add;
Tempc:=v.Sheets[1].chartobjects.add(10, 40, 300, 180);
v.Sheets[1].chartobjects[1].chart.charttype:= 63;
Tempc.chart.SeriesCollection.NewSeries;
Tempc.chart.SeriesCollection(1).XValues := '=Sheet1!R1C1:R12C1';
Tempc.chart.SeriesCollection(1).Values := '=Sheet1!R1C2:R12C2';
v.Sheets[1].chartobjects[1].chart.charttype:= 73;
tempc.chart.HasLegend := False;
tempc.chart.HasTitle := True;
tempc.chart.ChartTitle.Characters.Text:=('Cgg-Vgs');
tempc.chart.ChartTitle.Characters.Font.size:=12;
tempc.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
tempc.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := 'Cgg';
tempc.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.font.size := 10;
tempc.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
tempc.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := 'Vgs';
tempc.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.font.size := 10;
tempc.Chart.PlotArea.Left := 20;
tempc.Chart.PlotArea.Top := 15;
tempc.Chart.PlotArea.Width := 250;
tempc.Chart.PlotArea.Height := 120;
tempc.chart.PlotArea.ClearFormats;
tempc.chart.Axes(xlCategory).TickLabels.font.size:=9;
tempc.chart.Axes(xlValue).TickLabels.font.size:=9;
tempc.chart.SeriesCollection(1).Border.Color := RGB(255, 0, 0);
//
tempc.Copypicture(xlscreen,xlbitmap);
v.Sheets[1].paste;
//上面这两句不知道能不能改,但我在VBA下是可以用的啊。
v.Workbooks[1].WorkSheets['Sheet1'].Name := 'DELPHI';
Sheet:= v.Workbooks[1].WorkSheets['DELPHI'];
for I:=1 to 20 do
begin
Sheet.Cells[I,1] :=IntToStr(I);
Sheet.Cells[I,2] :=FloatToStr(0.34*I*I+0.25*I+4.33);
end;
v.sheets['DELPHI'].Activate;
v.Visible := CheckBox1.Checked;
except
Showmessage('Excel wrong');
v.DisplayAlerts := false;
v.Quit;
close;
end;