Question Powershell - Insérer des données excel dans une GU

Plus d'informations
il y a 6 ans 5 mois #24464 par RAM
Bonjour,


Cela fais plusieurs jours que je suis bloqué.

Je souhaite importer des données d'un fichiers xls vers une interface graphique powershell.

L'interface est créée (voir image jointe) mais je peche au moment de configurer le bouton click.

J'ai 4 colonnes de données dans un fichier excel et je souhaite les importer dans mon tableau (GUI Powershell).

Quelqu'un pourrait-il m'aider
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 4 mois #24469 par Philippe
salut Azz

si tu nous donne une base de script sur lequel travailler, on pourra d'aidée !!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 4 mois #24471 par RAM
J'ai testé pas mal de chose

voici l'etat actuel de mon script.


[code:1]$excel = New-Object -ComObject excel.application
$excel.visible = $False
$excel_file_path = 'C:TempClasseur.xlsx'
$workbook = $excel.Workbooks.Open($excel_file_path)
$worksheet=$workbook.Worksheets.item(1)

$line = @(8,9,10,11,12,13,14,15,16,17,18,19,20)
$col = 2
$col2 = 3
$col3 = 6
$col4 = 16


$CheckButton_OnClick=
{


$col = $list.Columns.Add(\"Article\",110)
$col = $sheet.UsedRange.Columns.Number
$worksheet.cells.item.($line,$col).text
#$worksheet.cells.item($lines,2).text
#$worksheet.cells.item(10,2).text
#$worksheet.cells.item(11,2).text
#$worksheet.cells.item(12,2).text
#$worksheet.cells.item(13,2).text
#$worksheet.cells.item(14,2).text
#$worksheet.cells.item(15,2).text
#$worksheet.cells.item(16,2).text
#$worksheet.cells.item(17,2).text
#$worksheet.cells.item(18,2).text
#$worksheet.cells.item(19,2).text
#$worksheet.cells.item(20,2).text
$col2 = $list.Columns.Add(\"Ref\", 240)
$col2 = $sheet.UsedRange.Columns.Count
#$col2 = $worksheet.cells.item($line,$col2).text
#$worksheet.cells.item(9,$col2).text
#$worksheet.cells.item(10,$col2).text
#$worksheet.cells.item(11,$col2).text
#$worksheet.cells.item(12,$col2).text
#$worksheet.cells.item(13,$col2).text
#$worksheet.cells.item(14,$col2).text
#$worksheet.cells.item(15,$col2).text
#$worksheet.cells.item(16,$col2).text
#$worksheet.cells.item(17,$col2).text
#$worksheet.cells.item(18,$col2).text
#$worksheet.cells.item(19,$col2).text
#$worksheet.cells.item(20,$col2).text
$col3 = $list.Columns.Add(\"StockDSI\", 80)
$col3 = $sheet.UsedRange.Columns.Count
#$col3 = $worksheet.cells.item($line,$col3).text
#$worksheet.cells.item(9,$col3).text
#$worksheet.cells.item(10,$col3).text
#$worksheet.cells.item(11,$col3).text
#$worksheet.cells.item(12,$col3).text
#$worksheet.cells.item(13,$col3).text
#$worksheet.cells.item(14,$col3).text
#$worksheet.cells.item(15,$col3).text
#$worksheet.cells.item(16,$col3).text
#$worksheet.cells.item(17,$col3).text
#$worksheet.cells.item(18,$col3).text
#$worksheet.cells.item(19,$col3).text
#$worksheet.cells.item(20,$col3).text
$col4=$list.Columns.Add(\"Stock RUCHE\", 90)
$col4 = $sheet.UsedRange.Columns.Count
#$col4 = $worksheet.cells.item($line,$col4).text
#$worksheet.cells.item(9,$col4).text
#$worksheet.cells.item(10,$col4).text
#$worksheet.cells.item(11,$col4).text
#$worksheet.cells.item(12,$col4).text
#$worksheet.cells.item(13,$col4).text
#$worksheet.cells.item(14,$col4).text
#$worksheet.cells.item(15,$col4).text
#$worksheet.cells.item(16,$col4).text
#$worksheet.cells.item(17,$col4).text
#$worksheet.cells.item(18,$col4).text
#$worksheet.cells.item(19,$col4).text
#$worksheet.cells.item(20,$col4).text

}



function GenerateForm {
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$form = New-Object System.Windows.Forms.Form
$form.Text = \"Comparateur Ruche/Exploitation\"
$form.Name = \"DSI\"
$form.Size = New-Object System.Drawing.Size(550,510)
$form.StartPosition = \"CenterScreen\"

$Form.BackgroundImageLayout = \"None\"
$list = New-Object System.Windows.Forms.ListView
$list.TabIndex = 3
$list.Location = New-Object System.Drawing.Point(3,30)
$list.Size = New-Object System.Drawing.Size(525, 382)
$list.View = \"Details\"
$list.GridLines = $true
$list.FullRowSelect = $true
$list.AllowColumnReorder = $true
$list.Scrollable = $true
$list.Sorting ='None'
$list.add_ColumnClick({SortList $_.Column})
$form.Controls.Add($list)

$CheckButton = New-Object System.Windows.Forms.Button
$CheckButton.Location = New-Object System.Drawing.Point(200,420)
$CheckButton.Size = New-Object System.Drawing.Size(75,25)
$CheckButton.Text = \"Check\"

$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(290,420)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = \"Cancel\"
$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $CancelButton
$form.Controls.Add($CancelButton)

$form.AcceptButton = $CheckButton
$CheckButton.add_Click($CheckButton_OnClick)
$form.Controls.Add($CheckButton)


$form.Topmost = $True

$form.ShowDialog() | Out-Null

} #End Function
[/code:1]
Message édité par: Azz, à: 31/10/17 10:03<br><br>Message édité par: Arnaud, à: 30/11/17 22:36

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 4 mois #24475 par Marc
Bonjour,
je ne sais pas à quoi ressemble ton fichier excel.
Mais lire des donné dans ce type de fichier, c'est vraiment la chianlie, ton script va ramer à mort et c'est ultra pas souple!

Le mieux est de transformer ton excel en csv et faire un import csv.
Ensuite tu met ton csv dans un datatable que tu lie à ta listview et le tour est joué.


Pour remplir ton listview, il faut traduire le C# en powershell, c'est facile ;)
stackoverflow.com/questions/18584707/how...atable-to-a-listview

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 ans 4 mois #24476 par RAM
Merci bcp

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.078 secondes
Propulsé par Kunena