Jump to content

Inhalt aus Excel in Combo-Box


Empfohlene Beiträge

Hallo Forum,

 

ich versuche den Inhalt einer Spalte eines Excel-Worksheets in einer Combo-Box auszugeben.

Grundsätzlich funktioniert das auch. Zumindest sind in, "$objCombobox.items" die gewünschtenNamen gespeichert.

Allerdings bekomme ich in der Combo-Box selber nur 4 x "system Object[]" angezeigt.

 

Wo liegt mein Fehler?

 

Hier mein Code:

 

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
$Namen = @()
$Zeile=1
$Page = "User"

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Combobox"
$objForm.Size = New-Object System.Drawing.Size(300,200) 
$objForm.StartPosition = "CenterScreen"
$objForm.KeyPreview = $True

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click(
   {
 foreach ($objItem in $objCombobox.SelectedItem)
         {$global:x = $objItem
          $global:x}
         $objForm.Close()
       })
$objForm.Controls.Add($OKButton)

$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)

$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20) 
$objLabel.Size = New-Object System.Drawing.Size(280,20) 
$objLabel.Text = "Treffen Sie bitte eine Auswahl:"
$objForm.Controls.Add($objLabel) 

$objCombobox = New-Object System.Windows.Forms.Combobox 
$objCombobox.Location = New-Object System.Drawing.Size(10,40) 
$objCombobox.Size = New-Object System.Drawing.Size(260,20) 
$objCombobox.Height = 70

$objexcel=New-Object -ComObject Excel.Application
$workbook=$objexcel.WorkBooks.Open('C:\temp\Users.xlsx')
$worksheet=$workbook.WorkSheets.item($Page)
$objexcel.Visible= $false


do {
      $Namen = @($worksheet.Cells.Item($Zeile,1).Text)
      write-host Name = $Namen
      [void] $objCombobox.Items.Add($Namen)
      $Zeile++
       }
while($worksheet.Cells.Item($Zeile,1).Text.Length -gt 0)

$objexcel.quit()
$objForm.Controls.Add($objCombobox) 

$objForm.Topmost = $True
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

Die Excel-Tabelle sieht so aus:

image.png.442c1709ac949a12c549757d9411ce1e.png

 

und die Combo-Box selber sieht so aus:

 

image.png.d27987033745c71640c715713960a3e6.png

 

vielen Dank für Eure Hilfe

Holger

Link zu diesem Kommentar

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...