想在delph中进行excel相关的编程,请问哪有相关的参考手册下载?比如我想查sheet有些什么属性。

解决方案 »

  1.   

    装了office后,搜索vba,应该会找到象vbaxl9.chm的文件。
    有他就ok了!
      

  2.   

    你想用Excel做什么呢,常规应用如读写什么的,搜一下,论坛里有一大堆
      

  3.   

    http://rtdw.zj51.net/show.aspx?id=434&cid=42
    csdn,delphibbs等论坛里面有很多
      

  4.   

    我是需要一个在delph中控制excel的比较完整的参考手册,省得一碰到问题就到网上去搜,因为平时上网不方便。
    请问大家用delph编程时遇到excel方面的问题时查什么资料?还是都到网上去刨?
      

  5.   

    Function TForm1.CreateXLSfile(SourceFile: string;var Mdfile : String) : boolean;
    var
      MDSTR : String;
      I : integer;
      Scxls :  String;
    begin
      try
        MDSTR:=edit2.Text;
        i:=pos('\',MDSTR);
        if i>0 then
        begin
          Scxls:=copy(MDSTR,1+1,Length(MDSTR));
          delete(MDSTR,1+1,Length(MDSTR));
        end else
        begin
          Application.MessageBox('文件格式不正确!','提示',mb_ok+mb_iconinformation);
          Result:=false;
          exit;
        end;    i:=pos('.',Scxls);
        if i>0 then
          Delete(Scxls,i,Length(Scxls))
        else
        begin
          Application.MessageBox('文件格式不正确!','提示',mb_ok+mb_iconinformation);
          Result:=false;
          exit;
        end;    Scxls:=Scxls+'_'+Formatdatetime('yyyymmddhhmmss',now())+'.xls';
        MDSTR:=MDSTR+Scxls;
        Mdfile:=MDSTR;
        CopyFile(pchar(edit2.Text),pchar(MDSTR),True);
        result:=true;
      Except
        Result:=false;
      end;  
    end;Function TForm1.ConnectionExcelFile(Mdfile : String) : boolean;
    begin
    {  MdConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;'+
                                       'Data Source='+Mdfile+
                                       ';Mode=Read;Extended Properties=Excel 8.0;Persist Security Info=True;'+
                                       'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
                                       'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;'+
                                       'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+
                                       'Jet OLEDB:Global Bulk Transactions=1;'+
                                       'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;'+
                                       'Jet OLEDB:Encrypt Database=False;'+
                                       'Jet OLEDB:Don''t Copy Locale on Compact=False;'+
                                       'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';}
      try
        MdConnection1.Connected:=true;
        SourceConnection1.Connected:=true;
    //    MdTable2.TableName:=SourceTable1.TableName;
    //    MdTable2.Connection:=MdConnection1;
        SourceTable1.Active:=true;
    //    MdTable2.Active:=true;
        Result:=true;
      except
        application.MessageBox('连接失败','提示',mb_ok+mb_iconinformation);
        Result:=false;
      end;
    end;
      

  6.   

    SourceConnection1.Connected:=false;
      SourceConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";'+
                                          'Data Source='+Trim(Edit2.Text)+
                                          ';Mode=Read;Extended Properties=Excel 8.0;Persist Security Info=True';
      try
        SourceConnection1.Connected:=true;
        SourceTable1.Active:=true;
      except
        application.MessageBox('连接失败!','提示',mb_ok+mb_iconinformation);
        exit;
      end;
      

  7.   

    > 全面控制 Excel 
    > 首先?建 Excel ?象,使用ComObj:
    > var ExcelID: Variant;
    > ExcelID := CreateOleObject( 'Excel.Application' );
    > 1) ?示?前窗口:
    > ExcelID.Visible := True;
    > 2) 更改 Excel ???:
    > ExcelID.Caption := '?用程序?用 Microsoft Excel';
    > 3) 添加新工作簿:
    > ExcelID.WorkBooks.Add;
    > 4) 打?已存在的工作簿:
    > ExcelID.WorkBooks.Open( 'C:ExcelDemo.xls' );
    > 5) ?置第2?工作表?活?工作表:
    > ExcelID.WorkSheets[2].Activate;  
    > 或 
    > ExcelID.WorksSheets[ 'Sheet2' ].Activate;
    > 6) ??元格?值:
    > ExcelID.Cells[1,4].Value := '第一行第四列';
    > 7) ?置指定列的?度(?位:字符??),以第一列?例:
    > ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
    > 8) ?置指定行的高度(?位:磅)(1磅=0.035厘米),以第二行?例:
    > ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
    > 9) 在第8行之前插入分?符:
    > ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
    > 10) 在第8列之前?除分?符:
    > ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
    > 11) 指定?框??度:
    > ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    > 1-左    2-右   3-?    4-底   5-斜(  )     6-斜( / )
    > 12) 清除第一行第四列?元格公式:
    > ExcelID.ActiveSheet.Cells[1,4].ClearContents;
    > 13) ?置第一行字体?性:
    > ExcelID.ActiveSheet.Rows[1].Font.Name := '??';
    > ExcelID.ActiveSheet.Rows[1].Font.Color  := clBlue;
    > ExcelID.ActiveSheet.Rows[1].Font.Bold   := True;
    > ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
    > 14) ?行?面?置:
    > a.?眉:
    >     ExcelID.ActiveSheet.PageSetup.CenterHeader := '?表演示';
    > b.??:
    >     ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P?';
    > c.?眉到?端?距2cm:
    >     ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
    > d.??到底端?距3cm:
    >     ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
    > e.??距2cm:
    >     ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;
    > f.底?距2cm:
    >     ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
    > g.左?距2cm:
    >     ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
    > h.右?距2cm:
    >     ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;
    > i.?面水平居中:
    >     ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
    > j.?面垂直居中:
    >     ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
    > k.打印?元格网?:
    >     ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
    > 15) 拷?操作:
    > a.拷?整?工作表:
    >     ExcelID.ActiveSheet.Used.Range.Copy;
    > b.拷?指定?域:
    >     ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;
    > c.?A1位置?始粘?:
    >     ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
    > d.?文件尾部?始粘?:
    >     ExcelID.ActiveSheet.Range.PasteSpecial;
    > 16) 插入一行或一列:
    > a. ExcelID.ActiveSheet.Rows[2].Insert;
    > b. ExcelID.ActiveSheet.Columns[1].Insert;
    > 17) ?除一行或一列:
    > a. ExcelID.ActiveSheet.Rows[2].Delete;
    > b. ExcelID.ActiveSheet.Columns[1].Delete;
    > 18) 打印??工作表:
    > ExcelID.ActiveSheet.PrintPreview;
    > 19) 打印?出工作表:
    > ExcelID.ActiveSheet.PrintOut;
    > 20) 工作表保存:
    > if not ExcelID.ActiveWorkBook.Saved then
    >    ExcelID.ActiveSheet.PrintPreview;
    > 21) 工作表另存?:
    > ExcelID.SaveAs( 'C:ExcelDemo1.xls' );
    > 22) 放?存?:
    > ExcelID.ActiveWorkBook.Saved := True;
    > 23) ??工作簿:
    > ExcelID.WorkBooks.Close;
    > 24) 退出 Excel:
    > ExcelID.Quit;
      

  8.   


    16) 插入一行或一列:
    a. ExcelApp.ActiveSheet.Rows[2].Insert;
    b. ExcelApp.ActiveSheet.Columns[1].Insert;17) 删除一行或一列:
    a. ExcelApp.ActiveSheet.Rows[2].Delete;
    b. ExcelApp.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:
    ExcelApp.ActiveSheet.PrintPreview;19) 打印输出工作表:
    ExcelApp.ActiveSheet.PrintOut;20) 工作表保存:
    if not ExcelApp.ActiveWorkBook.Saved then
       ExcelApp.ActiveSheet.PrintPreview;21) 工作表另存为:
    ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:
    ExcelApp.ActiveWorkBook.Saved := True;23) 关闭工作簿:
    ExcelApp.WorkBooks.Close;24) 退出 Excel:
    ExcelApp.Quit;(二) 使用Delphi 控件方法
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 1)  打开Excel 
    ExcelApplication1.Connect;2) 显示当前窗口:
    ExcelApplication1.Visible[0]:=True;3) 更改 Excel 标题栏:
    ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';4) 添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
     
    5) 添加新工作表:
    var Temp_Worksheet: _WorkSheet;
    begin
    Temp_Worksheet:=ExcelWorkbook1.
    WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
    ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
    End;
     
    6) 打开已存在的工作簿:
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
        EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)7) 设置第2个工作表为活动工作表:
    ExcelApplication1.WorkSheets[2].Activate;  或
    ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;8) 给单元格赋值:
    ExcelApplication1.Cells[1,4].Value := '第一行第四列';9) 设置指定列的宽度(单位:字符个数),以第一列为例:
    ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米11) 在第8行之前插入分页符:
    ExcelApplication1.WorkSheets[1].Rows[8].PageBreak := 1;12) 在第8列之前删除分页符:
    ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;13) 指定边框线宽度:
    ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )14) 清除第一行第四列单元格公式:
    ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;15) 设置第一行字体属性:
    ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书';
    ExcelApplication1.ActiveSheet.Rows[1].Font.Color  := clBlue;
    ExcelApplication1.ActiveSheet.Rows[1].Font.Bold   := True;
    ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;16) 进行页面设置:
     a.页眉:
        ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示';
    b.页脚:
        ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页';
    c.页眉到顶端边距2cm:
        ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
    d.页脚到底端边距3cm:
        ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
    e.顶边距2cm:
        ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
    f.底边距2cm:
        ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
    g.左边距2cm:
        ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
    h.右边距2cm:
        ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
    i.页面水平居中:
        ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
    j.页面垂直居中:
        ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
    k.打印单元格网线:
        ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;17) 拷贝操作:a.拷贝整个工作表:
        ExcelApplication1.ActiveSheet.Used.Range.Copy;b.拷贝指定区域:
        ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:
        ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;d.从文件尾部开始粘贴:
        ExcelApplication1.ActiveSheet.Range.PasteSpecial;18) 插入一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
    b. ExcelApplication1.ActiveSheet.Columns[1].Insert;19) 删除一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
    b. ExcelApplication1.ActiveSheet.Columns[1].Delete;20) 打印预览工作表:
    ExcelApplication1.ActiveSheet.PrintPreview;21) 打印输出工作表:
    ExcelApplication1.ActiveSheet.PrintOut;22) 工作表保存:
    if not ExcelApplication1.ActiveWorkBook.Saved then
       ExcelApplication1.ActiveSheet.PrintPreview;23) 工作表另存为:
    ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );24) 放弃存盘:
    ExcelApplication1.ActiveWorkBook.Saved := True;25) 关闭工作簿:
    ExcelApplication1.WorkBooks.Close;26) 退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;(三) 使用Delphi 控制Excle二维图
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet
    var asheet1,achart, range:variant;1)选择当第一个工作薄第一个工作表
    asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];2)增加一个二维图
    achart:=asheet1.chartobjects.add(100,100,200,200);3)选择二维图的形态
    achart.chart.charttype:=4;4)给二维图赋值
    series:=achart.chart.seriescollection;
    range:=sheet1!r2c3:r3c9;
    series.add(range,true);
     
    5)加上二维图的标题
    achart.Chart.HasTitle:=True;
    achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’          6)改变二维图的标题字体大小
    achart.Chart.ChartTitle.Font.size:=6;7)给二维图加下标说明
    achart.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := '下标说明';8)给二维图加左标说明
    achart.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := '左标说明';9)给二维图加右标说明
    achart.Chart.Axes(xlValue, xlSecondary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text := '右标说明';10)改变二维图的显示区大小
    achart.Chart.PlotArea.Left := 5;
    achart.Chart.PlotArea.Width := 223;
    achart.Chart.PlotArea.Height := 108;11)给二维图坐标轴加上说明
    achart.chart.s
      

  9.   

    自由界面和报表的完美解决方案!
    http://www.anylib.com
      

  10.   

    多谢Mrkang(谁比我菜我不愿意) !但我更想知道你这些东些时从哪儿查到的。谢谢!
      

  11.   

    他是从别人的回答中COPY过来的
      

  12.   

    有谁知道原始资料来源吗?总不能大家都是copy的吧,应该有原创才对啊!
      

  13.   

    其实你可以在EXCEL中用宏把操作录下来,然后参考VBA代码,方法啊什么的名称应该差不多的。
    在DELPHI里可以导入EXCEL的类型库,这样就可以看到EXCEL的接口中提供的所有属性方法了。VC6里也有相关的工具,好像叫Type Library什么的,可以看到COM组件接口的定义的
      

  14.   

    多谢tjianliang(乡关何处)!能不能再具体一点,我实在是没有一点相关的经验。
      

  15.   

    看来大家都不知道原始资料从哪里来,还是问一个具体的问题吧。本来是想找参考手册自己解决的!我在程序中这样赋值
    ExcelApplication1.Cells[1,4].Value := '2/45';
    结果在excel中显示为"Feb-45",居然“智能”的给我转换成了2月45号!真牛!
    请问各位怎么才能解决这个问题?
      

  16.   

    kmwy(追而不求):
    设置单元格格式为文本就可以了 NumberFormatLocal = "@"
    1、Excel中宏的录制
      工具,宏,录制新宏,宏名顺便起一个;以上面的设置单元格格式为文本作为例子,就是选中你要设置格式的单元格或区域,右键,设置单元格格式,数字页中选择“文本”,确定;再到工具,宏,打开VB编辑器,在模块里头就可以看到刚才所做的操作的宏了。
    2、Delphi中导入Excel的类型库
    Project,Import Type Library,在列表里选中类型库,如果是Excel 2000应该叫Microsoft Excel 9.0 Object Library,Create Unit就会生成类型库的Delphi Wrapper。这样Excel的接口中提供的所有属性方法都能看到了。