Manipulation de documents Word sur un serveur sur lequel Office n’est pas installé (ASP.NET)

Je travaille sur un code pour créer un système MS Word en HTML. Après une demi-minute de recherche sur Google, j’ai pu trouver le code qui répond exactement à mes besoins. Maintenant .. Cela fonctionne hors ligne sur le serveur de développement ASP.NET, mais cela ne fonctionnera pas lorsque je télécharge les fichiers sur mon serveur.

J’ai lu quelques articles et le problème semble être lié au fait que MS Office n’est pas installé sur le serveur. Maintenant, je ne suis pas sûr que ce soit le cas, j’ai encore un email de la part de ces bonnes personnes (mais je suppose qu’il n’est pas installé), mais ma question est …

Y at-il AUCUN moyen de le faire fonctionner sans que MS Office soit installé? J’utilise Microsoft.Office.Interop.Word ver. 12. / ASP 3.5 / C # et l’erreur que je reçois est

Impossible de charger le fichier ou l’assembly ‘Microsoft.Office.Interop.Word, version = 12.0.0.0, Culture = neutre, PublicKeyToken = 71e9bce111e9429c’ ou l’une de ses dépendances.

Merci pour votre temps!

La bibliothèque Interop n’est pas une bibliothèque «fonctionnelle» en elle-même, elle n’est qu’une enveloppe autour des programmes winword.exe for .NET; son utilisation n’a donc aucun sens si vous n’installez ou n’utilisez pas Microsoft Word.

Au lieu de cela, vous devrez trouver une bibliothèque permettant de manipuler des documents Word. Si vous pouvez contraindre les documents à être dans le nouveau format (docx), la tâche sera assez facile, par exemple, en utilisant le SDK OOXML (comme proposé par Stilgar également). Mais il existe aussi des bibliothèques pour l’ancien format.

Mise à jour: je dois admettre que même si j’étais persuadé d’avoir déjà trouvé des bibliothèques pour l’ancien format de document, je ne parviens plus à les trouver, probablement parce que les listes de résultats sont “gâchées” par les nombreuses offres de docx. Pour être clair:

Si vous pouvez vous permettre de vous en tenir au format docx (2007 ou ultérieur), vous devriez le faire. Office Open XML est un standard (plus ou moins) ouvert basé sur ZIP et XML. De nombreux outils existent déjà et seront développés dans le futur. L’ancien format est beaucoup moins supporté de nos jours.

Si vous devez également utiliser l’ancien format, Aspose (proposé par Uwe) est la seule bibliothèque que j’ai trouvée.

Ce que j’utilise , c’est Aspose.Words , un package commercial.

Je pense que le SDK OOXML peut contenir quelque chose, mais il ne fonctionnera qu’avec docx et non avec l’ancien doc.

En ce qui concerne les anciens formats, je suis également intéressé par un moyen simple et peu coûteux de les prendre en charge sans avoir à utiliser les API d’automatisation.

  1. Vous devriez mieux expliquer quel est le résultat que vous voulez atteindre
  2. NO WAY, MS Office Interop doit être installé sur le serveur.
  3. Selon vos besoins, vous devriez trouver la meilleure bibliothèque tierce (je suggère OpenXml.WordprocessingDocument ) mais le code doit être réécrit.

vous pouvez utiliser Code7248.word_reader.dll

L’exemple de code ci-dessous explique comment utiliser Code7248.word_reader.dll.

Ajoutez une référence à cette DLL dans votre projet et copiez le code ci-dessous.

using System; using System.Collections.Generic; using System.Text; //add extra namespaces using Code7248.word_reader; namespace testWordRead { class Program { private void readFileContent(ssortingng path) { TextExtractor extractor = new TextExtractor(path); ssortingng text = extractor.ExtractText(); Console.WriteLine(text); } static void Main(ssortingng[] args) { Program cs = new Program(); ssortingng path = "D:\Test\testdoc1.docx"; cs.readFileContent(path); Console.ReadLine(); } } }