程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何在Delphi中操作Excel

如何在Delphi中操作Excel

編輯:Delphi
在數據庫應用軟件的開發過程中,經常需要把數據轉換成Excel文件,讓用戶作進一步的數據處理。而Delphi是開發數據庫應用系統的常用工具,那麼,如何在Delphi中操作Excel呢?

  我們知道,在Microsoft Office軟件中有一種內嵌的編程語言VBA,它是一種宏語言,利用它,你可以編寫出功能強大的代碼,如打開文件、修改數據、保存數據和設置字體等。另一方面,Microsoft Office軟件中的宏能以VBA代碼的形式記錄下你的操作過程。因此借助宏操作,可以很輕松地實現某一功能,並把這些代碼稍作修改嵌入到你的軟件中。但是VBA也存在一個缺點,它必須有Microsoft Office作平台,在哪裡編寫,必須在哪裡執行。例如在Excel下編寫的一段VBA代碼,則它只有在Excel下才能運行。因此,筆者的方法就是把VBA代碼嵌入到Delphi中,從而實現用Delphi操作Excel。
  下面,我們以Delphi程序為例,說明這種調用方法:

  Unit Excel;

  interface

  uses

  Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs, StdCtrls,ComObj;

  //ComObj是操作OLE對象的函數集

  type TForm1 =class(TForm)

  Button1: TButton;

  procedure Button1Click(Sender: TObject);

  private

  { Private declarations }

  public

  { Public declarations }

  end;

  var

  Form1: TForm1;

  implementation

  {$R *.DFM}

  procedure TForm1.Button1Click(Sender: TObject);

  var

  eclApp,WorkBook:Variant;

  //聲明為OLE Automation 對象

  xlsFileName:string;begin

  xlsFileName:=‘ex.xls‘;

  try

  //創建OLE對象Excel Application與 WorkBook

  eclApp:=CreateOleObject(‘Excel.Application‘);

  WorkBook:=CreateOleobject(‘Excel.Sheet‘);

  except

  ShowMessage(‘您的機器裡未安裝Microsoft Excel。‘);

  Exit;

  end;

  try

  ShowMessage(‘下面演示:新建一個XLS文件,並寫入數據,最後關閉它。‘);

  workBook:=eclApp.workBooks.Add;

  eclApp.Cells(1 , 1):=‘字符型‘;

  eclApp.Cells(2 , 1):=‘Excel文件‘;

  eclApp.Cells(1 , 2):=‘Money型‘;

  eclApp.Cells(2 , 2):=10.01;

  eclApp.Cells(1 , 3):=‘日期型‘;eclApp.Cells(2 , 3):=Date;

  WorkBook.saveas(xlsFileName);

  WorkBook.close;

  ShowMessage(‘下面演示:打開剛創建的XLS文件,並修改其中的內容,然後,由用戶決定是否保存。‘);

  WorkBook:=eclApp.workBooks.Open(xlsFileName);

  eclApp.Cells(2 , 1):=‘Excel文件類型‘;

  if MessageDlg(xlsFileName+‘文件已被修改,是否保存?‘,mtConfirmation, [mbYes, mbNo], 0) = mrYes then

  WorkBook.save

  else

  workBook.Saved := True; //放棄修改

  WorkBook.Close;

  eclApp.Quit;

  //退出Excel Application

  //釋放VARIANT變量

  eclApp:=Unassigned;

  except

  ShowMessage(‘不能正確操作Excel文件。可能是該文件已被其他程序打開, 或系統錯誤。‘);

  WorkBook.close;

  eclApp.Quit;

  //釋放VARIANT變量

  eclApp:=Unassigned;

  end;

  end;

  end.

  經過上述操作過程後,我們就可以很放心地將數據庫中的數據轉換成Excel文件了。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved