http://community.borland.com/homepages/dsp/newl/midxd60f.htm去看 去找 可能会有你需要的东西

解决方案 »

  1.   

    去看了,全是英文,找了一下,好象只有一个office的控件,我还不如直接看excel2000.pas来的直接,我刚才边问大家,边自己在找,找到了几个其它的,
      

  2.   

    创意就在眼前现在多个讨论区正同步讨论 用BORLAND工具开发具有创意的web应用程序 的话题,资料最全,新闻最新,见解百花齐放,创意就在眼前!
      
      主站点 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
      
      主题网络沙龙论坛联盟 
      
      宗旨:深入讨论本质,直面话题核心 
      运作:定时,多论坛集中讨论一个话题 
      描述:一些有意义的讨论,大家都希望以后能定期的出现,主题网络沙龙论坛就是为这个目的而成立的,每隔一个月或一周将以一个有意义的话题来作为主题,然后深入的讨论下去,为了能讨论的更深入,更透彻,所以采取论坛联盟同步讨论的方式
      

  3.   

    uses ComObj;procedure TForm1.Button1Click(Sender: TObject);
    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;
      

  4.   

    上面可以基本实现功能,但要写得漂亮、灵活你最好看看Excle中关于VB的Help.
      

  5.   

    你先把你要实现的功能录制成一个宏,然后将VB德宏代码转换成Delphi的格式就可以了!!!我用Excel出报表就是这样实现的!!!
      

  6.   

    to  Delphi_Li(Delphi Li) 
    请在概谈谈如何转换此类代码。
      

  7.   

    to tigerchina(张师天) 
    你的代码好使,我准备给分了,给分前,也请你谈一下如何转换vb与delphi代码的问题。
      

  8.   

    举个例子,下面的代码如何转成delphi的
        With ActiveChart.Axes(xlCategory)
            .HasMajorGridlines = False
            .HasMinorGridlines = False
        End With
        With ActiveChart.Axes(xlValue)
            .HasMajorGridlines = False
            .HasMinorGridlines = False
        End With
      

  9.   

    兄弟,你不会熬通宵了吧?注意张弛,保重身体。
    with ActiveChart.Axes(xlCategory) do
    begin
      HaHasMajorGridlines = False;
      HasMinorGridlines = False;
    end;
    xlCategory 等都是Excle自己定义的,你可以通过uses Excel2000(Delphi6)使用,也可以自己Import ActiveX后再uses。
      

  10.   

    to tigerchina(张师天) 
    另外请问为什么你的图是做为一张sheet页插入进来的,一个表里我能只一个图,你的例子是不是可以改一下,做为比如:定义一下图的大小等。
    我看到了一个例子,但用了一下不一定好使:
    //增加一个二维图
    achart:=asheet1.chartobjects.add(100,100,200,200)
    //给二维图赋值
    series:=achart.chart.seriescolleciton
    range:=sheet1!r2c3:r3c9;
    series.add(range,true);
    但不好使,不知道你以为如何。
    我已经在另一个帖子里给你加分了,这里也会加的,但我想问完几个问题然后再加。
      

  11.   

    作以下修改即可
      Excel.Visible := true;
      ChartObject := WorkSheet.ChartObjects.Add(100, 100, 200, 200);
      ChartObject.Chart.ChartType := $41;
      ChartObject.Chart.SetSourceData(WorkSheet.Range['A1:E2'], PlotBy:= 1);
      

  12.   

    to tigerchina(张师天) 
    能否留个邮箱以后多交流
      

  13.   

    教你一个最简单的,在Office 中使用录制宏,然后把你想要的东东做一次,再看宏代码就可以了
      

  14.   

    我在delphi6中使用了,但是你的后两个程序没有通过,不知道什么意思,错误如下:
    代码如下:
    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'
      

  15.   

    With  ActiveChart.Axes(xlCategory) do
       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;
      

  16.   

    uses Excel2000;ChartObject: Variant;
      

  17.   

    编译通过,但运行出错:提示为,oriant doesnot reference an automation object.并停在了:   chartobject:=worksheet.chartobjects.add(100,100,200,200);句子上,
    程序我改了一下,照着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;
      

  18.   

    worksheet:= Excel.Sheets.item['Sheet2']就行了
      

  19.   

    而且上面的程序除了HasTitle那一行不行外,其它的我都是在没uses excel2000或Import ActiveX的情况下运行成功。
      

  20.   

    chartobject.chart.setsourcedata(worksheet.range['b1:b5'],plotby:=1);要在HadTitle前。另附上全部源代码。unit Unit1;interfaceuses
      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;
      

  21.   

    tigerchina(张师天) 也包括其它几位兄弟:
    谢谢,讨论暂时告一段落,我这几天有事要外出,下个月中旬才能回来,先结分,回来再讨论,你的代码我试了,好使,只是第二次运行时就出错。多谢你对我的问题做出的精彩回答,如果觉得的分不够的话,再和我说,就在这个帖子里说就可以,因为我可能有一段时间不能上网
      

  22.   

    这段代码只是给个框架,框架里如何填东西还要靠你自己。
    譬如要能多次运行,需
      Excel := VarAsType(Excel, varEmpty);
      WorkBook := VarAsType(WorkBook, varEmpty);
      WorkSheet := VarAsType(WorkSheet, varEmpty);
      ChartObject := VarAsType(ChartObject, varEmpty);
      Excel.Quit;
      Excel := VarAsType(Excel , varEmpty);
      

  23.   

    这段代码只是给个框架,框架里如何填东西还要靠你自己。
    譬如要能多次运行,需
      Excel.Quit;
      Excel := VarAsType(Excel, varEmpty);
      WorkBook := VarAsType(WorkBook, varEmpty);
      WorkSheet := VarAsType(WorkSheet, varEmpty);
      ChartObject := VarAsType(ChartObject, varEmpty);