http://community.borland.com/homepages/dsp/newl/midxd60f.htm去看 去找 可能会有你需要的东西
解决方案 »
- 为什么我在xp下编译的Delphi在98不能运行?急急急!!!拜托各位了!
- 广州程序员购买技术书籍大调查.
- 如何在delphi 7中编写通过代理下载文件的程序?(急急急……)
- Delphi6.0操作Word2000的奇怪问题
- 是谁说刘艺的Delphi6企业级解决方案这本书写的好的?害死我了!
- 如何读取Ini文件中的[小节名]到ComboBox当中
- 如何做到自定义后缀名的文件与自定义的应用程序关联
- 如何在delphi中打开指定的word文档!并判断如果系统装有word 则提示word 未安装,否则打开指定word文档!谢谢..
- 关于ADO的问题
- 请大家帮忙,想了一晚上!
- 请 halfdream(哈欠)兄进来领分
- sql语句能实现这样的功能吗?
主站点 http://systemer.51.net/cgi-bin/forums.cgi?forum=9
展现真实 http://games.cnhacker.org/forum/list.asp?boardid=71
SMILING电子小组 http://www.smiling.com.cn/group/homepage.ecgi?group_id=23227
主题网络沙龙论坛联盟
宗旨:深入讨论本质,直面话题核心
运作:定时,多论坛集中讨论一个话题
描述:一些有意义的讨论,大家都希望以后能定期的出现,主题网络沙龙论坛就是为这个目的而成立的,每隔一个月或一周将以一个有意义的话题来作为主题,然后深入的讨论下去,为了能讨论的更深入,更透彻,所以采取论坛联盟同步讨论的方式
var
Excel: Variant;
WorkBook: Variant;
WorkSheet: Variant;
begin
Excel :=CreateOleObject('Excel.Application');
WorkBook := Excel.Workbooks.Open(FileName :=
'E:\Program\DELPHI\MyDemo\ExcelChart\Book1.xls');
WorkSheet := Excel.Sheets.Item['Sheet1'];
WorkBook.Charts.Add;
WorkBook.ActiveChart.ChartType := $41;
WorkBook.ActiveChart.SetSourceData(WorkSheet.Range['A1:E2'], PlotBy:= 1);
Excel.Visible := true;
end;
请在概谈谈如何转换此类代码。
你的代码好使,我准备给分了,给分前,也请你谈一下如何转换vb与delphi代码的问题。
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
with ActiveChart.Axes(xlCategory) do
begin
HaHasMajorGridlines = False;
HasMinorGridlines = False;
end;
xlCategory 等都是Excle自己定义的,你可以通过uses Excel2000(Delphi6)使用,也可以自己Import ActiveX后再uses。
另外请问为什么你的图是做为一张sheet页插入进来的,一个表里我能只一个图,你的例子是不是可以改一下,做为比如:定义一下图的大小等。
我看到了一个例子,但用了一下不一定好使:
//增加一个二维图
achart:=asheet1.chartobjects.add(100,100,200,200)
//给二维图赋值
series:=achart.chart.seriescolleciton
range:=sheet1!r2c3:r3c9;
series.add(range,true);
但不好使,不知道你以为如何。
我已经在另一个帖子里给你加分了,这里也会加的,但我想问完几个问题然后再加。
Excel.Visible := true;
ChartObject := WorkSheet.ChartObjects.Add(100, 100, 200, 200);
ChartObject.Chart.ChartType := $41;
ChartObject.Chart.SetSourceData(WorkSheet.Range['A1:E2'], PlotBy:= 1);
能否留个邮箱以后多交流
代码如下:
var
Excel: Variant;
WorkBook: Variant;
WorkSheet: Variant;
begin
Excel :=CreateOleObject('Excel.Application');
WorkBook := Excel.Workbooks.Open(FileName :=
'd:\Book1.xls');
WorkSheet:= Excel.Sheets.Item['Sheet1'];
// WorkBook.Charts.Add;
ChartObject:=WorkSheet.ChartObjects.Add(100,100,200,200);
ChartObject.Chart.ChartType := $41;
ChartObject.Chart.SetSourceData(WorkSheet.Range['A1:E2'], PlotBy:= 1);
// WorkBook.ActiveChart.SetSourceData(WorkSheet.Range['A1:E2'], PlotBy:= 1);
With ActiveChart.Axes(xlCategory) do
begin
HasMajorGridlines := False;
HasMinorGridlines := False;
End;
With ActiveChart.Axes(xlValue) do
begin
HasMajorGridlines := False;
HasMinorGridlines := False;
End; Excel.Visible := true;
错误如下:
[Warning] Unit1.pas(37): Symbol 'ChartObject' is specific to a platform
[Error] Unit1.pas(37): Left side cannot be assigned to
[Error] Unit1.pas(37): Incompatible types: 'TGUID' and 'Variant'
[Warning] Unit1.pas(38): Symbol 'ChartObject' is specific to a platform
[Error] Unit1.pas(38): Object or class type required
[Warning] Unit1.pas(39): Symbol 'ChartObject' is specific to a platform
[Error] Unit1.pas(39): Object or class type required
[Error] Unit1.pas(39): Undeclared identifier: 'PlotBy'
[Error] Unit1.pas(39): 'END' expected but ')' found
[Error] Unit1.pas(41): ';' expected but 'WITH' found
[Error] Unit1.pas(43): Undeclared identifier: 'HasMajorGridlines'
[Error] Unit1.pas(44): Undeclared identifier: 'HasMinorGridlines'
[Error] Unit1.pas(45): '.' expected but ';' found
[Error] Unit1.pas(47): Identifier redeclared: 'Finalization'
[Warning] Unit1.pas(50): Text after final 'END.' - ignored by compiler
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
begin
HasMajorGridlines := False;
HasMinorGridlines := False;
End;
//这个地方不能这么写应该为
ActiveChart.Axes(xlCategory).HasMajorGridlines :=false;
ActiveChart.Axes(xlCategory).HasMinorGridlines :=false; //下面的你自己改
With ActiveChart.Axes(xlValue) do
begin
HasMajorGridlines := False;
HasMinorGridlines := False;
End; Excel.Visible := true;
程序我改了一下,照着VBA的一行一行改的,但没有来得及改完也提示出了上面的错:
var
Excel: Variant;
WorkBook: Variant;
WorkSheet: Variant;
chartobject: variant;
activechart:Tchart;
begin
Excel :=CreateOleObject('Excel.Application');
WorkBook := Excel.Workbooks.Open(FileName :=
'd:\Book1.xls');
// WorkSheet:= Excel.Sheets.Item['Sheet2'];
worksheet:= Excel.Sheets.item['Sheet2'].Select;
chartobject:=worksheet.chartobjects.add(100,100,200,200);
chartobject.chart.charttype:=$41;
chartobject.chart.setsourcedata(worksheet.range['b1:b5'],plotby:=1);end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComObj, AxCtrls, OleCtrls, Excel2000;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure DBGrid1EditButtonClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Excel: Variant;
WorkBook: Variant;
WorkSheet: Variant;
ChartObject: Variant;
Axis: Variant;
begin
Excel :=CreateOleObject('Excel.Application');
WorkBook := Excel.Workbooks.Open(FileName :=
'E:\Program\DELPHI\MyDemo\ExcelChart\Book1.xls');
WorkSheet := Excel.Sheets.Item['Sheet1'];
Excel.Visible := true;
ChartObject := WorkSheet.ChartObjects.Add(100, 100, 200, 200);
ChartObject.Chart.ChartType := $41;
ChartObject.Chart.SetSourceData(WorkSheet.Range['A1:E2']);
ChartObject.Chart.Axes(xlCategory, xlPrimary).HasTitle := False;
{ Workbook.Charts.Add;
WorkBook.ActiveChart.ChartType := $41;
WorkBook.ActiveChart.SetSourceData(WorkSheet.Range['A1:E2']);
WorkBook.ActiveChart.HasTitle := false;}
end;
谢谢,讨论暂时告一段落,我这几天有事要外出,下个月中旬才能回来,先结分,回来再讨论,你的代码我试了,好使,只是第二次运行时就出错。多谢你对我的问题做出的精彩回答,如果觉得的分不够的话,再和我说,就在这个帖子里说就可以,因为我可能有一段时间不能上网
譬如要能多次运行,需
Excel := VarAsType(Excel, varEmpty);
WorkBook := VarAsType(WorkBook, varEmpty);
WorkSheet := VarAsType(WorkSheet, varEmpty);
ChartObject := VarAsType(ChartObject, varEmpty);
Excel.Quit;
Excel := VarAsType(Excel , varEmpty);
譬如要能多次运行,需
Excel.Quit;
Excel := VarAsType(Excel, varEmpty);
WorkBook := VarAsType(WorkBook, varEmpty);
WorkSheet := VarAsType(WorkSheet, varEmpty);
ChartObject := VarAsType(ChartObject, varEmpty);