在 Delphi 中用 FireDAC 连接 Excel

今天遇到一个问 delphi 相关问题的,提问者“只会ADO的连接方式”,想知道“Delphi firedacquery如何连接EXCEL”,由此产生了一点兴趣,遂研究之,后记录之,供同好参考。

通常,在 Delphi 里编写一个桌面数据库应用的步骤可以很简单,拖曳4个控件即可:

- TADOConnect 控件,用于连接指定的数据库(ADO 驱动)

- TADOTable 控件,用于指定提供数据的数据表,也常用 TADOQuery 控件

- TDataDource 控件,用于在 数据集合(Table)  和 数据呈现(DBGrid)

- TDBGrid 控件,用于显示数据集合中的数据

为了提供更好的用户体验,可能还可以添加一个导航控件: 

- TDBNavigator 控件,用于对当前数据集进行添加记录、删除记录等的操作

总体大概如下图所示:

使用 FireDAC 组件建立数据库与此过程类似,现将步骤记录如下:

1、在工程中分别添加如下控件:

- TFDConnection 用于建立与数据源的连接

- TFDQuery  用于指定数据库中的数据表

- TDataSource 用于建立 数据表 与 数据显示 之间的桥梁

- TDBGrid 用于显示数据

建立完成如下图(与 ADO 方式并无大的区别):

2、双击 FDConnction1 图标,进入 FireDAC connection Editor 界面:

FireDAC 预提供了多种数据库支持,如:IBM DB2 Server、Microsoft SQL Server、MySQL Server、Oracle Server、Microsoft Access Database 等,其中没有 ADO,但提供了 ODBC,因此,可以选择使用 ODBC 方式来连接 Excel。

将 Driver ID 设置为 ODBC,如下图:

虽然现在就可以在表格填选各项设置,但推荐 点击 Wizard 按钮,使用 FireDAC 提供的向导功能来完成设置:

最终生成的设置如下图:

3、连接 FDConntion 和 FDQuery,双击 FDQuery 图标,进入 FireDAC Query Editor:

编写 SQL 语句:

select * from [sheet1$]

在此,有点需要提示的是:

 Excel 文件的工作簿中,通常会包含多个工作表(相当于数据库中的表),与通常 SQL 语句 Select 数据表名称表示方法不同,选择 Exce 的某个 Sheet,其表示方法如下:

[ sheet名$]

写完 SQL 语句后,可以点击 Excute 按钮,测试一下,如果正确,会在下方的 RecordSet 页中显示出 SQL 命令所获取的数据结果:

至此,用 FireDAC 连接 Excel 的关键部分基本完成,再将 FDQuery 与 DataSoure 和 DBGrid 连接起来即可。

你可能感兴趣的:(在 Delphi 中用 FireDAC 连接 Excel)