2010-12-08 5 views
2

Y a-t-il un moyen pour moi de lire le contenu des documents Open Office et des feuilles de calcul en utilisant C#?OpenOffice et C#

Veuillez me donner quelques conseils.

Répondre

1

Les composants logiciels ont un certain support pour les documents Open Office. See list and details here. Vous pouvez télécharger leurs composants d'essai/évaluation pour tester.

1

Open Office Les formats de document sont simples, chaque document est simple Fichier Zip contenant des fichiers XML. Xml contient un schéma ainsi que des données et les lire est assez simple.

Si vous voulez simplement extraire du texte, alors c'est plus facile, sinon vous pouvez utiliser System.Xml.Linq pour lire les fichiers xml afin d'extraire les données.

Pour tester, vous pouvez prendre n'importe quel document Office ouvert, le renommer comme quelque chose.zip et extraire et étudier son contenu. Vous pouvez utiliser la bibliothèque ISharpZip pour décompresser en C# et utiliser Linq pour étudier xml.

2

Ajouter aux références cli_bessatypes.dll, cli_cppuhelper.dll, cli_oootypes .dll, cli_uno.dll, cli_ure.dll et cli_uretypes.dll.

code

pour lire le fichier xls:

XComponentContext oStrap = uno.util.Bootstrap.bootstrap(); 

XMultiServiceFactory oServMan = (XMultiServiceFactory)oStrap.getServiceManager(); 
XComponentLoader oLoader = (XComponentLoader)oServMan.createInstance("com.sun.star.frame.Desktop"); 

string fileName = "file:///" + filePath; 

PropertyValue[] propVals = new PropertyValue[1]; 
propVals[0] = new PropertyValue(); 
propVals[0].Name = "Hidden"; 
propVals[0].Value.setValue(typeof(Boolean), true); 
XComponent oXlsDocument = oLoader.loadComponentFromURL(fileName, "_default", 0, propVals); 

XSpreadsheets oXlsSpreadsheet = ((XSpreadsheetDocument)oXlsDocument).getSheets(); 
XIndexAccess oXlsSheetIA = (XIndexAccess)oXlsSpreadsheet; 
XSpreadsheet oXlsSheet = (XSpreadsheet)oXlsSheetIA.getByIndex(0).Value; 
Questions connexes