Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
POSH:将Listview导出为CSV_Listview_Powershell_Export To Csv - Fatal编程技术网

POSH:将Listview导出为CSV

POSH:将Listview导出为CSV,listview,powershell,export-to-csv,Listview,Powershell,Export To Csv,我有一个6列的列表视图,我想将它们导出到CSV 第1栏;第2栏;第3栏 数据1;数据2;数据3 等 我想我应该可以使用Listview1.Items |导出csv C:\temp\test.csv 但我得到的只是列表视图对话框的信息,而不是Items.SubItems.text function GenerateForm { #region Import the Assemblies [reflection.assembly]::loadwithpartialname("System.Wind

我有一个6列的列表视图,我想将它们导出到CSV

第1栏;第2栏;第3栏 数据1;数据2;数据3

我想我应该可以使用Listview1.Items |导出csv C:\temp\test.csv 但我得到的只是列表视图对话框的信息,而不是Items.SubItems.text

function GenerateForm {

#region Import the Assemblies
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
#endregion

#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$listView1 = New-Object System.Windows.Forms.ListView
$columnHeader1 = New-Object System.Windows.Forms.ColumnHeader
$columnHeader2 = New-Object System.Windows.Forms.ColumnHeader
$columnHeader3 = New-Object System.Windows.Forms.ColumnHeader
$columnHeader4 = New-Object System.Windows.Forms.ColumnHeader
$columnHeader5 = New-Object System.Windows.Forms.ColumnHeader
$columnHeader6 = New-Object System.Windows.Forms.ColumnHeader
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects

#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 471
$System_Drawing_Size.Width = 931
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = "form1"
$form1.Text = "Primal Form"


$listView1.Columns.Add($columnHeader1)|Out-Null
$listView1.Columns.Add($columnHeader2)|Out-Null
$listView1.Columns.Add($columnHeader3)|Out-Null
$listView1.Columns.Add($columnHeader4)|Out-Null
$listView1.Columns.Add($columnHeader5)|Out-Null
$listView1.Columns.Add($columnHeader6)|Out-Null
$listView1.DataBindings.DefaultDataSourceUpdateMode = 0
$listView1.FullRowSelect = $True
$listView1.GridLines = $True
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 12
$System_Drawing_Point.Y = 12
$listView1.Location = $System_Drawing_Point
$listView1.Name = "listView1"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 447
$System_Drawing_Size.Width = 907
$listView1.Size = $System_Drawing_Size
$listView1.TabIndex = 0
$listView1.UseCompatibleStateImageBehavior = $False
$listView1.View = 1

$form1.Controls.Add($listView1)

$columnHeader1.Width = 102
$columnHeader2.Width = 134
$columnHeader3.Width = 147
$columnHeader4.Width = 149
$columnHeader5.Width = 91
$columnHeader6.Width = 194

#endregion Generated Form Code

#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
#Show the Form
$form1.ShowDialog()| Out-Null

} #End Function

#Call the Function
GenerateForm

嗨,我自己解决了,但是如果可能的话,我不喜欢使用Foreach循环

因此,如果有人有更好的想法,请让我知道

Function Export-lvData {
    $CsvArray = @()
    $listView1.Items | %{
        $Object = New-Object PSObject
        $lvItem = $_
        $listview1.Columns | %{
            $Object | add-member Noteproperty -Name $_.Text -Value  $lvItem.SubItems[$_.index].text -Force
        }
        $CsvArray += $Object
        Remove-Variable Object
    }
    Return ,$CsvArray
}
返回CsvArray后,我可以通过管道将输出导出csv-notype