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.