Comment créer un document Word avec PowerShell

De nos jours, personne n’a besoin de passer des heures à taper ces rapports hebdomadaires. Tout ce dont ils ont besoin, c’est de Microsoft Word et d’un script PowerShell

Microsoft PowerShell fournit au programmeur un moyen simple mais efficace d’automatiser de nombreuses tâches sur l’ordinateur d’un utilisateur. Par exemple, si Microsoft Word est installé sur le PC, le développeur peut rapidement et facilement écrire un script qui:

  • exécuter Microsoft Word
  • créer un nouveau document Microsoft Word
  • ajouter et mettre en forme des paragraphes
  • enregistrer le document
  • fermer Microsoft Word

Ce processus peut également être effectué de manière invisible afin que l’utilisateur ne voie pas le fichier en cours d’écriture à l’écran. Il leur suffit d’exécuter le script et un nouveau fichier apparaîtra comme par magie sur leur ordinateur.

Exécution de Microsoft Word avec PowerShell

Microsoft Word n’est, bien sûr, pas une application .NET Framework mais PowerShell l’est. Cependant, cela n’empêche pas PowerShell d’interagir facilement avec l’application Word:

$ oWord = Nouvel objet -Com Word.Application
$ oWord.Visible = $ vrai

Si ce code est enregistré en tant que script (par exemple c: \ powershell \ word.ps1) et appelé à partir de l’invite de commande (comme illustré dans la figure 1), Microsoft Word démarre. Cependant, pour le moment, il ne contiendra aucun document.

Création d’un document Microsoft Word avec PowerShell

Lorsqu’un document est créé, il attend un certain nombre de paramètres. Cependant, le programmeur n’a pas besoin de savoir de quoi il s’agit. Au lieu de cela, ils créent une variable pour être un espace réservé:

$ oMissing = [System.Reflection.Missing] :: Valeur

Cette «valeur manquante» peut ensuite être utilisée par le programmeur pour créer le document:

$ oDoc = $ oWord.Documents.Add ($ oMissing, $ oMissing, $ oMissing, $ oMissing)

Si un utilisateur exécute le script maintenant, un document vierge apparaîtra.

Ajout de paragraphes à un document Microsoft Word avec PowerShell

Le programmeur peut ajouter du contenu à un document en créant et en formatant des paragraphes:

$ oPara1 = $ oDoc.Paragraphs.Add ($ oMissing)
$ oPara1.Range.Style = « Titre 1 »
$ oPara1.Range.Text = « Insérer un paragraphe avec PowerShell »
$ oPara1.Range.InsertParagraphAfter ()

L’exemple ci-dessus crée un titre tandis que le suivant crée un paragraphe qui utilise le style de page par défaut:

$ oPara2 = $ oDoc.Paragraphs.Add ($ oMissing)
$ oPara2.Range.Text = « L’automatisation de Microsoft Word est simple avec PowerShell »
$ oPara2.Range.InsertParagraphAfter ()

La fonction «InsertParagraphAfter» garantit que les paragraphes sont ajoutés dans l’ordre, l’un après l’autre.

Enregistrement d’un document Microsoft Word avec PowerShell

Si l’utilisateur exécute le script à ce stade (comme illustré dans la figure 2), il lui sera alors présenté un document Word formaté. Cependant, il n’existe pas net en tant que fichier sur l’ordinateur. La prochaine étape consiste donc à enregistrer le document:

$ filename = ‘C: \ Reports \ PowerShell.doc’
$ oDoc.SaveAs ($ filename,
$ oMissing, $ oMissing,
$ oMissing, $ oMissing,
$ oMissing, $ oMissing,
$ oMissing, $ oMissing,

$ oMissing, $ oMissing)

Cela enregistrera le document sur le PC (et si le fichier existe déjà, il sera écrasé).

Fermer un document Microsoft Word avec PowerShell

Une fois que le script a ajouté tout le contenu requis, le document doit être fermé:

$ oDoc.Close ()
$ oWord.Quit ()

À la fin du processus, l’application Word sera fermée en laissant uniquement le nouveau document sur l’ordinateur de l’utilisateur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *