近来的项目报表全部做成excel文件,方便很多。可惜的是delphi中的server组件没有帮助,只能靠网上的资料和自己的摸索。经过一段时间,积累了一点经验,写出来希望对大家有所帮助。近来在网上搜索到TXLSRead and TXLSWrite两个组件操作excel更加方便,但是还没研究过,大家有兴趣可以研究一下。

1、问题
对微软真实又爱又恨,爱的是很多东西很方便易用,恨的是慢和老是出现莫名其妙的错误。不明白为什么ExcelApplication1.Connect连接那么慢,而且会影响窗口的显示。所以在执行ExcelApplication1.Connect之前最好加一句Application.ProcessMessages。
2、的问题
要连接上一个worksheet,需要三个步骤:
ExcelApplication1.Connect
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _worksheet);
第一个步骤是连接到Excel。
第二个步骤是创建新的excel,并将ExcelWorkbook1组件连接到这个新的excel,如果是打开一个已存在的excel文件请用:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(excel文件名及路径,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));
第三个步骤就是ExcelWorksheet1组件连接到要读写的工作表,比较容易忽略的就是红色字部分(as _worksheet),如果没有,编译时是肯定通不过的。
3、保存文件
保存文件根据网上的资料测试过不少,可惜有些不行,老编译不过。可能是自己没仔细研究,代码写得不对。现在只用以下这句:
ExcelApplication1.ActiveWorkBook.Close(True,CurrentPath+CurrentFile,EmptyParam, 0);
4、设置单元格格式为文本
Excel的一个问题就是将000001这些文本也当成数字了,最后显示为1,所以要设置单元格的格式为文本才行。在大富翁论坛找到了答案,就是:
Cells.Item[行号,列号].NumberFormatLocal:='@';
还有一种办法就是:ells.Item[行号,列号].style:='';
后面那个关键词找不到,用Normal不行,用Text也不行,找不到资料,也就没深究下去。
5、获取工作簿中所有工作表
for i:=1 to ExcelWorkbook1.Sheets.Count do
begin
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[i] as _WorkSheet);
cbList.Items.Add(ExcelWorksheet1.Name);
ExcelWorksheet1.Disconnect;
end;
6、获取工作表中已经使用的行数和列数
获取列数并取得列标题(如果有标题行且是第一行)
ColCount:=ExcelWorksheet1.UsedRange[0].Columns.Count;
if ColCount>0 then
begin
for I:=1 to ColCount do
begin
ListString:=ExcelWorksheet1.UsedRange[0].Cells.Item[1,I];
ListString:='列'+IntToStr(I)+':'+ListString;
end;
end;
在这里要注意的地方就是一定要用变量保存信息,如果直接在循环中使用ExcelWorksheet1.UsedRange[0].Columns.Count,编译通过不了,下面获取标题行的值也是,直接使用也是不行。
获取行数:
RowCount:=ExcelWorksheet1.UsedRange[0].Rows.Count;
如果有标题行,别忘记将行数减1。循环时也要从第二行开始。
7、参考文档
Delphi与Excel的亲密接触 [王安鹏(anpengwang@263.net) 2002/4/14]
链接:http://www.zahui.com/html/2/4846.htm
Delphi控制Excel2000心得 [tiexinliu (铁心刘) 2003-10-15 10:45:11]
链接:http://search.csdn.net/Expert/topic/2357/2357198.xml?temp=.6645929

转载于:https://blog.51cto.com/dqhuang/934276

Delphi使用server组件控制excel的一点经验相关推荐

  1. layui rate (评分组件)使用的一点经验分享

    背景 这几天在做管理后台的功能开发时 需要添加一个可以进行 标签打分的模块,方便后期对接单人员的 信息收集 根据需求,我选取的是常用的 layui.rate 组件 在嵌入页面是发现: 如果直接在页面上 ...

  2. Delphi控制Excel自动生成报表

    摘要:Excel是当前最流行的数据报表制作工具.本文介绍如何使用Delphi来控制Excel完成数据库与报表之间的数据交换,讨论了报表制作工程中的一些细节性问题. 关键字:Delphi,Excel,报 ...

  3. 如何用DELPHI实现把WORD、EXCEL和图片等存储到数据库中

    如何用DELPHI实现把WORD.EXCEL和图片等存储到数据库中 用image字段保存这些文档.     var         word_stream:   TMemoryStream;      ...

  4. 使用JXL组件操作Excel和导出文件

    使用JXL组件操作Excel和导出文件 原文链接:http://tianweili.github.io/blog/2015/01/29/use-jxl-produce-excel/ 前言:这段时间参与 ...

  5. Tomcat学习笔记(三)—— Server组件

    前面已经初步了解了Server组件是什么东西及其作用.在这里进一步对Server组件进行研究学习. Server组件 从Tomcat的层次结构中已经知道Server组件是Tomcat最顶层组件,它可以 ...

  6. Delphi数据库处理组件BDE、ADO、InterBase和dbExpress详细说明

    Delphi数据库处理组件BDE.ADO.InterBase和dbExpress详细说明 第一节 BDE.ADO.InterBase和dbExpress     Delphi中处理数据库主要有两种方法 ...

  7. TMS iCL完整源代码,Delphi的iOS组件的组件库

    TMS iCL完整源代码,Delphi的iOS组件的组件库 TMS iCL是基于Delphi的iOS组件的组件库.这些组件可以用作具有自身属性,方法和事件的Delphi对象.该库实际上是iOS系统控件 ...

  8. java控制excel_利用Java控制EXCEL实例详解

    利用Java控制EXCEL实例详解发布者:本站     时间:2020-05-06 15:05:43 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵 ...

  9. python办公自动化excel_简直出神入化,教你用Python控制Excel实现自动化办公

    1.安装 简直出神入化,教你用Python控制Excel实现自动化办公 2.操作一个简单的Excel文档 操作注释及代码: 简直出神入化,教你用Python控制Excel实现自动化办公 操作完成后,数 ...

最新文章

  1. swift - idfa(唯一标示/下载量/广告追踪)
  2. php session域名共享,实现多域名下共用一个SESSION
  3. 如果我用你待我的方式来待你 恐怕你早已离去
  4. 服务器分配虚拟机算法,云计算环境下的虚拟机资源分配
  5. Ubuntu安装搜狗拼音和金山快盘
  6. 学好python工资一般多少-学会Python后,月薪40k是什么水平?
  7. 在Windows上使用MSVC编译QuaZip
  8. 《遗传算法原理及应用》笔记—基本遗传算法
  9. 几种常用的排序算法详解和C++排序算法模板(附有动图理解)
  10. haneWin NFS服务器配置
  11. 【转载】网络工程师行业的岗位认知
  12. MySQL50题-第6-10题
  13. 小爱音箱当电脑音箱(电脑没有蓝牙)
  14. java -g_【JVM】7、深入理解Java G1垃圾收集器
  15. [回顾]windows安装mujoco200
  16. Chrome插件:请开始你的表演,smartUp手势骚操作
  17. docker 中安装Jenkins-Jenkins持续化集成(GIT/maven/钉钉机器人)详细步骤
  18. 腾讯云服务器SSH远程登录
  19. Volo.Abp 整合 WebApiClient 从请求中获取 Headers 信息
  20. 推进产学研协同 | 昇思受邀出席“科创中国”开源创新与信创产业发展高峰论坛

热门文章

  1. RESTful开发风格
  2. php include path pear,关于php:pear include_path数据文件夹不再有效
  3. 宝塔 php5.6 极速安装_cltphp5.6.6版本安装教程-宝塔练手
  4. 调试maven源代码
  5. Sublime Text 3.1 3170正式版+Patch注册机
  6. Apache 403 错误。。
  7. Python中布尔类型
  8. 创建nim+安装vioc分区
  9. nginx 开展对RT5350
  10. 剑指OFFER之数组中出现次数超过一半的数字(九度OJ1370)