« PowerShell/Fichier/Microsoft Excel » : différence entre les versions

Aller à la navigation Aller à la recherche
Ligne 13 : Ligne 13 :
<source>
<source>
<#
<#
Nom          : PSHEXL01
Nom          : PSHEXL001
Description  : création d'un fichier au format XLSX contenant la liste des processus
Description  : création d'un fichier au format XLSX contenant la liste des processus
Usage        : exercice en PowerShell
Usage        : exercice en PowerShell
Ligne 29 : Ligne 29 :
Clear-Host
Clear-Host


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


Ligne 39 : Ligne 42 :
Get-Process | Export-Excel -Path $fichierNom
Get-Process | Export-Excel -Path $fichierNom
Write-Host "Traitement terminé !" -ForegroundColor Green
Write-Host "Traitement terminé !" -ForegroundColor Green
</source>
== Exemple, conversion d'un fichier CSV en fichier XLSX ==
<source>
<#
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
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.- - - - - - - - - - - - - - - - - - - - -
</source>
</source>



Version du 27 août 2025 à 21:19

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

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
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
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

  •