http://www.cnblogs.com/ywangzi/archive/2012/09/27/2705894.html

两种方法,一是用ADO连接,问题是Excel文件内容要规则,二是用OLE打开,但操作就没有象 操作数据库那么方便了.

一、用ADO连接: 设置属性ConnetionString 选择 Microsoft Jet 4.0 OLE DB provider Select or enter a datasorce name -> 选择你要打开Excel文件 User name默认是Admin 密码默认为空,可以不用理会 Extended properties 设为:Excel 8.0 sql语句 select * from [yourtablename] (注意要有[])

二、用OLE打开(以下是一个范例,注释掉的代码也是有用的语句,注意要uses ExtCtrls,ComObj单元): var ExcelApp:Variant; begin ExcelApp:=CreateOleObject('Excel.Application'); //ExcelApp.visible:=true; ExcelApp.Caption:='应用程序调用 Microsoft Excel'; ExcelApp.WorkBooks.Add; //新增工作簿 //ExcelApp.workBooks.Open('C:\My Documents\Ca09lin1.xls'); //打开已存在工作簿 ExcelApp.Worksheets[2].activate; //打开第2个工作表 //ExcelApp.WorkSheets['第四章'].activate; //打开名为第四章的工作表 ExcelApp.Cells[1,4].Value:='第一行第四列'; ExcelApp.Cells[1,5].Value:='第一行第五列'; ExcelApp.ActiveSheet.Columns[4].ColumnWidth:=15; ExcelApp.ActiveSheet.Rows[1].RowHeight:=15; //ExcelApp.WorkSheets[1].Rows[8].PageBreak:=1; //设置分页符,但似无效 //Excelapp.ActiveSheet.Rows[8].PageBreak:=1; //同上 ExcelApp.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3; ExcelApp.ActiveSheet.Range['B3:D4'].Borders[1].Weight:=3; ExcelApp.ActiveSheet.Range['B3:D4'].Borders[3].Weight:=3; ExcelApp.ActiveSheet.Range['B3:D4'].Borders[4].Weight:=3; //ExcelApp.ActiveSheet.Range['B3:D4'].Borders[5].Weight:=3; //会直接在范围内的各Cell内加上斜杠| //ExcelApp.ActiveSheet.Range['B3:D4'].Borders[6].Weight:=3; //与上句类似 //Bordrs:1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / ) ExcelApp.Cells[3,2].Value:='三行二列'; ExcelApp.Cells[3,3].Value:='三行三列'; ExcelApp.Cells[3,4].Value:='三行四列'; ExcelApp.Cells[4,2].Value:='四行二列'; ExcelApp.Cells[4,3].Value:='四行三列'; ExcelApp.Cells[4,4].Value:='四行四列'; //ExcelApp.ActiveSheet.Range['B3:D4'].Value.CopyToClipBoard; ExcelApp.activeSheet.Cells[1,4].ClearContents; //清除一行四列的内容,activeSheet可以省略 Excelapp.Rows[3].font.Name:='隶书'; //这里Rows前省略了activeSheet,但针对也只是当前工作表而非整个工作簿 ExcelApp.Rows[3].font.Color:=clBlue; ExcelApp.Rows[3].Font.Bold:=True; ExcelApp.Rows[3].Font.UnderLine:=True; ExcelApp.Range['B3:D4'].Copy; RichEdit1.PasteFromClipboard; //ExcelApp.ActiveSheet.PageSetup.CenterFooter:='第$P页'; //所有页面设置(PageSetup的属性)都不能进行,不知为何 //ExcelApp.ActiveSheet.PrintPreview; //打印预览 //ExcelApp.ActiveSheet.PrintOut; //直接打印输出 //if not ExcelApp.ActiveWorkBook.Saved then //工作表保存: // ExcelApp.ActiveSheet.PrintPreview; //ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' ); //工作表另存为 ExcelApp.ActiveWorkBook.Saved := True; // 放弃存盘 ExcelApp.WorkBooks.Close; //关闭工作簿 ExcelApp.Quit; //退出 Excel

ExcelApp:=Unassigned;//释放excel进程 end; 另: 得到excel的行数、列数: Maxc :=ExlApp.WorkSheets[1].UsedRange.Columns.Count; Maxr :=ExlApp.WorkSheets[1].UsedRange.Rows.Count; 得到列宽 a:=createoleobject('excel.application'); a.workbooks.add; a.activecell.columnwidth:=10; showmessage(inttostr(a.activecell.columnwidth));

