Question

Remarque: j'ai trouvé cette " création d'un document Word en C #. NET " , mais ce n’est pas ce que je veux.

Savez-vous comment créer un .odt pour créer un fichier à partir de C # .NET?
Existe-t-il un composant ou un wrapper .NET pour une bibliothèque OpenOffice.org?

Était-ce utile?

La solution

Consultez l'AODL (voir http://odftoolkit.org/projects/odftoolkit/ pages / AODL ).

  • entièrement géré .NET 1.1 (donc il fonctionne sur MS.Net et Mono)
  • prise en charge des documents texte et des feuilles de calcul
  • créer, lire, éditer, enregistrer des documents
  • ...

EDIT par kame: Nouveau lien AODL-Wiki

Autres conseils

Vous pouvez consulter le site sur les normes OASIS pour obtenir des informations sur la norme ODT. D'après ce que j'ai vu, ils utilisent un standard basé sur XML et disposent d'un XSD pour le standard de document. Vous pouvez donc l'utiliser avec votre propre code pour créer un fichier de document au format approprié.

Vous pourriez être intéressé par Liaison de langue OpenOffice, UNO CLI .

J'ai trouvé celui-ci hier lorsque je cherchais un moyen de créer Spreadsheeets. Il semble que la création de fichiers d'écriture est assez similaire: http://www.suite101.com/content / creation-an-openoffice-calc-document-with-c-a124112 , n’oubliez pas d’installer d’abord le SDK Open Office d’Oracle.

Malheureusement, je n'ai pas trouvé le moyen de créer un fichier sans l'avoir encore ouvert.

Le code ressemblerait à ceci:

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

Les documents OpenOffice (odt) sont des fichiers ZIP. Vous pouvez décompresser un fichier existant, modifier le fichier content.xml à l'aide d'un code, puis utiliser la classe ZipFile de System.IO.Compression, par exemple, pour obtenir un fichier zip à nouveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top