Delphi操作Excel數據

職場菊菊子 2024-04-13 21:11:24

之前的文章有介紹如何使用C#讀取WPS文件。今天講講如何在Delphi中讀取WPS。

獲取WPS邏輯

Delphi中操作WPS,可以使用OLE對象提供的方法,GetActiveOleObject用于獲取打開的OLE對象,CreateOleObject則用于新建OLE對象。如果當前OLE存在,則使用GetActiveOleObject獲取,否則使用CreateOleObject新建。

界面設計

時間倉促,界面設計很簡單,只有一個按鈕。

效果展示

實現代碼unit wps_app;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ComObj;type TForm1 =(TForm) Test: TButton; procedure TestClick(Sender: TObject); function GetOrCreateExcel:Variant; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}// 獲取當前打開的Excel。// 如果沒有打開的,就新建Excel。function TForm1.GetOrCreateExcel: Variant;var wps : Variant;begin try wps := GetActiveOleObject('Excel.Application'); // get current except on ex: Exception do wps := CreateOleObject('Excel.Application'); // create new end; wps.Visible := True; Result := wps;end;procedure TForm1.TestClick(Sender: TObject);var wps, wb, sht: Variant; I: Integer;begin try wps := GetOrCreateExcel; if wps.Workbooks.Count = 0 then wps.Workbooks.Add; wb := wps.Workbooks[1]; sht := wb.Worksheets[1]; sht.Range['A1'] := 'Time'; sht.Range['B1'] := 'ID'; for I := 2 to 10 do begin sht.Cells[I,1] := FormatDateTime('yyyy-MM-dd HH:nn:ss', Now); sht.Cells[I,2] := I-1; end; finally wps := unassigned; end;end;end.
0 阅读:3

職場菊菊子

簡介:感謝大家的關注