恳请大侠解决有关EXCEL图表的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 zyh16821cn
  • 开始时间 开始时间
Z

zyh16821cn

Unregistered / Unconfirmed
GUEST, unregistred user!
在DELPHI7用SERVERS控件ExcelApplication,ExcelWorkBook,ExcelWorkSheet
图表的其它属性能获取/调用,但下列属性实在是不知道该如何调用:
1。图表的数据源区域
2。数据标志
3。图表中附带的数据表的显示、图例项标识
4。 .HasAxis(xlCategory) = True
.HasAxis(xlSeries) = False
.HasAxis(xlValue) = True
这些也不知道如何调用
[DELPHI7对EXCEL的大部分属性竟然不支持提示,是版本的原因还是操作上的错误?]
 
在DELPHI7用SERVERS控件ExcelApplication,ExcelWorkBook,ExcelWorkSheet
图表的其它属性能获取/调用,但下列属性实在是不知道该如何调用:
1。图表的数据源区域
2。数据标志
3。图表中附带的数据表的显示、图例项标识
4。 .HasAxis(xlCategory) = True
.HasAxis(xlSeries) = False
.HasAxis(xlValue) = True
这些也不知道如何调用
[DELPHI7对EXCEL的大部分属性竟然不支持提示,是版本的原因还是操作上的错误?]
 
用点力,顶一顶......
 
麻烦大家帮我顶一顶
嘿~哟~嘿~哟
 
To Be Continued......
 
好心人,拉我一把吧
 
改用OLE调用EXCEL
 
改用OLE调用就能使用上述的属性还是就可以有属性下拉提示?
请提示,谢谢
 
应该有不少人做过这方面的问题吧
 
继续等待.......
 
Var ExcelApp,WorkBook,ThisSheet,Cell1,Cell2,Range,ExcelChart1:Variant;
建立Excel对象:ExcelApp := CreateOleObject( 'Excel.Application' );
建立工作区:WorkBook:=CreateOleObject('Excel.Sheet');
WorkBook:=ExcelApp.WorkBooks.Add;
ExcelApp.WorkBooks.Item[1].Activate;
ThisSheet:=ExcelApp.ActiveSheet;
给单元格赋值:
for i:=1 to 10 do
begin
ThisSheet.Cells[1,i]:=random(100);
end;
指定起始/结束单元格:
Cell1:=ThisSheet.Cells[1,1];
Cell2:=ThisSheet.Cells[1,10];
生成图表:
ExcelChart1:=
ThisSheet.ChartObjects.Add(0,200,300,300); //Left,Top,Width,Height
ExcelChart1.Chart.ChartType:=xlLineMarkers; //样式
Range:=ThisSheet.Range[Cell1,Cell2]; //指定范围
ExcelChart1.Chart.seriescollection.ADD[Range];//关键的一句
ExcelChart1.Chart.HasTitle:=True;
ExcelChart1.Chart.ChartTitle.Characters.Text:='图表题目';
ExcelChart1.Chart.Axes(xlCategory,xlPrimary).HasTitle:=True;
ExcelChart1.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:='Left';
ExcelChart1.Chart.Axes(xlValue,xlPrimary).HasTitle:=True;
ExcelChart1.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text:='Bottom';
ExcelChart1.Chart.HasLegend:=false;
 
uses ComObj;
var
XlsApp, XlsWorkbook, XlsWorksheet, XlsChart: OleVariant;
I: Integer;
begin
try
XlsApp := CreateOleObject('Excel.Application');
XlsWorkbook := XlsApp.WorkBooks.Add;
XlsWorksheet := XlsApp.ActiveSheet;
//你在这里向 Excel 中填写数据,这里就随便填些数据
for I := 1 to 4 do
begin
XlsWorksheet.Cells[I, 4].Value := IntToStr(I + 4);
XlsWorksheet.Cells[5, I].Value := IntToStr(I);
end;
XlsChart := XlsWorksheet.ChartObjects.Add(0, XlsWorksheet.Range['A1'].Top + 1, 253, 189).Chart;
XlsChart.ChartType := $00000036; //3D直方图
XlsChart.RightAngleAxes := True; //直角坐标
//下面这句是设定图表的 y 轴值从哪里取,不写这句甭画图了。这里假设取第 4 列前 4 个数据
XlsChart.SetSourceData(XlsWorksheet.Range['D1:D4'], 2);
//下面这句是设定图表的 x 轴值从哪里取,这里假设取第 5 行前 4 个数据
XlsChart.SeriesCollection(1).XValues := '=Sheet1!R5C1:R5C4';
XlsChart.ChartArea.Border.LineStyle := 0;
XlsChart.ChartArea.Font.Size := 10;
XlsChart.Axes(1).TickLabelSpacing := 1;
XlsChart.HasLegend := False;
XlsChart.HasTitle := False;
XlsChart.Axes(1).HasTitle := True;
XlsChart.Axes(1).AxisTitle.Characters.Text := '直方图';
XlsApp.Visible := True;
except
XlsApp.Quit;
end;
end;
 
我的是工作表里已有图表了。
可是在DELPHI7调用excelworksheet1.chartobjects(1).chart.seriescollection(1).xvalues时的各种形式时都出错:Invalid variant Operation

我都快搞疯了,再给我点一点吧
 
不是给你答案了么,你就非得用 Delphi 给的控件。
 
老兄,关键我是要取得已有图表的数据源区域,好象跟数据源的赋值不相同呀,
另外,2。数据标志
3。图表中附带的数据表的显示、图例项标识
也不知道如何调用?
麻烦再出一次手,先谢了
 
老兄,关键我是要取得已有图表的数据源区域,好象跟数据源的赋值不相同呀,
另外,2。数据标志
3。图表中附带的数据表的显示、图例项标识
也不知道如何调用?
麻烦再出一次手,先谢了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
I
回复
0
查看
610
import
I
后退
顶部