用delphi和ado编辑excel表格

本分步指南介绍了如何连接到Microsoft Excel、检索图纸数据以及如何使用DBGrid编辑数据。您还可以找到流程中可能出现的最常见错误的列表,以及如何处理这些错误。...

本分步指南介绍了如何连接到Microsoft Excel、检索图纸数据以及如何使用DBGrid编辑数据。您还可以找到流程中可能出现的最常见错误的列表,以及如何处理这些错误。

Black woman using computer

以下内容包括:

  • Excel和Delphi之间的数据传输方法。如何使用ADO(ActiveX数据对象)和Delphi连接Excel。
  • 使用Delphi和ADO创建Excel电子表格编辑器
  • 从Excel中检索数据。如何在Excel工作簿中引用表(或范围)。
  • Excel字段(列)类型的探讨
  • 如何修改Excel工作表:编辑、添加和删除行。
  • 将数据从Delphi应用程序传输到Excel。如何创建工作表并使用MS Access数据库中的自定义数据填充工作表。

如何连接到microsoft excel

Microsoft Excel是一个功能强大的电子表格计算器和数据分析工具。由于Excel工作表的行和列与数据库表的行和列密切相关,许多开发人员发现将数据传输到Excel工作簿中进行分析是合适的;然后将数据检索回应用程序。

应用程序和Excel之间最常用的数据交换方法是自动化。自动化提供了一种使用Excel对象模型读取Excel数据的方法,可以深入工作表,提取其数据,并将其显示在类似网格的组件(即DBGrid或StringGrid)中。

自动化为您在工作簿中定位数据提供了最大的灵活性,并且能够格式化工作表并在运行时进行各种设置。

要在不自动化的情况下将数据传输到Excel或从Excel传输数据,可以使用其他方法,例如:

  • 将数据写入逗号分隔的文本文件,并让Excel将文件解析为单元格
  • 使用DDE(动态数据交换)传输数据
  • 使用ADO在工作表之间传输数据

使用ado进行数据传输

由于Excel与JET OLE DB兼容,因此您可以使用ADO(dbGO或AdoExpress)使用Delphi连接到Excel,然后通过发出SQL查询将工作表的数据检索到ADO数据集中(就像打开任何数据库表的数据集一样)。

这样,ADODataset对象的所有方法和功能都可用于处理Excel数据。换句话说,使用ADO组件可以构建一个可以使用Excel工作簿作为数据库的应用程序。另一个重要事实是Excel是进程外ActiveX服务器。ADO在进程内运行,节省了昂贵的进程外调用的开销。

使用ADO连接到Excel时,只能与工作簿交换原始数据。ADO连接不能用于工作表格式化或将公式实现到单元格。但是,如果将数据传输到预先格式化的工作表,则会保留该格式。将应用程序中的数据插入Excel后,可以使用工作表中的(预先录制的)宏执行任何条件格式设置。

您可以使用ADO和作为MDAC一部分的两个OLE DB提供程序连接到Excel:Microsoft Jet OLE DB提供程序或用于ODBC驱动程序的Microsoft OLE DB提供程序。我们将重点介绍Jet OLE DB Provider,它可以通过可安装的索引顺序访问方法(ISAM)驱动程序访问Excel工作簿中的数据。

提示:如果您是ADO新手,请参阅DelphiADO数据库编程初学者课程。

连接字符串魔术

ConnectionString属性告诉ADO如何连接到数据源。ConnectionString使用的值由ADO用于建立连接的一个或多个参数组成。

在Delphi中,TADOConnection组件封装了ADO连接对象;它可以由多个ADO数据集(TaToTable、TADOQuery等)组件通过其连接属性共享。

为了连接到Excel,有效的连接字符串只涉及两条附加信息—工作簿的完整路径和Excel文件版本。

合法连接字符串可能如下所示:

ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyWorkBooks\myDataBook.xls;Extended Properties=Excel 8.0;';

连接到Jet支持的外部数据库格式时,需要设置连接的扩展属性。在我们的例子中,当连接到Excel“数据库”时,扩展属性用于设置Excel文件版本。

对于Excel 95工作簿,此值为“Excel 5.0”(不带引号);对Excel 97、Excel 2000、Excel 2002和Excel XP使用“Excel 8.0”。

