将GRID中数据导出到 EXCEL文件中

//将GRID中数据导出到 EXCEL文件中
function ExportDBGridEHToExcel(ADBGridEH: TDBGridEh; AOutputFileName: string ; ASheetName :string ): Boolean;
var
  liFieldIndex: Integer;
  liRecordIndex: Integer;
  loXmlWriter: TXLSReadWriteII2;
begin
  Result := False;
  if (not Assigned(ADBGridEH.DataSource)) or (not Assigned(ADBGridEH.DataSource.DataSet)) then
    Exit;
  try
    liRecordIndex := 0;
    loXmlWriter := TXLSReadWriteII2.Create(nil);
 
    //设置Sheet的name信息
    if Trim(ASheetName) <> '' then
      loXmlWriter.Sheet[0].Name := ASheetName;
 
    ADBGridEH.DataSource.DataSet.DisableControls;
    ADBGridEH.DataSource.DataSet.First;
    //输出标题部分
    for liFieldIndex := 0 to ADBGridEH.Columns.Count - 1 do
    begin
      if ADBGridEH.Columns.Items[liFieldIndex].Visible then
      begin
        loXmlWriter.Sheet[0].AsString[liFieldIndex, liRecordIndex] := ADBGridEH.Columns.Items[liFieldIndex].Title.Caption;
      end;
    end;
    liRecordIndex := 1;
    //输出内容
    while not ADBGridEH.DataSource.DataSet.Eof do
    begin
      for liFieldIndex := 0 to ADBGridEH.Columns.Count - 1 do
      begin
        if ADBGridEH.Columns.Items[liFieldIndex].Visible then
          loXmlWriter.Sheet[0].AsString[liFieldIndex, liRecordIndex] :=
            ADBGridEH.DataSource.DataSet.FieldByName(ADBGridEH.Columns.Items[liFieldIndex].FieldName).AsString;
      end;
      ADBGridEH.DataSource.DataSet.Next;
      liRecordIndex := liRecordIndex + 1;
      //Application.ProcessMessages;
    end;
    loXmlWriter.Filename := AOutputFileName;
    loXmlWriter.Write;
  finally
    ADBGridEH.DataSource.DataSet.EnableControls;
    FreeAndNil(loXmlWriter);
  end;
end; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值