如何使用PowerShell在Excel工作表中使用数据?

时间:2015-08-26 14:12:01

标签: excel powershell

我想在PowerShell中使用excel数据做一些棘手的事情。我在excel表中有下表。

enter image description here

我想使用PowerShell从该表中读取数据并进行简单的计算。例如,if ($Reader = Seafreight) {$Result = $TransportE * $CO2footprint}但我不知道如何将excel数据作为变量导入PowerShell。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我就是这样做的:

首先将以下函数放入Powershell配置文件中,这将为您提供一个始终可用的Get-Clipboard cmdlet。

function Get-Clipboard([switch] $Lines) {
    if($Lines) {
        $cmd = {
            Add-Type -Assembly PresentationCore
            [Windows.Clipboard]::GetText() -replace "`r", '' -split "`n"
        }
    } else {
        $cmd = {
            Add-Type -Assembly PresentationCore
            [Windows.Clipboard]::GetText()
        }
    }
    if([threading.thread]::CurrentThread.GetApartmentState() -eq 'MTA') {
        & powershell -Sta -Command $cmd
    } else {
        & $cmd
    }
}

然后您只需要从Excel复制表格(确保每列都有一个标题),然后在Powershell控制台中输入以下内容:

$data = Get-Clipboard | ConvertFrom-Csv -Delimiter "`t"
$data