重要提示:您必须使用Jet 4.0提供程序,因为Jet 3.5不支持ISAM驱动程序。如果将Jet提供程序设置为3.5版,则会收到“找不到可安装的ISAM”错误。

另一个Jet扩展属性是“HDR=”。“HDR=Yes”表示范围中有一个标题行,因此Jet不会将选择的第一行包含到数据集中。如果指定了“HDR=No”,则提供程序将在数据集中包含范围(或命名范围)的第一行。

默认情况下,范围中的第一行被视为标题行(“HDR=Yes”)。因此,如果有列标题,则不需要指定此值。如果没有列标题,则需要指定“HDR=No”。

现在您已经准备好了,这是事情变得有趣的部分,因为我们现在已经准备好编写一些代码。让我们看看如何使用Delphi和ADO创建一个简单的Excel电子表格编辑器。

注意:即使您缺乏ADO和Jet编程方面的知识,也应该继续。如您所见,编辑Excel工作簿与编辑任何标准数据库中的数据一样简单。

  • 发表于 2021-09-11 00:21
  • 阅读 ( 240 )
  • 分类:编程

你可能感兴趣的文章

如何在excel中隐藏和取消隐藏工作表

...个属性,可以使工作表“非常隐藏”——只需在Visual Basic编辑器中调整某个值即可。 ...

  • 发布于 2021-03-12 02:50
  • 阅读 ( 204 )

如何在一分钟内对excel文件进行密码保护

...,如果您希望任何人都可以打开文档,但如果他们要进行编辑,则要求他们输入密码,该怎么办。这种系统很容易实现。 ...

  • 发布于 2021-03-12 07:52
  • 阅读 ( 192 )

10个简单的excel省时软件你可能已经忘记了

... 1用f2编辑单元格 ...

  • 发布于 2021-03-14 15:14
  • 阅读 ( 192 )

更快地搜索excel电子表格:用索引和匹配替换vlookup

... 这种方法工作得很好,但如果您计划在以后编辑电子表格,这种方法就不理想了。例如,如果我们要在电子表格中添加一个新列,我们就有可能打破我们的公式,因为price列将不再是左边的第三列。 ...

  • 发布于 2021-03-14 15:37
  • 阅读 ( 197 )

如何在手机或平板电脑上打开excel文件

...,有几种不同的应用程序能够打开电子表格并帮助您进行编辑。这是最好的。 ...

  • 发布于 2021-03-17 01:08
  • 阅读 ( 215 )

如何使用powerquery合并microsoftexcel中的多个数据集

... powerquery允许您从多个不同的源加载数据,编辑这些数据,然后将其导入Excel工作表。了解有关为什么应开始使用Microsoft Power Query的更多信息。 ...

  • 发布于 2021-03-19 06:12
  • 阅读 ( 239 )

如何使用vba脚本从excel电子表格发送电子邮件

... 单击“创建”按钮时,它将打开VBA编辑器。 ...

  • 发布于 2021-03-22 18:44
  • 阅读 ( 228 )

如何对excel中的替换行应用着色

...起应用。向表中添加新行时,将自动应用此格式。 如何编辑行底纹颜色 如果您对用于行着色的颜色不满意,可以更改它。不能直接编辑现有的Excel表格样式,但可以创建自己的样式或复制现有样式并进行编辑。 让我们看一下复...

  • 发布于 2021-04-02 21:19
  • 阅读 ( 157 )

如何在powerpoint演示文稿中链接或嵌入excel工作表

...非常简单,而且两者的过程几乎相同。首先,同时打开要编辑的Excel工作表和PowerPoint演示文稿。 在Excel中,选择要链接或嵌入的单元格。如果要链接或嵌入整个工作表,请单击左上角行和列连接处的框以选择整个工作表。 在Wind...

  • 发布于 2021-04-05 04:46
  • 阅读 ( 178 )

如何在word文档中链接或嵌入excel工作表

...而且两者的过程几乎相同。首先同时打开Excel工作表和要编辑的Word文档。 在Excel中,选择要链接或嵌入的单元格。如果要链接或嵌入整个工作表,请单击左上角行和列连接处的框以选择整个工作表。 在Windows中按CTRL+C或在macOS中...

  • 发布于 2021-04-05 04:58
  • 阅读 ( 178 )
红尘难
红尘难

0 篇文章

相关推荐