博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi 导出excel
阅读量:6836 次
发布时间:2019-06-26

本文共 4277 字,大约阅读时间需要 14 分钟。

Var

  FExcel:OleVariant; //excel应用程序

  FWorkBook :OleVariant; //工作表

  Temsheet:OleVariant; //工作薄

  FPicture:OleVariant;//图片

  tmpstr:String;

  range:variant;//范围

  i,j,TemInt:integer;

  TemFileName:String;

  real_american_price:Double;

begin

  if (kind = '小米清单') or (kind = '小商品清单') then

  Begin

    if cxxiaomilist.DataController.RecordCount = 0 then

    begin

      Application.MessageBox(PChar('没有导出数据!'),'提示',MB_OK + MB_ICONWARNING);

      abort;

    end;


    SaveDialog1.Filter:='.xlsx';

    if SaveDialog1.Execute then

    begin

      TemFileName:=SaveDialog1.FileName+'.xlsx';


      Screen.Cursor:=CrHourGlass;

      TemInt:=0;

      try

        FExcel:= CreateoleObject('excel.Application');

        FWorkBook:=FExcel.WorkBooks.Add(-4167); //新的工作表

        Temsheet:=FWorkBook.Worksheets.Add;

        Temsheet.Name:=kind;

      except

        Application.MessageBox('无法创建Excel文件, 请确认是否安装了Excel软件',

          PChar(Application.Title), MB_OK + MB_ICONWarning);

        Exit;

      end;


      Temsheet.Select;

      Temsheet.Range['A1','A1'].RowHeight := 60;


      for i := 1 to 111 do

      begin

        Temsheet.Columns[i].ColumnWidth:=15;

        Temsheet.cells[1,i] := '';

        if i = 1 then

          Temsheet.cells[1,i] := cxxiaomilist.Bands[111].Caption;

        if i = 22 then

          Temsheet.cells[1,i] := cxxiaomilist.Bands[112].Caption;

        Temsheet.cells[2,i] := cxxiaomilist.Bands[i-1].Caption;

       

        if i < 22 then

           Temsheet.cells[3,i] := cxxiaomilist.Columns[i-1].Caption;

      end;

      Temsheet.Columns[1].NumberFormat:='#####################';


      range:=Temsheet.Range[Temsheet.cells[3,22],Temsheet.cells[3,23]];//选定表格

      range.select;

      range.merge;

      range:=Temsheet.Range[Temsheet.cells[3,22],Temsheet.cells[3,24]];//选定表格

      range.select;

      range.merge;

      Temsheet.Cells[3,22].HorizontalAlignment:=-4108; //字居中

      Temsheet.Cells[3,22] := cxxiaomilist.Bands[112 + 1].Caption;


      range:=Temsheet.Range[Temsheet.cells[3,25],Temsheet.cells[3,26]];//选定表格

      range.select;

      range.merge;

      range:=Temsheet.Range[Temsheet.cells[3,25],Temsheet.cells[3,27]];//选定表格

      range.select;

      range.merge;

      Temsheet.Cells[3,25].HorizontalAlignment:=-4108; //字居中

      Temsheet.Cells[3,25] := cxxiaomilist.Bands[112 + 2].Caption;



      range:=Temsheet.Range[Temsheet.cells[3,109],Temsheet.cells[3,110]];//选定表格

      range.select;

      range.merge;

      range:=Temsheet.Range[Temsheet.cells[3,109],Temsheet.cells[3,111]];//选定表格

      range.select;

      range.merge;

      Temsheet.Cells[3,109].HorizontalAlignment:=-4108; //字居中

      Temsheet.Cells[3,109] := cxxiaomilist.Bands[112 + 30].Caption;


      for I := 0 to cxxiaomilist.DataController.RecordCount - 1 do

      begin

        for j := 1 to cxxiaomilist.ColumnCount do

        begin

          Temsheet.cells[4 + i,j] := VarToStr(cxxiaomilist.DataController.GetValue(i,j-1));

//          if j = 10 then

//          if TryStrToFloat(VarToStr(cxxiaomilist.DataController.GetValue(i,j)),real_american_price) then

