两种方法,一是用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] (注意要有[]) 
如:SELECT   *   FROM   [Sheet1$]

二、用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));

转载于:https://www.cnblogs.com/xtfnpgy/p/9285427.html

delphi 读取excel 两种方法相关推荐

  1. opencv:视频读取的两种方法

    本文介绍视频的读取与显示,opencv视频读取有很多种方法,我们主要介绍两种常用的方法,首先介绍视频读取用到的函数: capture():capture函数是Videocapture类的一个读取视频或 ...

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

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

  3. bufferedreader读取中文乱码_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  4. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  5. mysql数据库导入到excel表格数据_[转载]将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  6. python把矩阵存为文件_python 读取文件并把矩阵转成numpy的两种方法

    在当前目录下: 方法1: file = open('filename') a =file.read() b =a.split('\n')#使用换行 len(b) #统计有多少行 for i in ra ...

  7. python使用方法视频-Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab impo ...

  8. python怎么导入视频-Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab impo ...

  9. html转word并保持格式不变,表格从Word转Excel想保持格式不变?用这两种方法,保你轻松搞定...

    相信在职场办公,大家或多或少都有遇见过这样的问题,需要把Word中的表格转移到Excel中,很多人第一时间就复制黏贴然后再重新调整格式,一两个表格还好说,如果是批量的你怕是要累死了. 表格从Word转 ...

最新文章

  1. android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类
  2. Office SharePoint Server 2007 (Beta2) 管理、部署文档
  3. html5发展前景-兄弟连,IT兄弟连 HTML5教程 HTML5的曲折发展过程 HTML5的诞生
  4. 位、字,字节与KB的关系?
  5. python 过滤文本中的标点符号(转)
  6. BDTC 2017 | 中国大数据技术大会全日程和演讲者曝光
  7. masked_fill【将mask中值为True的位置对应的待填充的张量设置为value值】
  8. 解决一个容易忽略的点:pandas无法读取excel的全部列
  9. c#读蓝牙数据_C#读取BWT901CL蓝牙传感器的数据
  10. POS tagging中英文对应
  11. 问题记录——sqlserver视图重命名的陷阱
  12. java获取泛型的类型_Java反射获取泛型类型
  13. 4. ubuntu php composer
  14. 常用邮箱接收邮件服务器与发送邮件服务器列表
  15. 【ESP 保姆级教程】疯狂传感器篇 —— 案例:ESP8266 + MQ3酒精传感器 + 串口输出
  16. mysql sql 不能为空_SQL为空和=空
  17. matlab心线代码,matlab心形线
  18. error LNK2005:
  19. 【_ 記 】SpringBoot注解 (最新最全最详细)
  20. 一位资深数据人对数据挖掘的深度解读

热门文章

  1. espresso java_java – Espresso单击菜单项
  2. 301与302页面重定向
  3. R packages for big data:data.table
  4. 已触发了一个断点 vs_实现ABAP条件断点的三种方式
  5. linux实验二目录与文件查看相关命令,Linux文件和目录管理相关命令(二)
  6. 系统学习机器学习之神经网络(五) --ART
  7. 纯新手DSP编程--5.22-总结
  8. Vue 事件绑定 事件修饰符 条件判断 循环遍历
  9. 嵌入式系统——专业英语
  10. 嵌入式系统——指令平均时钟数和运算速度MIPS计算