Excel多工作簿例程


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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值