Domanda

Nota: ho trovato questo " Creazione di un documento Word in C #. NET " , ma non è quello che voglio.

Sai come creare un .odt per creare file da C # .NET?
Esiste un componente o wrapper .NET per una libreria OpenOffice.org per farlo?

È stato utile?

Soluzione

Dai un'occhiata ad AODL (vedi http://odftoolkit.org/projects/odftoolkit/ pagine / AODL ).

  • .NET 1.1 completamente gestito (quindi funziona su MS.Net e Mono)
  • supporto per documenti di testo e fogli elettronici
  • crea, leggi, modifica, salva documenti
  • ...

EDIT per kame: Nuovo link AODL-Wiki

Altri suggerimenti

Puoi visitare il sito degli standard OASIS per informazioni su lo standard ODT. Da quello che ho visto, stanno usando uno standard basato su XML e hanno un XSD disponibile per lo standard del documento, quindi puoi usarlo insieme al tuo codice per creare un file di documento nel formato corretto.

Potresti essere interessato a OpenOffice, UNO CLI Language Binding .

L'ho trovato ieri quando cercavo un modo per creare fogli di calcolo, sembra che la creazione di file di scrittura sia abbastanza simile: http://www.suite101.com/content / creando-un-openoffice-calc-document-with-c-a124112 , non dimenticate di installare prima Open Office SDK da Oracle.

Sfortunatamente non ho trovato un modo per creare un file senza ancora aprirlo.

Il codice sarebbe simile al seguente:

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

I documenti OpenOffice (odt) sono file ZIP. Puoi decomprimerne uno esistente, modificare il file content.xml in base al codice e quindi utilizzare la classe ZipFile da System.IO.Compression per esempio per ottenere nuovamente un file zip.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top