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

时间:2008-10-21 22:30:09

标签: c# document openoffice.org

注意:我发现了这个"Creating a Word Doc in C#.NET",但这不是我想要的。

您知道如何创建 .odt 来从C#.NET创建文件吗? 是否有OpenOffice.org库的.NET组件或包装器来执行此操作?

6 个答案:

答案 0 :(得分:3)

看看AODL(见http://odftoolkit.org/projects/odftoolkit/pages/AODL)。

  • 完全管理.NET 1.1(因此它在MS.Net和Mono上运行)
  • 支持文字和电子表格文件
  • 创建,阅读,编辑,保存文档
  • ...

由kame编辑: 新链接 AODL-Wiki

答案 1 :(得分:2)

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

答案 2 :(得分:2)

您可能对OpenOffice, UNO CLI Language Binding感兴趣。

答案 3 :(得分:1)

我昨天在寻找创建Spreadsheeets的方法时发现了这个,看起来创建编写器文件非常相似: http://www.suite101.com/content/creating-an-openoffice-calc-document-with-c-a124112,不要忘记先从Oracle安装Open Office SDK。

不幸的是,我还没有找到一种方法来创建一个文件而不打开它。

答案 4 :(得分: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();

答案 5 :(得分:0)

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