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

如何使用C#.NET创建.odt文件?,c#,document,openoffice.org,C#,Document,Openoffice.org,注意:我找到了这个,但那不是我想要的 您知道如何创建.odt以从C#NET创建文件吗? OpenOffice.org库是否有一个.NET组件或包装器来实现这一点?您可以查看以获取有关ODT标准的信息。据我所见,他们使用的是基于XML的标准,并且有一个XSD可用于文档标准,因此您可以将其与自己的代码结合使用,以正确的格式构建文档文件。您可能会感兴趣。看看AODL(请参阅) 完全管理的.NET 1.1(因此它在MS.NET和Mono上运行) 支持文本和电子表格文档 创建、读取、编辑和保存文档

注意:我找到了这个,但那不是我想要的

您知道如何创建.odt以从C#NET创建文件吗?

OpenOffice.org库是否有一个.NET组件或包装器来实现这一点?

您可以查看以获取有关ODT标准的信息。据我所见,他们使用的是基于XML的标准,并且有一个XSD可用于文档标准,因此您可以将其与自己的代码结合使用,以正确的格式构建文档文件。

您可能会感兴趣。

看看AODL(请参阅)

  • 完全管理的.NET 1.1(因此它在MS.NET和Mono上运行)
  • 支持文本和电子表格文档
  • 创建、读取、编辑和保存文档
由kame编辑: 新链接

我昨天在寻找创建Spreadsheeets的方法时发现了这一点,它看起来与创建writer文件非常相似: ,别忘了先从Oracle安装Open Office SDK


不幸的是,我还没有找到一种在不打开文件的情况下创建文件的方法。

代码如下所示:

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();

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

用于.NET的AODL的官方版本不再可用。但是有一些叉子你仍然可以用。我找到的最好的叉子(还有作者的附加修复)是和。但我知道使用当前版本的OpenOffice/LibreOffice仍然存在一些问题。这个答案最适合我@MOVAX13H你能考虑添加到官方规格的链接到你的答案吗?要成为一个顶级答案,还可以添加一个代码示例。