2017-12-05 8 views
0

enter image description hereLesewert von Excel-Blatt

$filepath = "C:\Users\Desktop\New folder\Tangent.xlsx" 
$sheetname = "sheet" 
$objExcel = New-Object -ComObject Excel.Application 
$objExcel.Visible = $false 
$WorkBook = $objExcel.Workbooks.Open($filepath) 
$WorkBook.sheets | Select-Object -Property Name 
$WorkSheet = $WorkBook.Sheets.Item($sheetname) 
$myObj = [PSCustomObject][ordered]@{ 
    john = $WorkSheet.Range("B1").Text 
    Rebel = $WorkSheet.Range("B2").Text 
    MArk = $WorkSheet.Range("B3").Text 
    Susan = $WorkSheet.Range("B4").Text 
    Patty = $WorkSheet.Range("B5").Text 
} 

ich alle Namen in den Code fest einprogrammiert haben, die eine seltsame Art und Weise ist, es zu tun. Ich möchte, dass es aus dem Excel-Befehl liest. Kann mir bitte jemand helfen?

Antwort

0

Erstellen Sie eine leere Hashtabelle, und füllen Sie sie, während Sie über die Zeilen in Ihrer Excel-Tabelle iterieren, und erstellen Sie dann das Objekt.

$ht = @{} 
$i = 1 
while ($WorkSheet.Cells.Item($i, 1).Text) { 
    $ht[$WorkSheet.Cells.Item($i, 1).Text] = $WorkSheet.Cells.Item($i, 2).Text 
    $i++ 
} 
$obj = [PSCustomObject]$ht 

Ungetestet, da ich Excel hier nicht zur Hand habe.

Verwandte Themen