如何使用C# .NET创建.odt文件?

8

注意:我在Stack Overflow上找到了一个名为“Creating a Word Doc in C#.NET”的帖子,但那不是我想要的。

您知道如何从C# .NET创建.odt文件吗?
是否有一个OpenOffice.org库的.NET组件或包装器可以实现这一点?

6个回答

3

AODL的官方.NET版本已不再提供。但是,您仍然可以使用一些分支。我发现的最好的分支(包含作者的额外修复)是aodl-reloadedaodl。但是我知道,在使用当前版本的OpenOffice/LibreOffice时仍存在一些问题。 - Alex

2
您可以访问 OASIS Standards 网站 了解有关ODT标准的信息。从我所见,他们正在使用基于XML的标准,并提供了XSD文档标准,因此您可以将其与自己的代码结合使用,以在正确的格式中构建文档文件。

2

1

0

代码应该长这样:

private XComponentContext oStrap = uno.util.Bootstrap.bootstrap();
XMultiServiceFactory oServMan = (XmultiServiceFactory) oStrap.getServiceManager();
XComponentLoader oDesk = (XComponentLoader) oServMan.createInstance("com.sun.star.frame.Desktop");
string url = @"private:factory/swriter";
PropertyValue[] propVals = new PropertyValue[0];
XComponent oDoc = oDesk.loadComponentFromURL(url, "_blank", 0, propVals);
string docText = "File Content\n\r";
((XTextDocument)oDoc).getText().setString(docText);
string fileName = @"C:\FolderName\FileName.odt";
fileName = "file:///" + fileName.Replace(@"\", "/");
((XStorable)oDoc).storeAsURL(fileName, propVals);
((Xcomponent)oDoc).dispose();

0

OpenOffice文档(odt)是ZIP文件。您可以解压现有的文件,通过代码修改content.xml文件,然后使用System.IO.Compression中的ZipFile类来再次获取zip文件。Open Office规范


1
这个答案最适合我了。@movAX13h,你能否考虑在你的答案中添加官方规范的链接http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1-html/OpenDocument-v1.1.html#outline:17.1.Introduction?为了成为顶尖答案,有人还可以添加代码示例。 - adabru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接