如何将Excel数据导入gridview

时间:2014-07-01 15:08:26

标签: .net powershell

我想获取2个Excel列并将这两列导入gridview。

到目前为止

代码:

function Out-Excel
{
  param($Path = "$env:temp\$(Get-Date -Format yyyyMMddHHmmss).csv")

  $input | Export-CSV -Path $Path -UseCulture -Encoding UTF8 -NoTypeInformation

  Invoke-Item -Path $Path
}

Get-Process | Where-Object { $_.MainWindowTitle } | Out-Excel

1 个答案:

答案 0 :(得分:1)

您的代码不会生成网格视图,它会生成临时CSV文件,然后在Excel中打开它。如果要创建它的网格视图,则应将数据传输到Out-GridView。

你的问题其实是两个问题。首先,如何从Excel获取数据到PowerShell,其次如何在GridView中显示数据?

首先,您真的需要Excel中的数据作为应用程序,还是需要存储在Excel文件(.XLS,.XLSX)中的数据,还是需要保存在CSV文件中的数据?如果它只是存储在CSV文件中,您可以使用Import-CSV cmdlet轻松地将数据直接导入到Powershell中。如果它在Excel文件中,我强烈建议从TechNet脚本库中获取Import-XLS脚本。它简化了整个过程,没有理由重新创建一个人已经做得很好的功能。如果数据目前只在Excel中,我建议将其保存为CSV并从那里直接导入Powershell。

一旦数据在Powershell中,您可以直接将数组或cmdlet /函数中的内容传送到Out-Gridview,或者如果您只希望数据的某些部分将其管道选择,然后再输出到Out-Gridview。例如以下示例与上面的示例一致:

Get-Process | Where-Object { $_.MainWindowTitle } | Select ID,ProcessName,MainWindowTitle | Out-GridView

或者,从数组:

$Array = Get-Process
$Array | Where-Object { $_.MainWindowTitle } | Select ID,ProcessName,MainWindowTitle | Out-GridView