• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphistringgrid导出为excel

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
procedure TLiYQBYJL.btnBYJLTJDCClick(Sender: TObject);
var
  ExcelApp, workbook, sheet: Variant;
  col, row, j, i: Integer;
  str: string;
begin
  inherited;
  dlgSave1.Filter := 'Excel2007格式文件|*.xlsx|Excel2003格式文件|*.xls';
  try
    ExcelApp := CreateOleObject('Excel.Application'); (* 创建一个Excel的OLE对象,使用OLE去创建Excel文件时,需要uses ComObj *)
  except
    InformationDlg(Tit, '请安装EXCEL');
    Exit;
  end;
  workbook := ExcelApp.WorkBooks.Add;               (* 创建一个WorkBook *)
  sheet := ExcelApp.Sheets[1];                      (* 创建一个Sheet变量 *)
  if not cdsBYJLTJ.IsEmpty then
  begin
    sheet.cells[1, 1] := '保养项目';
    for col := 1 to cdsBYJLTJ.FieldCount - 1 do
    begin
      sheet.cells[1, col + 1] := cdsBYJLTJ.Fields[col].FieldName;
    end;
    with cdsBYJLTJ do
    begin
      First;
      i := 2; //行  j列
      while not Eof do
      begin
        for col := 0 to FieldCount - 1 do
        begin
          sheet.Cells[i, col + 1] := cdsBYJLTJ.Fields[col].AsString;
        end;
        Inc(i);
        Next;
      end;
    end;
  end;
  for col := 1 to SGBYJLTJ.ColCount do
  begin
    ExcelApp.ActiveSheet.Columns[col].Columnwidth := 10;
  end;
     ExcelApp.DisplayAlerts := false; //不提示任何警告信息
  if dlgSave1.Execute then    (* 如果点击了保存对话框的"保存"按键的话,将当前活动的Workbook保存到SaveDialog指定的位置 *)
  begin
    if FileExists(dlgSave1.FileName) then
    begin
      if not QuestionDlg(Tit, '文件名已存在,是否覆盖?') then
      begin
        Exit;
      end
      else
      begin
        ExcelApp.ActiveWorkbook.saveas(dlgSave1.FileName);
      end;

    end;
//    ExcelApp.ActiveWorkbook.saveas(dlgSave1.FileName);
  end
  else                           (* 如果点击了保存对话框的"取消"按键的话,放弃存盘,这句话一定要加上,否则,在点击"取消"按键时,会出现问题 *)
    ExcelApp.ActiveWorkBook.Saved := True;
//  ExcelApp.DisplayAlerts := false; //不提示任何警告信息
  workbook.Close;  (* 最后,将WorkSheet关闭 *)
  ExcelApp.quit;   (* 退出ExcelApp *)
  ExcelApp := unassigned; (* 使用unassigned时,要uses Variants *)
end;

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
QT调用Delphi生成的COM组件发布时间:2022-07-18
下一篇:
delphi shr和shl的作用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap