OpenOffice 和 .NET

发布于 2024-07-11 21:38:57 字数 80 浏览 6 评论 0原文

OpenOffice 有 .NET API 吗?

编辑:是否有适用于 .NET 的 OpenOffice SDK?

Is there a .NET API for OpenOffice?

EDIT: Is there a OpenOffice SDK for .NET?

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

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

发布评论

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

评论(5

梦忆晨望 2024-07-18 21:38:57

如果您安装了 OpenOffice,则可以使用“OpenOffice SDK”(此处的当前版本) 从多个编程环境(包括 .NET)控制该实例。 您可以通过这种方式使用 OpenOffice 来完成许多不同的事情; 一个示例是将文件从一种文件格式转换为另一种文件格式。 这类似于如何通过 COM 控制 Microsoft Office。

SDK 附带一组 CLI/.NET 绑定,默认安装在(SDK v3.0 的示例)中:

C:\Program Files\OpenOffice.org_3.0_SDK\sdk\cli

我找到了 Mark Alexander Bain 的 使用 C# 创建 OpenOffice Calc 文档是以这种方式控制 OpenOffice 的最简单、最实用的介绍性文章。

CLI 绑定主要是非 .NET 对象模型的端口/映射,因此您需要了解诸如非 .NET 特定的 OpenOffice API 开发人员指南

到目前为止,我发现 CLI 绑定和其他文档之间的主要区别在于,使用 CLI 绑定,您可以使用正常的 .NET 转换语法而不是使用 UnoRuntime.queryInterface() 方法将对象转换为新接口。 例如,不仅仅是

XComponentLoader xComponentLoader =
    (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, desktop);

使用

XComponentLoader xComponentLoader = (XComponentLoader)desktop;

这里还有一些关于如何将 OpenOffice/UNO 内容映射到 CLI 绑定中的 .NET 概念的非常技术文档:http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/CLI/CLI_Language_Binding

If you have OpenOffice installed, then you can use the "OpenOffice SDK" (current version here) to control that instance from several programming environments, including .NET. You can use OpenOffice this way to accomplish a number of different things; one example is converting files from one file format to another. It's analogous to how you can control Microsoft Office via COM.

A set of CLI/.NET bindings come with the SDK, and are by default installed in (example for SDK v3.0):

C:\Program Files\OpenOffice.org_3.0_SDK\sdk\cli

I've found Mark Alexander Bain's Creating an OpenOffice Calc Document with C# to be the most straightforward, hands-on, introductory article to controlling OpenOffice that way.

The CLI bindings are mostly a port/mapping of the non-.NET object model, so you'll want to get into things like the non-.NET-specific OpenOffice API Developer's Guide.

So far the main difference I've found between the CLI bindings and the other documentation is that with the CLI bindings you cast an object to a new interface using normal .NET cast syntax rather than with the UnoRuntime.queryInterface() method. For example, instead of

XComponentLoader xComponentLoader =
    (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, desktop);

just use

XComponentLoader xComponentLoader = (XComponentLoader)desktop;

There are also some pretty technical docs of how the OpenOffice/UNO stuff gets mapped onto .NET concepts in the CLI binding here: http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/CLI/CLI_Language_Binding

你曾走过我的故事 2024-07-18 21:38:57

Novel 有一个 OOo 分支,它添加了单声道功能,因此您可以使用这些构建通过 OOo 内的 .Net 编写脚本。 OOo 的文档格式(Base 除外)是 XML + zip 容器中的资源。 如果您需要手动文件操作以外的编程访问,最好的选择是使用带有 COM Interop 的 ActiveX 控件。 如果你想在.Net中使用Base作为数据源,那几乎是不可能的,因为它是一个嵌入式Java数据库结构,没有成熟的.net端口。

Novel has a branch of OOo that adds mono capabilities, so you can use these builds for scripting via .Net inside OOo. The document formats for OOo (except for Base) is XML + resources in a zip container. If you need programmatic access beyond manual file manipulation, your best bet is to use the ActiveX control with COM Interop. If you want to use Base as a datasource in .Net, it is near impossible, as it's an embedded Java database structure without a mature .net port.

抱着落日 2024-07-18 21:38:57

这可能有帮助:

“AODL是ODF的.net模块
工具包。 图书馆已经完全
用纯 C# 编写,可用于
将您的基于 .net 的软件扩展到
支持 OpenDocument 格式。 到
在您的项目中使用 AODL
分别软件不需要
的深厚知识
OpenDocument 格式本身。 它会
有助于了解正在发生的事情
在幕后和写下你的
自己的扩展,但如上所述
在这不是一个基本的之前
要求。”

模块在 Apache 孵化器过渡期间已被放弃,最近的官方二进制文件或源代码下载不可用(请参阅 新闻组帖子 1新闻组帖子 2新闻组帖子 3

最新的二进制文件下载 v1.2.0.1 可在旧 ADL SourceForge 项目页面中找到,而似乎是最新的源代码导致(也被废弃)Bitbucket 上有分叉(源代码树中包含的文档和更改日志为 v1.3.0.0)并且编译得很好。

将来,新的 ODFDOM 中可能会有一个官方替代方案,其生成器应该有一天支持 .NET/C#/etc:

ODFDOM 代码生成器用于生成核心类
ODFDOM 是真实 Java 上 ODF 元素的类型化映射
课程。 未来我们还计划生成 ODFDOM,例如 C# (.NET
)对于使用此生成器的其他编程语言。

This might help:

"AODL is the .net module of the ODF
Toolkit. The library is completly
written in pure C# and can be used to
extend your .net based software to
support the OpenDocument Format. To
use AODL within your projects
respectively software there is no need
of a deep knowlegde of the
OpenDocument Format itself. It would
be helpfull to understand what's going
behind the scenes and for writing your
own extensions, but as mentioned
before this isn't a fundamental
requirement."

This module has been abandoned during the Apache incubator transition, recent official binary or sources downloads are unavailable (see newsgroup post 1, newsgroup post 2, newsgroup post 3.

The most recent binary download is v1.2.0.1 available inside the old ADL SourceForge project page, while what seems to be the most recent source code resulting in a (abandoned too) fork is available on Bitbucket (the documentation and changelog included in the source tree read v1.3.0.0) and compiles just fine.

In the future there might be an official alternative in the new ODFDOM, whose generator is supposed to support .NET/C#/etc one day:

The ODFDOM Code Generator is used to generate the core Classes for
ODFDOM which are a typed mapping of the ODF elements on real Java
Classes. For the future we also plan to generate ODFDOM e.g. C# ( .NET
) for other programming languages with this generator.

我乃一代侩神 2024-07-18 21:38:57

取决于您的需求。 大多数 OpenOffice 文档格式都是 XML 可读且可创建的。

Depends on your needs. Most of the OpenOffice document formats are XML readable, and creatable.

魂牵梦绕锁你心扉 2024-07-18 21:38:57

适用于 .NET Framework 的开放文档格式 API

该 API 支持开放文档格式 OASIS 开放文档格式中定义的标准。 ODF .NET 允许您编写应用程序来创建、修改和解析文本文档和电子表格。 支持.NET Framework、.NET Compact Framework 和 Mono 的所有版本。

Open Document Format API for .NET Framework

The API supports Open Document Format standard as defined in the OASIS Open Document Format. ODF .NET allows you to write applications to create, modify and parse text documents and spreadsheets. Supports all versions of .NET Framework, .NET Compact Framework and Mono.

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