首页 > 其他分享 >03]FlexCel的将DBGrid1导出为Excel

03]FlexCel的将DBGrid1导出为Excel

时间:2023-05-18 10:45:38浏览次数:38  
标签:03 begin end XLSX FlexCel Excel irow DataSet icol

uses
   FlexCel.Core, FlexCel.XlsAdapter;
procedure DataSetToXLS( XLSX : TExcelFile; DataSet : TDataSet; WorkSheetCount : Integer = 1; ActiveSheet : Integer = 1 );
var
  ioldrecno, icol, irow : integer;
  fmt: TFlxFormat;
  fmtDateTime : Integer;
begin
  //make sure it is XLSX format
  ioldrecno := DataSet.RecNo;

  XLSX.SupportsXlsx := True;
  XLSX.NewFile(WorkSheetCount, TExcelFileFormat(2) );  //2 = v2010, 1 = v2007, 0 = v2003
  XLSX.ActiveSheet := ActiveSheet;
  fmt := XLSX.GetDefaultFormat;
  fmt.Format := 'yyyy-mm-dd HH:MM:SS AM/PM';
  fmtDateTime := XLSX.AddFormat(fmt);

  //Write the headers
  irow := 1;
  for icol := 0 to DataSet.FieldCount - 1 do
  begin
    XLSX.SetCellValue( irow, icol + 1, DataSet.Fields[icol].DisplayName );
  end;

  inc(irow);

  DataSet.First;
  while Not DataSet.EOF do
  begin
    for icol := 0 to DataSet.FieldCount - 1 do
    begin
      case Dataset.Fields[icol].DataType of
        ftUnknown, ftString,
        ftBoolean, ftFloat, ftCurrency, ftBCD,
        ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
        ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,
        ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,
        ftVariant, ftInterface, ftIDispatch, ftGuid, ftFMTBcd,
        ftFixedWideChar, ftWideMemo, ftOraInterval,
        ftConnection, ftParams, ftStream, ftTimeStampOffset, ftObject:
          begin
            XLSX.SetCellValue( irow, icol + 1, Dataset.Fields[icol].AsString );
          end;
        ftSmallint, ftInteger, ftWord, ftLargeint, ftLongWord, ftShortint, ftByte, ftSingle:
          begin
            XLSX.SetCellValue( irow, icol + 1, Dataset.Fields[icol].AsInteger );
          end;
        ftDate, ftTime, ftDateTime, ftOraTimeStamp, ftTimeStamp:
          begin
            XLSX.SetCellValue( irow, icol + 1, Dataset.Fields[icol].AsDateTime );
            XLSX.SetCellFormat( irow, icol + 1, fmtDateTime );
          end;
        ftExtended:
          begin
            XLSX.SetCellValue( irow, icol + 1, Dataset.Fields[icol].AsFloat );
          end;
      end;
    end;
    inc(irow);
    DataSet.Next;
  end;
  DataSet.RecNo := ioldrecno;
end;

  导出代码

procedure TForm13.Button1Click(Sender: TObject);
var
  XLSX : TExcelFile;
begin
  XLSX := TXLSFile.Create;
  DataSetToXLS( XLSX, FDQuery1 );
  XLSX.Save('c:\aa.xlsx');
  XLSX.Free;
end;

 

标签:03,begin,end,XLSX,FlexCel,Excel,irow,DataSet,icol
From: https://www.cnblogs.com/tulater/p/17411224.html

相关文章

  • [rarcrack] you don't have a right permissions!
    https://blog.csdn.net/l1028386804/article/details/84504217https://blog.csdn.net/The_IT_Crowd/article/details/7672676备忘用,老是忘记怎么暴力破解压缩包,这个错误加两个--就行。juwan@juwan-n85-dls:~$rarcrackSchool_Days.rar-threads4-typerarRarCrack!0.2......
  • vb.net 实现excel导入的时候滚动显示导入的数据
     如果你想在Excel导入过程中滚动显示导入的数据,可以使用逐行读取Excel数据并在滚动窗口中显示。在VB.NET中,你可以使用Excel.Range对象逐行读取Excel数据,并将每行数据添加到滚动窗口(如ListBox或TextBox)中进行显示。以下是一个示例代码,展示如何实现逐行滚动显示Exc......
  • element 时间日期选择器el-date-picker点击清空按钮报错:TypeError: Cannot read prope
       参考:http://www.taodudu.cc/news/show-805096.html?action=onClick......
  • Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271)
    参考:https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2017-10271/README.md反弹shellEXP:POST/wls-wsat/CoordinatorPortTypeHTTP/1.1Host:172.31.14.123:7001Accept-Encoding:gzip,deflateAccept:*/*Accept-Language:enUser-Agent:Mozilla/5.0(com......
  • Excel中时间戳与标准日期格式的互相转换
    背景在excel中将13位毫秒级别的时间戳转换为标准的日期格式(yyyy-mm-ddhh:mm:ss.000),使用如下模板=TEXT(<source_cell>/1000/86400+70*365+19,"yyyy-mm-ddhh:mm:ss.000")在excel中将10位秒级别的时间戳转换为标准的日期格式(yyyy-mm-ddhh:mm:ss.000),使用如下模板=TEXT(<sou......
  • 034Ubuntu下rsync和inotify实现多路径文件实时同步
    一、安装#安装rsync和inotify-toolssudoapt-getinstallrsyncinotify-tools#使用nginx配置文件测试:/tmp#cp-rf/usr/local/nginx/conf/nginx_conf#初始同步rsync-avz--delete/tmp/[email protected]:/tmpvim/opt/script/monitor.sh#!/bin......
  • - python=3.7 -> libgcc-ng[version='>=11.2.0'] -> __glibc[version='>=2.17
     001、利用conda安装软件时遇到如下问题:Outputinformat:Requestedpackage->AvailableversionsThefollowingspecificationswerefoundtobeincompatiblewithyoursystem:-feature:/linux-64::__glibc==2.17=0-python=3.7->libgcc-ng[version='>=1......
  • Scrapy将数据存入excel和MySQL数据库中
    一:Scrapy将爬到的数据存入MySQL数据库中1.导入pymysql第三方库pipinstallpymysql2.连接数据库(itempipeline.py)实现数据库的连接一般分为三个步骤:建立连接,操作数据,提交事务,关闭数据库。基本方法如下:classSpider01Pipeline:#连接数据库def__init__(self):......
  • 基于stm32F103C8的集尘风机电源设计 包含原理图和PCB及代码单片
    基于stm32F103C8的集尘风机电源设计包含原理图和PCB及代码单片机需要在检测到过零点后再进行PWM控制。1.提供PADS和allegro板工程文件。2.提供关键元器件手册。4.支持1000W到3000W大功率。ID:77169615872431469......
  • excel-08-Excel函数由浅入深-Excel函数
    Excel函数填充定义:是Excel中的内置函数,使用时,不区分大小写且每个函数都有其特定的功能和用途结构:以“=”为引导,函数名称开始,后接左括号,然后以逗号分隔输入的参数,最后是右括号。分类:共包含11类,分别是数据库函数,日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询......