//          if real_american_price > 150 then

//          begin

//            Temsheet.Cells[4 + i,j].Interior.Color := clRed;

//            Temsheet.Cells[4 + i,j + 4].Interior.Color := $0075C76B;

//          end;

        end;

      end;




  //    for i:=0 to DBGrid2.Columns.Count - 1 do

  //    begin

  //      Temsheet.Cells[TemInt,i+2]:=DBGrid2.Columns[i].Title.Caption;

  //      Temsheet.Cells[TemInt,i+2].HorizontalAlignment:=-4108; //字居中

  //      Temsheet.Cells[TemInt,i+2].Interior.Color:=clGray;     //单元格背景色

  //      range:=Temsheet.Range[Temsheet.cells[TemInt,i+2],Temsheet.cells[TemInt,i+2]];//选定表格

  //      range.borders.linestyle:=1;//华线

  //    end;

  //

  //    TemInt:=TemInt+1;

  //    //

  //    j:=0;

  //    DBGrid2.DataSource.DataSet.First;

  //    while not DBGrid2.DataSource.DataSet.Eof do

  //    begin

  //      Temsheet.Cells[TemInt+j,1].Value:=j+1;

  //      Temsheet.Cells[TemInt+j,1].HorizontalAlignment:=-4108; //字居中

  //      range:=Temsheet.Range[Temsheet.cells[TemInt+j,1],Temsheet.cells[TemInt+j,1]];//选定表格

  //      range.borders.linestyle:=1;//华线

  //

  //      for i:=0 to DBGrid2.Columns.Count - 1 do

  //      begin

  //        Temsheet.Cells[TemInt+j,i+2].Value:=DBGrid2.Fields[i].AsString;

  //        range:=Temsheet.Range[Temsheet.cells[TemInt+j,i+2],Temsheet.cells[TemInt+j,i+2]];//选定表格

  //        range.borders.linestyle:=1;//华线

  //      end;

  //      DBGrid2.DataSource.DataSet.Next;

  //      j:=j+1;

  //    end;



      Application.ProcessMessages;


      Screen.Cursor:=CrDefault;

      FExcel.WorkBooks[1].saveas(TemFileName);//保存文件

      FExcel.workbooks[1].close; //关闭工作表

      Application.ProcessMessages;

      MessageBox(Handle,'导出成功','提示',MB_OK);

      //FExcel.visible:=true;

      FExcel.quit; //关闭Excel

      FExcel := unassigned;

      //shellexecute(0,'open',PChar(ExtractFileName(TemFileName)),nil,PChar(ExtractFilePath(TemFileName)),SW_Show);


    end;

  End;

本文转自鹅倌51CTO博客,原文链接:http://blog.51cto.com/kaixinbuliao/1982749 ,如需转载请自行联系原作者

你可能感兴趣的文章
《UNIXLinux程序设计教程》一3.7 非阻塞I/O
查看>>
IBM遭标普下调评级
查看>>
手机短信验证码真的安全吗?
查看>>
关于智慧城市建设的几点建议
查看>>
Facebook高管:我们是科技公司 不是媒体公司
查看>>
《领域特定语言》一2.3DSL的问题
查看>>
TensorFlow 1.0 正式发布 你需要知道的都在这里
查看>>
空调能窃听插座能放火?物联网成了“危”联网
查看>>
视频监控日常使用存在哪些故障
查看>>
半导体并购停不下来 ADI拟148亿美元收购Linear
查看>>
高通的专利霸权要到头了?
查看>>
工信部:推动窄带物联网、5G泛在信息基础设施
查看>>
市场与需求带动 向智能安放转型成大势所趋
查看>>
云时代看CRM如何引领企业成功?
查看>>
物联网帝国——孙正义职业生涯最大的豪赌
查看>>
互联网时代大数据的核心价值
查看>>
安全报告显示2015年DDoS攻击强度创下新纪录
查看>>
智慧城市“双引擎”:城市创新活力与市民宜居体验
查看>>
外汇呼叫中心如何在严格监管中存续
查看>>
安全攻防之SQL注入
查看>>