unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj, StdCtrls, OleServer, ExcelXP;
type
TForm1 = class(TForm)
Button1: TButton;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
ObjExcel,MyWorkBook,mysheets,mysheet,tmpCells:variant;
SheetCount,i,j,k:integer;
begin
SheetCount:=3;
ObjExcel:=CreateOleObject('Excel.application'); //建立Excel應用
ObjExcel.SheetsInNewWorkbook:=SheetCount; //確定活頁簿中表的數量
ObjExcel.VisiBle:=True; //產生期間Excel是否顯示
MyWorkBook:=ObjExcel.WorkBooks.add; //填加新的活頁簿
Mysheets:= MyWorkBook.worksheets;
for i:=1 to SheetCount do begin
Mysheet:=Mysheets.Item[i];
MySheet.Name:='例表'+inttostr(i);
MySheet.Range['A1:k2'].HorizontalAlignment:=xlCenter; //設定儲存格A1到K2水平對齊
MySheet.Range['A1:k2'].Font.Bold:=True; //儲存格A1到k1 字型加粗
MySheet.Rows[1].Font.Bold:=True; //設定一行字型格式
MySheet.Columns[3].ColumnWidth:=20; //設定一列寬度(單位:字元)
MySheet.Range['C1'].HorizontalAlignment:=xlCenter; //設定儲存格C1水平對齊
MySheet.Cells(1,1):='統計表';
MySheet.Range['A1'].Font.Color:=rgb(255,0,0); //改變A1儲存格字型顏色,等價於 MySheet.Cells.Item[1,1].Font.Color:=RGB(0,128,0);
MySheet.Range['A1:k1'].Merge; //合併儲存格A2-F2
Mysheet.Cells(2,1):='工程編號'; //儲存格賦值 等價於 MySheet.Cells.Item[2,1].value:='工作令號';
Mysheet.Cells(2,2):='工程名稱'; //儲存格賦值
Mysheet.Cells(2,3):='開工日期'; //儲存格賦值
Mysheet.Cells(2,4):='完工日期'; //儲存格賦值
Mysheet.Cells(2,5):='經辦人'; //儲存格賦值
Mysheet.Cells(2,6):='數量'; //儲存格賦值
Mysheet.Cells(2,7):='單位'; //儲存格賦值
Mysheet.Cells(2,8):='工程內容'; //儲存格賦值
Mysheet.Cells(2,9):='預算'; //儲存格賦值
Mysheet.Cells(2,10):='決算'; //儲存格賦值
Mysheet.Cells(2,11):='備忘'; //儲存格賦值
// MySheet.Range['A1:k2'].select; //選擇儲存格A2到F2
for j:=3 to 10 do begin //填寫資料
if odd(j) then MySheet.Rows[j].Font.Color:=RGB(255,0,0) else MySheet.Rows[j].Font.Color:=RGB(0,0,255); //改變一行的字元顏色
for k:=1 to 9 do begin
MySheet.Cells.Item[j,k].value:='表:'+inttostr(i)+' 第'+inttostr(j)+'行 第'+inttostr(k)+'列';
// if odd(j) then MySheet.Cells.Item[j,k].Font.Color:=RGB(255,0,0) else MySheet.Cells.Item[j,k].Font.Color:=RGB(0,0,255); //改變指定儲存格內字元顏色
end;
end;
end;
//儲存檔案
SaveDialog1.FileName:='Delphi 產生Excel表格';
SaveDialog1.Filter:='Excel 表格(*.xls)|*.xls';
if SaveDialog1.Execute then
MyWorkBook.SaveAs(SaveDialog1.FileName) //儲存檔案
else
MyWorkBook.Saved:=True;
ObjExcel.Quit; //退出Excel應用程式
end;
end.