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

Aller à la navigation Aller à la recherche
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 9 : Ligne 9 :
Liste des commandes de ce module :
Liste des commandes de ce module :
* <source inline>Get-Command -Module ImportExcel</source>
* <source inline>Get-Command -Module ImportExcel</source>
Information lors de l'import du module :
* <code>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 ?</code>


== Exemple, export des processus ==
== Exemple, export des processus ==
<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
Particularité : installation du module "Import-Excel" si nécessaire
Particularité : installation du module "Import-Excel" si nécessaire
Auteur        : fylip22
Auteur        : fylip22, kono.phpage.fr
Version      : 1.0
Version      : 1.0
Révisions    :
Révisions    :
Ligne 29 : Ligne 32 :
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 45 :
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, 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.- - - - - - - - - - - - - - - - - - - - -
</source>
</source>



Dernière version du 6 novembre 2025 à 20:27

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

  •