lundi 7 novembre 2011

PowerShell - Excel - Combien de Rows dans la feuille

J'utilise beaucoup PowerShell pour automatiser des scripts de transformation de données Excel.
Il m'arrive régulièrement de ne pas connaître exactement le contenu des feuilles.
Ainsi, j'ai besoin de savoir combien de Rows et Columns sont utilisés dans une feuille Excel.

C'est une question à laquelle il n'est pas facile d'obtenir une réponse.
Maintenant que j'ai enfin trouvé la réponse, je la publie :-)
param([string]$file = $(throw "file parameter required.") )

# Ensure existence of the file
trap [Exception] {
      write-error $("TRAPPED: " + $_.Exception.GetType().FullName);
      write-error $("TRAPPED: " + $_.Exception.Message); 
   write-host "Missing source file: " $file -ForegroundColor Red
   Exit
}

$fullname = resolve-path $file
if( -not( Test-Path $fullname ) ){
 write-host "Missing source file: " $fullname -ForegroundColor Red
 Exit 
}

# Open the Excel file
Write-Host "Ouverture du fichier" -BackgroundColor Yellow
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$excel.Workbooks.Open( $fullname ) 


Write-Host "Extraction des données..." -BackgroundColor Yellow

$sheet = $excel.Sheets.Item(1)
Write-Host $sheet.UsedRange.Rows.count 
# Affiche "4147"
Write-Host $sheet.UsedRange.Columns.count
#Affiche "7" 

1 commentaire:

Anonyme a dit…

Merci pour ce post, je cherche depuis 1h la réponse à cette question. Et j'ai vu de tout et surtout de n'importe quoi qui ne fonctionne pas sur powershell.