首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenOffice和.NET

OpenOffice和.NET
EN

Stack Overflow用户
提问于 2008-12-23 20:30:36
回答 5查看 20.3K关注 0票数 16

有没有适用于OpenOffice的.NET接口?

编辑:有适用于.NET的OpenOffice软件开发工具包吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-12-23 20:46:17

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

票数 4
EN

Stack Overflow用户

发布于 2009-09-10 22:29:05

如果您已经安装了OpenOffice,那么您可以使用"OpenOffice SDK“(current version here)从多个编程环境(包括.NET )来控制该实例。您可以通过这种方式使用OpenOffice来完成许多不同的事情;例如,将文件从一种文件格式转换为另一种文件格式。这类似于您可以通过COM控制Microsoft Office的方式。

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

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

我发现Mark Alexander Bain的Creating an OpenOffice Calc Document with C#是以这种方式控制OpenOffice的最直接、最实际的介绍性文章。

CLI绑定主要是非.NET对象模型的端口/映射,因此您需要了解非.NET特定的OpenOffice API Developer's Guide之类的内容。

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

代码语言:javascript
复制
XComponentLoader xComponentLoader =
    (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, desktop);

只需使用

代码语言:javascript
复制
XComponentLoader xComponentLoader = (XComponentLoader)desktop;

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

票数 8
EN

Stack Overflow用户

发布于 2008-12-23 21:42:21

This might help:

"AODL是ODF Toolkit的.net模块。该库完全是用纯C#编写的,可用于扩展基于.net的软件以支持OpenDocument格式。要在您的项目软件中使用AODL,不需要对OpenDocument格式本身有深入的了解。了解幕后的情况和编写自己的扩展会很有帮助,但正如前面所提到的,这不是一个基本要求。“

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

最新的二进制下载是old ADL SourceForge project page内部可用的v1.2.0.1,而似乎是导致(也被放弃的) fork is available on Bitbucket (源代码树中包含的文档和changelog为v1.3.0.0)的最新源代码,并且编译得很好。

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

ODFDOM Code Generator用于生成ODFDOM的核心类,这些核心类是

元素在真正Java类上的类型化映射。在未来,我们还计划使用这个生成器为其他编程语言生成ODFDOM,例如C# ( .NET )。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/390006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档