我希望能够将自定义应用程序中的一些数据链接到 Excel 中的单元格。
你会用什么技术来做到这一点?我主要是一名 Unix 开发人员,并不深入了解 win32 技术。但据我了解,DDE 将是最简单的,即使它是非常古老的技术。
能够将它与 OpenOffice 等其他办公套件一起使用将是一个很大的好处。
“将自定义应用程序中的数据链接到 Excel 中的单元格”是什么意思?
您是否希望 Excel 工作表显示由某些外部应用程序生成的数据?
如果是这种情况,则有多种选择。Excel 数据提供程序是一种方法。如果您有大量要加载的数据,则此方法有效。对于一个细胞,这可能是矫枉过正。
如果可以通过网络接口(比如 HTTP)访问外部数据,那么您可以编写一些 Excel 宏代码来使用它。您可以在 Excel 中使用 ServerXmlHttp 对象来使用它。一些指导是在这里。
另一种方法是通过自定义 COM 对象公开数据,这是 Excel 非常容易使用的重用构造。您必须编写一些代码才能做到这一点,但这并不太复杂。您可以用 .NET、C++、Javascript、VBScript、PerlScript 等编写它
在 .NET 中,我会使用 Excel 的 COM 库。您可以使用 Workbook、Worksheet 和 Range 对象来处理特定工作表和工作簿中的特定单元格。这些在 .NET(尤其是 VB.NET)中运行良好。
COM 接口非常简单。你首先录制一个宏,然后做你想做的事。之后将生成的代码翻译成您选择的编程语言。
我在这里看到的所有解决方案都有将数据推送到 Excel 的方法。为什么不负责将这些数据拉到 Excel 本身呢?Excel 确实能够通过 oleDB 和 ODBC 添加数据。(至少从我知道的版本来看)我只能在Office2007中测试,这是我机器上唯一的版本。
您所要做的就是将此选项添加到带有数据选项卡的电子表格中。很简单。这样,您还可以免除维护应用程序中的代码以打开 Excel、运行一些代码以将代码推送到单元格等的负担。您可以为此录制一个宏并在打开 Excel 工作表时运行该宏。
链接到单元格值的最简单方法是通过 Visual Studio 2008 中的 .net 数据提供程序。这里是一些更常用方法的链接。 关联
由于数据提供者不一样,因此很难尝试将其用于开放办公室。
乔纳坦,
如果源应用程序将数据存储在数据库或文本文件中,则可以使用 excels 的内置数据函数来检索它。否则我会同意代顿与 VS2008 的集成。您可以使用 VS2005,但它需要您安装 VSTO。
关于 DDE - 除了几乎已经过时,使用不同版本的 Excel 和不同的语言时会出现问题,这将需要您对相同的操作使用不同的关键字
澄清一下:DDE 适用于开放式办公室。我是 Bloomberg 用户,我在 open office 中打开了一个 office 2003 电子表格,其中包含通过 DDE 更新的股票价格的 Bloomberg 链接,它就像一个魅力。