Comment charger du texte d’un document MS Word en C # (.NET)?

Comment charger un document MS Word (.doc et .docx) en mémoire (variable) sans le faire ?:

wordApp.Documents.Open

Je ne veux pas ouvrir MS Word, je veux juste ce texte à l’intérieur.

Vous m’avez donné réponse pour DOCX, mais qu’en est-il de DOC? Je souhaite une solution gratuite et performante – ne pas ouvrir 12 000 instances de Word pour toutes les traiter. 🙁 Aspose est un produit commercial, et 900 $, c’est beaucoup trop pour ce que je fais.

Vous pouvez utiliser wordconv.exe, qui fait partie du pack de compatibilité Office, pour convertir de doc en docx.

http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Appelez simplement la commande comme suit: “C: \ Program Files \ Microsoft Office \ Office12 \ wordconv.exe” -oice -nme InputFile OutputFile

Je ne sais pas si vous avez besoin de Word pour pouvoir fonctionner, mais cela fonctionne. Je l’utilise localement comme commande shell Windows pour convertir les anciens fichiers Office au format 2007 à tout moment.

Pour les documents Word au format docx, j’ai trouvé cet article intéressant dans CodeProject

Utilisation de DocxToText pour extraire du texte à partir de fichiers DOCX

Dans l’article, l’auteur discute de la suppression des mots eux-mêmes.

Pour vos documents Word (non docx) autres que ceux utilisant les API Office et (en arrière-plan) générant une instance de Word, vous pouvez essayer de vous connecter à l’un des nombreux convertisseurs Doc2Docx différents sur le marché, puis d’appliquer le processus ci-dessus à tous les deux.

Si vous utilisez docx, vous pouvez le faire sans interopérer avec un fichier Word .docx. En fait, un fichier ZIP contient un fichier XML. Vous pouvez lire le fichier XML. Veuillez vous reporter aux liens ci-dessous.

http://conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html

Formats de fichiers Open XML Office (2007)

J’ai récemment fait des recherches sur ce sujet. Il s’avère que pour pouvoir manipuler des fichiers Word de manière programmée sans ouvrir Word lui-même, vous avez besoin d’outils très coûteux.

Il y a un article sur le projet de code sur la manipulation de Word , vous pourriez le trouver utile. L’auteur crée un wrapper COM C # pour traiter les appels à Word. Il semble que cela ouvre en réalité le mot application.

Ce message sur les forums neowin semble également prometteur. Il inclut plusieurs appels PInvoked destinés à l’extraction de texte.

Peut-être que si vous pouviez trouver un moyen de garder la fenêtre cachée, ce serait acceptable.

Aspose a un composant pour lire, modifier et écrire des documents Word. Voici le lien du produit: Aspose.Words pour .NET et Java

Aspose.Words permet aux applications .NET et Java de lire, modifier et écrire des documents Word® sans utiliser Microsoft Word®. Aspose.Words prend en charge un large éventail de fonctionnalités, notamment la création de documents, la manipulation de contenu et de formatage, de puissantes capacités de fusion et publipostage, un support complet des formats DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument et PDF. Aspose.Words est le composant Word le plus abordable, le plus rapide et le plus riche en fonctionnalités du marché.

Avec docxtemplater , vous pouvez facilement obtenir le texte intégral d’un mot (ne fonctionne qu’avec docx).

Voici le code (Node.JS)

DocxTemplater=require('docxtemplater'); doc=new DocxTemplater().loadFromFile("input.docx"); result=doc.getFullText();

Ceci est juste trois lignes de code et ne dépend d’aucune instance de mot (tout JS simple)

Je ne veux pas être un antagoniste, mais pourquoi?

J’ai extrait des données de documents Word sur des serveurs Linux à l’aide de Word2X ou d’AbiWord et, en fonction du nombre et de la variété des documents, il y aura toujours des erreurs lors de l’extraction. Pire, plus il y a de puces, de sauts de page, de sections de document et d’autres fonctionnalités «spéciales».

Je comprends qu’il existe maintenant des options pour automatiser OpenOffice afin de traiter les documents, mais mon conseil est, si vous le pouvez, d’utiliser simplement Word pour traiter des documents Word.