将自定义应用程序中的数据获取到 EXcel 中

发布于 2024-07-19 21:44:01 字数 186 浏览 10 评论 0原文

我希望能够将自定义应用程序中的一些数据链接到 Excel 中的单元格。

您会使用什么技术来做到这一点? 我主要是一名 Unix 开发人员,并不深入了解 win32 技术。 但据我了解,DDE 是最简单的,尽管它是非常古老的技术。

能够将它与其他办公套件(例如 OpenOffice)一起使用将是一个很大的好处。

I would like to be able to link some data from a custom application to a cell in Excel.

What tech would you use to do that? I'm primarily a Unix-developer, and don't know win32 technologies in depth. But as far as I understand DDE would be the easiest, even though it is very old tech.

Being able to use it with other office suites such as OpenOffice would be a big bonus.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

鱼窥荷 2024-07-26 21:44:01

“将数据从自定义应用程序链接到 Excel 中的单元格”是什么意思?

您是否希望 Excel 工作表显示由某些外部应用程序生成的数据?

如果是这种情况,有多种选择。
Excel 数据提供程序是一种方法。 如果您有大量想要加载的数据,这很有效。 对于仅仅一个细胞来说,这可能有点过大了。

如果外部数据可通过网络接口(例如 HTTP)访问,那么您可以编写一些 Excel 宏代码来使用它。 您可以使用 ServerXmlHttp 对象从 Excel 中使用它。 此处对此有一些指导。

另一种方法是通过自定义 COM 对象公开数据,重用 Excel 非常容易使用的结构。 您必须编写一些代码才能做到这一点,但这并不太复杂。 您可以用 .NET、C++、Javascript、VBScript、PerlScript 等编写它

What does it mean "link data from a custom app to a cell in Excel"?

Do you want the Excel sheet to display data that is generated by some external app?

If that is the case there are a number of options.
The Excel data provider is one way to go. This works if you have lots of data you'd like to load. For just one cell, it may be overkill.

If the external data is accessible via a network interface (let's say, HTTP), then you can write some Excel macro code to consume it. You could use the ServerXmlHttp object to consume it, from within Excel. Some guidance on that is HERE.

Another way to do it is to expose the data via a custom COM object, a re-use construct that is very consumable by Excel. You'd have to write some code to do it, but it's not too complicated. You can write it in .NET, C++, Javascript, VBScript, PerlScript, ...

三岁铭 2024-07-26 21:44:01

在 .NET 中,我将使用 Excel 的 COM 库。 您可以使用 Workbook、Worksheet 和 Range 对象来寻址特定工作表和工作簿中的特定单元格。 这些在 .NET(尤其是 VB.NET)中运行良好。

In .NET I would use the COM libraries for Excel. You can use Workbook, Worksheet and Range objects to address specific cells in specific worksheets and workbooks. These work well from .NET (especially VB.NET).

叹梦 2024-07-26 21:44:01

COM 接口非常简单。 您首先录制宏,然后执行您想要执行的操作。 之后,将生成的代码翻译成您选择的编程语言。

The COM interface is really easy. You start by recording a macro, and do what you intend to do. After that translate the generated code into the programming language of your choice.

机场等船 2024-07-26 21:44:01

我在这里看到的所有解决方案都有将数据推向卓越的方法。
为什么不把提取这些数据的责任交给 Excel 本身呢?
Excel 确实能够通过 oleDB 和 ODBC 添加数据。 (至少从我知道的版本来看)我只能在Office2007中进行测试,这是我机器上唯一的版本。

您所要做的就是将此选项添加到带有数据选项卡的电子表格中。
很简单。 这样,您还可以摆脱在应用程序中维护代码以打开 Excel、运行一些代码以将代码推送到单元格等的负担。
您可以为此录制一个宏,并在打开 Excel 工作表时运行该宏。

All solutions I have seen here have the approach to push the data to excel.
Why not give the responsibility of pulling this data to Excel itself?
Excel does have the ability to add data through oleDB and ODBC. (at least from the version I know) I can only test that in Office2007, the only version I have on my machines.

All you have to do is add this option to the spreadsheet with the data tab.
Pretty simple. That way you also free yourself from the burden to maintain the code in your app to open Excel, run some code to push the code into the cells etc.
You could probably record a macro for this and run that when the excel sheet is opened.

不…忘初心 2024-07-26 21:44:01

链接到单元格值的最简单方法是通过 Visual Studio 2008 中的 .net 数据提供程序。以下是一些更常见方法的链接。 链接

尝试和制作会很困难这可以用于开放式办公室,因为数据提供者不一样。

Easiest way to link to a cell value is via the .net data providers in Visual Studio 2008. Here is a link to some of the more common methods. Link

It's going to be difficult to try and make this available to open office as the data providers aren't the same.

烂柯人 2024-07-26 21:44:01

我建议使用 Java/JVM 及其 Apache POI 库。

它可以读写Excel文件,并且是纯跨平台的java。
在实践中是相当可靠的。

http://poi.apache.org/

I'd recommend using Java/JVM and its Apache POI library.

It can read and write Excel files and it's pure cross-platform java.
It's pretty reliable in practice.

http://poi.apache.org/

剧终人散尽 2024-07-26 21:44:01

Jonatan,

如果源应用程序将数据存储在数据库或文本文件中,则可以使用 Excel 的内置数据函数来检索它。 否则我会同意 Dayton 与 VS2008 集成的观点。 您可以使用 VS2005,但它需要您安装 VSTO。

关于 DDE - 除了几乎已过时之外,使用不同版本的 Excel 和不同语言时也会出现问题,这将要求您对同一操作使用不同的关键字

Jonatan,

If the source application stores the data in a database, or a text file, it will be possible to use excels' build in data functions to retrieve it. Otherwise I would agree with Dayton on the integration with VS2008. You can use VS2005, however it will require you to install VSTO.

Regarding DDE - aside of being almost obsolete, there are problems while using different versions of Excel and different languages, which will require you to use different keywords for the same operation

叹倦 2024-07-26 21:44:01

只是澄清一下:DDE 适用于开放式办公室。 我是一位 Bloomberg 用户,我在开放式办公室中打开了一个 Office 2003 电子表格,其中包含通过 DDE 更新的 Bloomberg 股票价格链接,它的工作方式就像一个魅力。

Just to clarify: DDE works with open office. I am a Bloomberg user, and I opened an office 2003 spreadsheet in open office which contained bloomberg links to stock prices updated via DDE, and it works like a charm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文