Online Service 在线服务
New Articles 最新更新
Hot Articles 热点文章
Google 广告
首页 … 技术文档 Technical Articles
利用Delphi5.0提供的Servers栏控件可以很容易开发OLE自动化控制器
(时间:2007-6-18 13:21:25 共有 人次浏览)
  使用Delphi   5.0最新提供的Servers栏控件可以很容易开发OLE自动化控制器实现对OLE自动化服务器的调用,发挥Word、Excel、Powerpoint的强大功能,从而起到在自己程序中操纵Office   的目的,以下是操纵Excel的几个简单的操作,如有疑问,可来信询问。  
   
   
  方法如下:  
   
  1、创建一个普通Application。    
   
  2、在Form中分别放入ExcelApplication,   ExcelWorkbook和ExcelWorksheet。    
   
  3、对Excel的一些操作,具体方法如下:    
   
  【打开Excel97】  
      ExcelApplication1.Connect;  
      ExcelApplication1.Visible[0]:=True;  
   
   
  【增加一个Workbook】  
      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));  
   
   
  【添加一个Worksheet】  
    var  Temp_Worksheet:   _WorkSheet;  
    begin  
      Try  
        Temp_Worksheet:=ExcelWorkbook1.  
        WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)   as   _WorkSheet;//(注意)  
        ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);  
      Except  
        ShowMessage('Failure');  
      End;  
    end;  
   
   
  【关闭Excel】  
      ExcelApplication1.Quit;  
      ExcelWorksheet1.Disconnect;  
      ExcelWorkbook1.Disconnect;  
      ExcelApplication1.Disconnect;  
   
   
  【选择当前Workbook的某一Worksheet】  
    procedure   TForm1.ComboBox1DropDown(Sender:   TObject);  
    var  
      i:   Integer;  
    begin  
      ComboBox1.Clear;  
      For   i:=1   to   ExcelWorkbook1.Worksheets.Count   do  
        ComboBox1.Items.Add((ExcelWorkbook1.Worksheets.Item[i]   as   _WorkSheet).Name);  
    end;  
   
    procedure   TForm1.ComboBox1Change(Sender:   TObject);  
    begin  
      ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item   [ComboBox1.ItemIndex+1]   as   _WorkSheet);  
      ExcelWorkSheet1.Activate;  
    end;  
   
  【选择某一Workbook】  
    procedure   TForm1.ComboBox2DropDown(Sender:   TObject);  
    var  
      i:   Integer;  
    begin  
      ComboBox2.Clear;  
      if   ExcelApplication1.Workbooks.Count   >0   then  
      For   i:=1   to   ExcelApplication1.Workbooks.Count   do  
      Combobox2.Items.Add(ExcelApplication1.Workbooks.Item[i].Name);  
    end;  
   
    procedure   TForm1.ComboBox2Change(Sender:   TObject);  
    begin  
      ExcelWorkSheet1.Disconnect;  
      ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[Combobox2.ItemIndex+1]);  
      ExcelWorkBook1.Activate;  
      ExcelWorksheet1.ConnectTo(ExcelWorkBook1.ActiveSheet   as   _WorkSheet);  
      ExcelWorkSheet1.Activate;  
    end;  
   
  【对某一单元格进行赋值及取值】  
    procedure   TForm1.Button5Click(Sender:   TObject);  
    begin  
      ExcelWorksheet1.Cells.Item[SpinEdit2.Value,SpinEdit1.Value]:=Edit1.Text;  
    end;  
   
    procedure   TForm1.Button6Click(Sender:   TObject);  
    begin  
      Edit1.Text:=ExcelWorksheet1.Cells.Item[SpinEdit2.Value,SpinEdit1.Value];  
    end;  
   
  【选择某一区域】  
    ExcelWorkSheet1.Range['A1','C1'].Select;  
   
  【打开一个Excel文件】  
    if   OpenDialog1.Execute   then  
    Begin  
        ExcelWorkBook1.ConnectTo(  
           ExcelApplication1.Workbooks.Open(  
              OpenDialog1.FileName,EmptyParam,EmptyParam,EmptyParam,  
              EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,  
              EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));  
        ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet   as   _Worksheet);  
    End;  
   
   
  【存入一个Excel文件】  
    procedure   TForm1.button6Click(Sender:   TObject);  
    var  
      i,row,column:integer;  
    begin  
      Try  
        ExcelApplication1.Connect;  
      Except  
        MessageDlg('Excel   may   not   be   installed',mtError,   [mbOk],   0);  
        Abort;  
      End;  
      ExcelApplication1.Visible[0]:=True;  
      ExcelApplication1.Caption:='Excel   Application';  
      ExcelApplication1.Workbooks.Add(Null,0);  
      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);  
      ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]   as   _Worksheet);  
      Table1.Open;  
      row:=1;  
      While   Not(Table1.Eof)   do  
      begin  
        column:=1;  
        for   i:=1   to   Table1.FieldCount   do  
        begin  
          ExcelWorksheet1.Cells.Item[row,column]:   =Table1.fields[i-1].AsString;  
          column:=column+1;  
        end;  
        Table1.Next;  
        row:=row+1;  
      end;  
    End;  
   
  【打印预览一个Excel文件】  
    procedure   TForm1.Button7Click(Sender:   TObject);  
    begin  
      ExcelWorksheet1.PrintPreview;  
    end;  
   
  【打印一个Excel文件】  
    procedure   TForm1.Button8Click(Sender:   TObject);  
    begin  
      ExcelWorksheet1.PrintOut;  
    end;  
   
   
  【说明】  
    这些程序在Win98+Delphi   5+Excel   97下运行通过。这些例子还可以作适当的扩充,如DDE、执行宏调用、保存文件、打印文件及对Excel的设置等,其具体的实现及设置方法请参阅Microsoft   Excel   Visual   Basic参考中的Microsoft   Excel对象。       
   
打印 【打印该页】 【关闭窗口

此技术资料来自网络,仅供参考。未经许可,不得转载。
若有侵权,请及时与我们取得联系!
FAQS 常见问题
Consultation 即时咨询
Contact Us 联系我们