题 OpenOffice和.NET


是否有OpenOffice的.NET API?

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


13
2017-12-23 20:30


起源




答案:


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


3
2017-12-23 20:46





如果安装了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;

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


7
2017-09-10 22:29



贝恩的链接需要更新 使用C#创建OpenOffice Calc文档 - tinstaafl


这可能有所帮助:

“AODL是ODF的.net模块   工具包。图书馆是完整的   用纯C#编写,可以用来   将基于.net的软件扩展到   支持OpenDocument格式。至   在您的项目中使用AODL   分别是软件没有必要   一个深刻的知识分子   OpenDocument格式本身。它会   有助于了解发生了什么   在幕后和写你的   自己的扩展,但如上所述   在此之前不是根本   需求。”

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

最新的二进制下载是v1.2.0.1 旧的ADL SourceForge项目页面,虽然似乎是最新的源代码导致a(被遗弃) 叉子可以在Bitbucket上使用 (源代码树中包含的文档和更改日志读取v1.3.0.0)并编译得很好。

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

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


4
2017-12-23 21:42





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


0
2017-12-23 20:38





用于.NET Framework的Open Document Format API

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


0
2017-09-15 17:03