web-dev-qa-db-fra.com

Ouvrir et modifier un document Word

Je souhaite ouvrir un fichier Word enregistré sur mon serveur à l'aide de "Microsoft.Office.Interop.Word". Voici mon code:

    object missing = System.Reflection.Missing.Value;
    object readOnly = false;
    object isVisible = true;
    object fileName = "http://localhost:52099/modelloBusta/prova.dotx";
    Microsoft.Office.Interop.Word.ApplicationClass applicationWord = new Microsoft.Office.Interop.Word.ApplicationClass();
    Microsoft.Office.Interop.Word.Document modelloBusta = new  Microsoft.Office.Interop.Word.Document();

    try
    {

        modelloBusta = applicationWord.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref  missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible,ref missing, ref missing, ref missing, ref missing);
        modelloBusta.Activate();



    }
    catch (COMException eccezione){
        Console.Write(eccezione);
        modelloBusta.Application.Quit(ref missing, ref missing, ref missing);

    }

Dans le gestionnaire de tâches Windows, le processus est présent, mais le "document Word" n'apparaît pas (l'application ne démarre pas). Quel est le problème? Merci d'avance.

18
ilamaiolo

Vous devez vous assurer que la fenêtre de l'application Word est réellement rendue visible lors de l'automatisation de Word comme ça:

var applicationWord = new Microsoft.Office.Interop.Word.Application();
applicationWord.Visible = true;
21
Dirk Vollmar

ajoutez d'abord la dll de office.interop en ajoutant directement aux ressources puis ajoutez ceci en utilisant la directive:

using Microsoft.Office.Interop.Word;

et utilisez le code suivant

Application ap = new Application();
Document document = ap.Documents.Open(@"C:\invoice.docx");;
7
sulman

http://support.Microsoft.com/kb/257757

Microsoft ne recommande pas actuellement et ne prend pas en charge l'automatisation des applications Microsoft Office à partir de toute application ou composant client sans assistance non interactif (y compris les services ASP, ASP.NET, DCOM et NT), car Office peut présenter un comportement instable et/ou blocage lorsque Office est exécuté dans cet environnement.

http://freeword.codeplex.com/

Document document = new Document();
document.LoadFromFile("test.doct");
5
PeterHapen