PowerShell/Fichier/Microsoft Excel

Aller à la navigation Aller à la recherche

PowerShell et le module ImportExcel.

Généralité

Ce module ImportExcel est à installer :

  • Install-Module -Name ImportExcel

Liste des commandes de ce module :

  • Get-Command -Module ImportExcel

Information lors de l'import du module :

  • PowerShellGet requiert le fournisseur NuGet, version 2.8.5.201 ou ultérieur, pour interagir avec les référentils NuGet. Le fournisseur NuGet doit être disponible dans "C:\Programe Files\PackageManagement\ProviderAssemblies" ou "C:\Users\compte\AppData\Local\PackageManagement\ProviderAssemblies". Vous pouvez également installer le fournisseur NuGet en exécutant "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force". Voulez-vous que PowerShellGet installe et importe le fournisseur NuGet maintenant ?

Exemple, export des processus

<#
Nom           : PSHEXL001
Description   : création d'un fichier au format XLSX contenant la liste des processus
Usage         : exercice en PowerShell
Particularité : installation du module "Import-Excel" si nécessaire
Auteur        : fylip22, kono.phpage.fr
Version       : 1.0
Révisions     :
	- 1.0 (27/08/2025) : création du script
#>

Set-Location "C:\Support\"
$horodatage = Get-Date -Format "yyyyMMdd-HHmmss"
$fichierNom = "./processusListe-$horodatage.xlsx"

Clear-Host

# Nom du module PowerShell à installer
$modulePS = "ImportExcel"

if (Get-Module -Name $modulePS) {
    Write-Host ("Le module $modulePS est déjà installé !") -ForegroundColor Yellow
} else {
    Install-Module ImportExcel -Scope CurrentUser -Force
    Write-Host "Le module $modulePS est installé." -ForegroundColor Green
}

Write-Host "Export des processus en cours, au format Excel..." -ForegroundColor Cyan
Get-Process | Export-Excel -Path $fichierNom
Write-Host "Traitement terminé !" -ForegroundColor Green

Exemple, conversion d'un fichier CSV en fichier XLSX

<#
Nom           : PSHEXL002
Description   : conversion d'un fichier CSV en XLSX (Microsoft Excel)
Usage         : exercice en PowerShell
Particularité : - création du fichier CSV d'après une liste d'éléments
                - installation du module "Import-Excel" si nécessaire
Auteur        : fylip22, kono.phpage.fr
Version       : 1.0
Révisions     :
                - 1.0 (27/08/2025) : création du script
#>

Set-Location "C:\Support\"
$horodatage     = Get-Date -Format "yyyyMMdd-HHmmss"
$fichierNomCSV  = "./liste.csv"
$fichierNomXLSX = "./ListeXLSX-$horodatage.xlsx"

## A.- Création du fichier CSV avec du contenu
$liste = @(
    "Nom;Prénom;Age",
    "Bonneau;Jean;18",
    "Auchon;Paul;25",
    "Croche;Sarah;22"
    )
$liste | Out-File -FilePath .\$fichierNomCSV -Encoding utf8
## A.- - - - - - - - - - - - - - - - - - - - -

Clear-Host

## B.- Module PowerShell à installer
$modulePS = "ImportExcel"

if (Get-Module -Name $modulePS) {
    Write-Host ("Le module $modulePS est déjà installé !") -ForegroundColor Yellow
} else {
    Install-Module ImportExcel -Scope CurrentUser -Force
    Write-Host "Le module $modulePS est installé." -ForegroundColor Green
}
## B.- - - - - - - - - - - - - - - - - - - - -

## C.- Traitement
Write-Host "Import du fichier CSV et conversion en XLSX, en cours..." -ForegroundColor Cyan
Import-Csv $fichierNomCSV -Delimiter ";" -Encoding UTF8 | Export-Excel -Path $fichierNomXLSX
Write-Host "Traitement terminé !" -ForegroundColor Green
## C.- - - - - - - - - - - - - - - - - - - - -

Exemple, Active Directory

Export des utilisateurs de l'AD vers un fichier Microsoft Excel, avec comme nom de la feuille de calcul "Utilisateurs liste" et une largeur automatique de colonne en fonction du contenu :

Get-ADUser -Filter * | Export-Excel -Path "c:/support/UtilisateurListe.xlsx" -WorksheetName "Utilisateurs liste" -AutoSize

Référence

Vidéo Youtube, IT-Connect, PowerShell : comment manipuler des fichiers Excel ? :

Voir aussi

  •