开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

delphi使用ado导出excel

简介:
+关注继续查看

--需要的头文件Comobj,shellAPI,Excel2000,添加保存对话框 object SaveDialogExport: TSaveDialog
--
 

var
  FileName, s: String;
  xlapp:TexcelApplication;
  xlWorkbook:TExcelWorkbook;
  xlWorksheet:TExcelWorksheet;
begin
  //导出
  if Self.cx_criticalpath.DataController.RecordCount = 0 then
  begin
    s := '没有导出数据...';
    Application.MessageBox(PChar(s), PChar(Application.Title),
      MB_OK or MB_ICONERROR);
    Exit;
  end;

  SaveDialogExport.Filter := 'Excel文件 (*.xls)';
  SaveDialogExport.Title := '导出为';

  if not SaveDialogExport.Execute then
    Exit;

  FileName := SaveDialogExport.FileName;
  Application.ProcessMessages;

  try
    xlApp := TExcelApplication.Create(self);
    xlWorkbook := TExcelWorkbook.create(self);
    xlworksheet := Texcelworksheet.create(self);
  except
    Application.MessageBox('无法创建Excel文件, 请确认是否安装了Excel软件',
      PChar(Application.Title), MB_OK + MB_ICONWarning);
    Exit;
  end;
  Screen.Cursor := crHourGlass;
  Application.ProcessMessages;
  xlapp.Connect;
  xlapp.Workbooks.Add(null,0);
  xlWorkbook.ConnectTo(xlapp.Workbooks[1]);
  xlWorksheet.ConnectTo(xlWorkbook.Sheets[1] as _Worksheet);

//设置列宽。。。
  xlapp.Range['a1', 'a4'].ColumnWidth := 15;
  xlapp.Range['b1', 'b4'].ColumnWidth := 15;
  xlapp.Range['c1', 'c4'].ColumnWidth := 15;
  xlapp.Range['d1', 'd4'].ColumnWidth := 15;
  xlapp.Range['e1', 'e4'].ColumnWidth := 15;
  xlapp.Range['f1', 'f4'].ColumnWidth := 20;
  xlapp.Range['g1', 'g4'].ColumnWidth := 20;

  xlWorksheet.cells.Item[1,1] := qry_critical.Fields[0].FieldName;
  xlWorksheet.Cells.Item[1,1].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,1].Font.bold := true;
  xlWorksheet.Cells.Item[1,1].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,1].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,1].font.size := 11;

  xlWorksheet.cells.Item[1,2] := qry_critical.Fields[9].FieldName;
  xlWorksheet.Cells.Item[1,2].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,2].Font.bold := true;
  xlWorksheet.Cells.Item[1,2].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,2].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,2].font.size := 11;

  xlWorksheet.cells.Item[1,3] := qry_critical.Fields[10].FieldName;
  xlWorksheet.Cells.Item[1,3].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,3].Font.bold := true;
  xlWorksheet.Cells.Item[1,3].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,3].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,3].font.size := 11;

  xlWorksheet.cells.Item[1,4] := qry_critical.Fields[11].FieldName;
  xlWorksheet.Cells.Item[1,4].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,4].Font.bold := true;
  xlWorksheet.Cells.Item[1,4].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,4].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,4].font.size := 11;

  xlWorksheet.cells.Item[1,5] := qry_critical.Fields[12].FieldName;
  xlWorksheet.Cells.Item[1,5].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,5].Font.bold := true;
  xlWorksheet.Cells.Item[1,5].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,5].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,5].font.size := 11;

  xlWorksheet.cells.Item[1,6] := qry_critical.Fields[13].FieldName;
  xlWorksheet.Cells.Item[1,6].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,6].Font.bold := true;
  xlWorksheet.Cells.Item[1,6].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,6].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,6].font.size := 11;

  xlWorksheet.cells.Item[1,7] := qry_critical.Fields[14].FieldName;
  xlWorksheet.Cells.Item[1,7].Font.name := '宋体';
  xlWorksheet.Cells.Item[1,7].Font.bold := true;
  xlWorksheet.Cells.Item[1,7].orientation := xlhorizontal;
  xlWorksheet.Cells.Item[1,7].verticalAlignment := xlTop;
  xlWorksheet.Cells.Item[1,7].font.size := 11;

  qry_critical.First;
  n := 2;
  while not qry_critical.eof do
  begin
    xlWorksheet.cells.Item[n,1] := qry_critical.Fields[0].AsString;
    xlWorksheet.Cells.Item[n,1].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,1].Font.bold := true;
    xlWorksheet.Cells.Item[n,1].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,1].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,1].font.size := 11;
    xlWorksheet.Cells.Item[n,1].wraptext := true;

    xlWorksheet.cells.Item[n,2] := qry_critical.Fields[9].AsString;
    xlWorksheet.Cells.Item[n,2].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,2].Font.bold := true;
    xlWorksheet.Cells.Item[n,2].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,2].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,2].font.size := 11;
    xlWorksheet.Cells.Item[n,2].wraptext := true;

    xlWorksheet.cells.Item[n,3] := qry_critical.Fields[10].AsString;
    xlWorksheet.Cells.Item[n,3].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,3].Font.bold := true;
    xlWorksheet.Cells.Item[n,3].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,3].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,3].font.size := 11;
    xlWorksheet.Cells.Item[n,3].wraptext := true;

    xlWorksheet.cells.Item[n,4] := qry_critical.Fields[11].AsString;
    xlWorksheet.Cells.Item[n,4].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,4].Font.bold := true;
    xlWorksheet.Cells.Item[n,4].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,4].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,4].font.size := 11;
    xlWorksheet.Cells.Item[n,4].wraptext := true;

    xlWorksheet.cells.Item[n,5] := qry_critical.Fields[12].AsString;
    xlWorksheet.Cells.Item[n,5].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,5].Font.bold := true;
    xlWorksheet.Cells.Item[n,5].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,5].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,5].font.size := 11;
    xlWorksheet.Cells.Item[n,5].wraptext := true;

    xlWorksheet.cells.Item[n,6] := qry_critical.Fields[13].AsString;
    xlWorksheet.Cells.Item[n,6].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,6].Font.bold := true;
    xlWorksheet.Cells.Item[n,6].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,6].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,6].font.size := 11;
    xlWorksheet.Cells.Item[n,6].wraptext := true;

    xlWorksheet.cells.Item[n,7] := qry_critical.Fields[14].AsString;
    xlWorksheet.Cells.Item[n,7].Font.name := '宋体';
    xlWorksheet.Cells.Item[n,7].Font.bold := true;
    xlWorksheet.Cells.Item[n,7].orientation := xlhorizontal;
    xlWorksheet.Cells.Item[n,7].verticalAlignment := xlTop;
    xlWorksheet.Cells.Item[n,7].font.size := 11;
    xlWorksheet.Cells.Item[n,7].wraptext := true;

    inc(n);
    qry_critical.Next;
  end;
  xlWorksheet.cells.Item[n+qry_critical.recordcount,1] := '';
  xlWorkbook.SaveCopyAs(FileName);
  xlapp.Quit;
  xlWorksheet.Disconnect;
  xlWorkbook.Disconnect;
  xlapp.Disconnect;
  FreeAndNil(xlWorkbook);
  FreeAndNil(xlWorksheet);
  FreeAndNil(xlapp);

  Screen.Cursor := crDefault;
  Application.ProcessMessages;
  s := '导出完成...';
  Application.MessageBox(PChar(s), PChar(Application.Title),
    MB_OK or MB_IconInformation);










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





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Excel画折线图
需求 因为我们在做有些监测项目的时候我们需要用直观的数据去显示,为了让人们一眼就可以知道,最近的变化,所以我们需要用折线图的方式,为人们很直观的显示数据 准备工作 首先我们需要将数据有条理的整理出来 例如:原数据: image.
887 0
poi导入excel
请看excel分类,其他的博客,下面的博客写的比较早,没啥太大利用价值,纯粹是复制代码 贴代码: import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apa
1428 0
ASP.NET datable导出excel
本文转载:http://www.cnblogs.com/chwkai/archive/2005/10/08/250426.html 不错的文章:http://www.cnblogs.com/lzhp/archive/2012/08/02/2680763.
765 0
DataTable导入到Excel文件
    public static bool DataTableToExcel(System.Data.DataTable dt, string fileName, bool showFileDialog=false)        {            if (showFileDialog)...
680 0
使用delphi 开发多层应用(十五)使用kbmMW 的代理服务
首先,当一个企业要给外网用户提供服务时,应用服务器上应该配置外网IP,同时外网防火墙也要进行相关的配置, 但是当对外的服务器比较多时,可能需要很多外网IP,同时防火墙上要频繁设置,非常麻烦。第二,分发客户端后,一般 配置都要默认设置好(否则会给客户造成不必要的麻烦),那么客户端都会指向一个相对比较固定的服务器IP,也就是说 客户端理想状态是通过一个统一的入口连接到服务器上,调用相关的服务。
929 0
使用delphi 开发多层应用(十二)使用kbmMW webserver 返回JSON
由于kbmMW 服务器与客户端交互是使用它的专用数据格式,因此与其它语言及平台相互访问的话就会有兼容问题, 为了最大化的利用kbmMW 服务器,从kbmMW 4.0 以后,其开始支持JSON 格式传递数据,其实就是可以通过 Webserver根据客户端的request 来返回对应的JSON串.
939 0
[转载]Calling printf from C# - The tale of the hidden __arglist keyword
Browsing the SSCLI can be enlighting from time to time (if not all the time). Take a look at the following function implemented in console.
812 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载