国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

我寫的采用csv格式將數(shù)據(jù)轉(zhuǎn)換為excel的函數(shù),帶有分欄功能

2019-11-18 18:24:01
字體:
供稿:網(wǎng)友

聲明部分
PRocedure  DataToExcelCSV(SaveFileName:string;DataSet:TDataSet;ShowCompleteBoX:Boolean=True;GroupCount:integer=1);

......
{------------------------------------------------------}
{檢測findStr是否in mainStr,如果存在則返回True,否則False}
{------------------------------------------------------}
function TFun.IsStrInOtherStr(mainStr,FindStr: string): Bool;
begin
 if strPos(pAnsiChar(mainStr),pAnsichar(FindStr))=nil
 then
   result:=False
 else
   result:=True;
end;
-------------------------------------------------------------------------------------
//lijinhao 2004-4-4
//采用csv格式..將數(shù)據(jù)轉(zhuǎn)換為excel.
//速度非常快,而且具有分欄功能
//避免了用comobj帶來到弊端
//GroupCount:用于設(shè)定分欄數(shù)。。默認(rèn)為1
//ShowCompleteBoX:boolean;來設(shè)定完成是否顯示完成提示
//-------------------------------------------------------------------------------
procedure  TFun.DataToExcelCSV(SaveFileName:string;DataSet:TDataSet;ShowCompleteBoX:Boolean;GroupCount:integer);
  Function CheckStr(str:string):string;
  begin
    if IsStrInOtherStr(str,',') then str:='"'+str+'"';
    result:=str;
  end;
  //===============//
var
  ExcelFile:TextFile;
  iRecordCount:integer;//記錄數(shù)
  iFieldCount:integer;//字段數(shù)
  i,j,k:integer;
  TempStr:string;
begin
  try
     if  Not DataSet.Active then DataSet.Open;
     iRecordCount:=DataSet.RecordCount;
     iFieldCount:=DataSet.FieldCount;
     assignFile(ExcelFile,SaveFileName+'.csv');
     rewrite(ExcelFile);
     DataSet.First;
     (*--------寫字段頭------*)
      TempStr:='';
      for K:=0 to iFieldCount-1 do //字段數(shù)
      begin
        if TempStr<>'' then
         TempStr:=TempStr+','+CheckStr(DataSet.Fields[k].FieldName)
        else
         TempStr:=CheckStr(DataSet.Fields[k].FieldName)
      end;(* for K:=1 to FieldCount do*)
      for i:= 1 to GroupCount-1 do  TempStr:=TempStr+','+TempStr;
      writeLn(ExcelFile,TempStr);
      //---------------------------------
     (*寫入記錄,按分欄數(shù)來寫*)
     i:=1;
     while i<=round(iRecordCount div GroupCount) do
     begin
       TempStr:='';
       //如:F0 F1 F2 F3 | F0 F1 F2 F3
        for j:=1 to GroupCount do //分欄數(shù)
        begin
           if DataSet.Eof then break;
           inc(i);
           for K:=0 to iFieldCount-1 do //字段數(shù)
           begin
            //--------------
             if tempstr<>'' then
                TempStr:=TempStr+','+CheckStr(DataSet.Fields[k].AsString)
             else
                TempStr:=CheckStr(DataSet.Fields[k].AsString);
            //------------
           end;(* for K:=1 to FieldCount do*)
           DataSet.Next;
        end;(* for j:=1 to GroupCount do*)
        writeLn(ExcelFile,TempStr);
       if DataSet.Eof then break;
    end;//while i<=round(iRecordCount div GroupCount) do
    if ShowCompleteBoX then MessageBox(0,'完成DataToExcel的轉(zhuǎn)換!','完成提示:',mb_ok+MB_IconInformation)
 finally
   closeFile(ExcelFile);
 end;
end;


上一篇:一個四舍五入的函數(shù)

下一篇:如何用idFTP遍歷整個目錄----下載、刪除

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 武安市| 遂川县| 亳州市| 荣昌县| 阳信县| 乳源| 平凉市| 德格县| 芜湖县| 霍林郭勒市| 峨眉山市| 离岛区| 溧水县| 东海县| 达尔| 城市| 京山县| 界首市| 铁岭市| 武威市| 运城市| 上思县| 乐亭县| 漳浦县| 木兰县| 南丰县| 虞城县| 汾阳市| 康平县| 天津市| 绍兴市| 英山县| 靖江市| 油尖旺区| 苍溪县| 光山县| 香河县| 德州市| 钟祥市| 博爱县| 西藏|