zoukankan      html  css  js  c++  java
  • delphi stringgrid导出为excel

    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;
  • 相关阅读:
    线程池中的scheduleAtFixedRate scheduleWithFixedDelay区别
    几道MySQL问题
    【SQL server 2012】复制数据库到另一台机器上
    LeetCode 98. 验证二叉搜索树
    深度学习知识点
    Graph Network Notes
    剑指 Offer 33. 二叉搜索树的后序遍历序列
    剑指 Offer 29. 顺时针打印矩阵
    LeetCode 54. 螺旋矩阵
    LeetCode 50. Pow(x, n)
  • 原文地址:https://www.cnblogs.com/semth/p/10911450.html
Copyright © 2011-2022 走看看