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 ? :
- fiche de cours : https://www.it-connect.fr/comment-manipuler-des-fichiers-excel-avec-powershell/
- vidéo : https://www.youtube.com/watch?v=R6SuK9KEMII