delphi 读取excel 两种方法的更多相关文章

  1. [转载]C#读取Excel几种方法的体会

    C#读取Excel几种方法的体会 转载地址:http://developer.51cto.com/art/201302/380622.htm (1) OleDb: 用这种方法读取Excel速度还是非常 ...

  2. python excel操作单元格复制和读取的两种方法

    操作单元格 新建一个sheet, 单元格赋值(两种方法) 单元格A1赋值为’xiaxiaoxu’ 单元格A2赋值为‘xufengchai’ 打印A1和A2单元格的值(两种方法) #coding=utf ...

  3. C#读取Excel几种方法的体会

    (1) OleDb: 用这种方法读取Excel速度还是非常的快的,但这种方式读取数据的时候不太灵活,不过可以在 DataTable 中对数据进行一些删减修改 这种方式将Excel作为一个数据源,直接用 ...

  4. C#读取Excel 几种方法的体会

    (1) OleDb: 用这种方法读取Excel速度还是非常的快的,但这种方式读取数据的时候不太灵活,不过可以在 DataTable 中对数据进行一些删减修改 这种方式将Excel作为一个数据源,直接用 ...

  5. FileInputStream读取的两种方法:逐字节读;以字节数组读取

    1:read() : 从输入流中读取数据的下一个字节,返回0到255范围内的int字节值.如果因为已经到达流末尾而没有可用的字节,则返回-1.在输入数据可用.检测到流末尾或者抛出异常前,此方法一直阻塞 ...

  6. PHP输出Excel两种方法

    2016年3月23日 16:43:51 星期三 第一种: 输出html+css格式, 打开后用Excel软件的"另存为"功能保存为正规的表格格式 public function e ...

  7. java web 读取配置文件两种方法

    package com.tsinghua.getDataBaseConn; import java.io.IOException;import java.io.InputStream;import j ...

  8. [转]Delphi调用cmd的两种方法

    delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ...

  9. 读取xml文件转成List<T>对象的两种方法(附源码)

    读取xml文件转成List<T>对象的两种方法(附源码) 读取xml文件,是项目中经常要用到的,所以就总结一下,最近项目中用到的读取xml文件并且转成List<T>对象的方法, ...

随机推荐

  1. php--mongodb的安装

    1.mongodb 安装 2.mongodb 扩展 http://pecl.php.net/package/mongo/1.6.14/windows

  2. Eclipse中直接双击执行bat时路径问题

    之前bat中使用的是 cd %cd% 这样在文件夹中直接运行bat是没问题的 但在eclipse中运行, 取得的路径就是eclipse.exe的所在路径 而如果需要获得bat文件的实际所在路径 应该使 ...

  3. 【C++】动态内存与智能指针

    C++常见的内存分配方式有三种: 从静态存储区分配,这里主要是存储局部static对象,类的static成员以及定义在函数之外的变量: 从栈内存分配,这里主要是存储函数内的非static对象: 从堆内 ...

  4. PresentViewController切换界面(一些系统自带的页面切换动画)

    视图切换,没有NavigationController的情况下,一般会使用presentViewController来切换视图并携带切换时的动画, 其中切换方法如下: – presentViewCon ...

  5. .NET基础加强,找工作之前可以看看这些............

    .NET基础知识加强: 1  变量命名规则:骆驼命名法:第一个字母小写之后的首字母大写,[对于方法名和类名首字母大写]→培养良好的命名规范. 2  构造函数:没有返回值,方法名和类名相同,每个类中都有 ...

  6. opencv3.0+VS2015+64位win7配置

    首先,我们把所有用到的工具下载下来 VS2015         看这里,http://news.mydrivers.com/1/439/439398.htm,我下载的是专业版. OPENCV3.0 ...

  7. iOS 证书及配置文件介绍

    1.Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1)Developer Certification(开发证书) 安装在电脑上提供权限:开发人员通过 ...

  8. 第三方Jar上传到Nexus3

    mvn deploy:deploy-file -DgroupId=ESPPaaSService -DartifactId=ESPPaaSService -Dversion=1.0 -Dpackagin ...

  9. tomcat 禁用不安全的http请求模式 .

    HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的.当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义.此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法. ht ...

  10. Java遇见HTML——JSP篇之JavaBeans

    一.JavaBean简介及设计原则 设计原则:公有类.无参的公有构造方法.属性私有.有getter and setter方法 实例: 二.Jsp动作元素 JSP动作标签分为五大类: 三.在JSP页面中 ...