DBGird中数据导入Excel例子!

部分代码参考CSDN网站上的帖子!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  ExcelWorksheet: TExcelWorksheet;
  ExcelApplication: TExcelApplication;
  ExcelWorkbook: TExcelWorkbook;
  i, row, column: integer;
  x1,x2,y1,y2 : integer;
begin
  x1 := 1;
  y1 := 2;
  column := 1;
  ExcelApplication := TExcelApplication.Create(Application);
  ExcelWorksheet := TExcelWorksheet.Create(Application);
  ExcelWorkbook := TExcelWorkbook.Create(Application);

  Try
    ExcelApplication.Connect;
  Except
    ShowMessage('Error!');
  End;
  ExcelApplication.Visible[0] := True;
  ExcelApplication.Caption := 'Excel Application';
  ExcelApplication.Workbooks.Add(Null, 0);
  ExcelWorkbook.ConnectTo(ExcelApplication.Workbooks[1]);
  ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheets[1] as _Worksheet);
  row := 3;
  ExcelWorksheet.Cells.Item[1, 1] := 'XXXXX';   //标题设置
  ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[1,1],
                       ExcelWorksheet.Cells.Item[1,2]].Merge(0);
  ExcelWorksheet.Cells.Item[1,1].HorizontalAlignment:=xlCenter;
  for i:=1 to DBGrid1.Columns.Count do
  begin
    ExcelWorksheet.Cells.Item[2, i] := DBGrid1.Columns.Items[i-1].FieldName;
  end;
  While Not (DBGrid1.DataSource.DataSet.Eof) do
  begin
    column := 1;
    for i := 1 to DBGrid1.Columns.Count do
    begin
      ExcelWorksheet.Cells.Item[row, column] := DBGrid1.DataSource.DataSet.fields[i - 1].AsString;
      column := column + 1;
    end;
    DBGrid1.DataSource.DataSet.Next;
    row := row + 1;
  end;
  y2 := row-1;
  x2 := column-1;
 //数据内容设置
  ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
                       ExcelWorksheet.Cells.Item[y2,x2]].Font.Name := '宋体';
  ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
                       ExcelWorksheet.Cells.Item[y2,x2]].Font.Size := 10;
  ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
                       ExcelWorksheet.Cells.Item[y2,x2]].Borders.Color := clBlack;
  ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
                       ExcelWorksheet.Cells.Item[y2,x2]].Borders.LineStyle := xlContinuous;
  ExcelWorksheet.Cells.Item[1,1].Font.Name := '宋体';  //标题字体设置
  ExcelWorksheet.Cells.Item[1,1].Font.Size := 12;
  ExcelWorksheet.Cells.Item[1,1].Font.Bold := True;

  ExcelApplication.Disconnect;
  ExcelApplication.Free;
  ExcelWorksheet.Free;
  ExcelWorkbook.Free;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值