2008-10-21 8 views

Antwort

3

Werfen Sie einen Blick auf AODL (siehe http://odftoolkit.org/projects/odftoolkit/pages/AODL).

  • vollständig verwaltete .NET 1.1 (so läuft es auf MS.Net und Mono)
  • Unterstützung für Text und Tabellenkalkulationsdokumente
  • erstellen, lesen, bearbeiten, speichern Dokumente
  • ...

EDIT von kame: Neuer Link AODL-Wiki

+0

Die offizielle Version von AODL für .NET ist nicht mehr verfügbar. Aber da gibt es noch ein paar Gabeln die man noch benutzen kann. Die besten Gabeln, die ich gefunden habe (mit zusätzlichen Korrekturen der Autoren), sind [aodl-reloaded] (https://code.google.com/p/aodl-reloaded/) und [aodl] (https://bitbucket.org/). chrisc/aod). Aber ich weiß, dass es immer noch Probleme mit den aktuellen Versionen von OpenOffice/LibreOffice gibt. – Alex

+3

@bmotmans Ihr Link ist kaputt –

2

Sie können die OASIS Standards site Informationen zum ODT-Standard überprüfen. Von dem, was ich gesehen habe, verwenden sie einen XML-basierten Standard und haben eine XSD für den Dokument-Standard zur Verfügung, so dass Sie in Verbindung mit Ihrem eigenen Code eine Dokumentdatei im richtigen Format erstellen können.

0

Der Code würde wie folgt aussehen:

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

Openoffice-Dokumente (ODT) sind ZIP-Dateien. Sie können ein vorhandenes entpacken, die content.xml-Datei nach Code ändern und anschließend die ZipFile-Klasse von System.IO.Compression verwenden, um beispielsweise erneut eine Zip-Datei zu erhalten.

Verwandte Themen