PoshCode Archive  Artifact [694fa047c6]

Artifact 694fa047c6ba99ce0834410f63821af378a132368195779f180d2957e4168033:

  • File Import-CSV.ps1 — part of check-in [a9187eece9] at 2018-06-10 14:27:05 on branch trunk — Import-Csv that takes headers (user: unknown size: 1166)

# encoding: ascii
# api: powershell
# title: Import-CSV.ps1
# description: Import-Csv that takes headers
# version: 0.1
# license: CC0
# x-poshcode-id: 93
# x-archived: 2010-10-07T08:47:49
#
#
Param($file,$headers)
# Check for Input and fill $data
if($input){$data = @();$input | foreach-Object{$data += $_}}

# Check for File and Test the Path
if($file)
{
    if(Test-Path $file)
    {
        # Check for Headers... if none use import-csv
        if(!$headers)
        {
            import-Csv $data
            return
        }
        else
        {
            $data = Get-Content $file
        }
    }
    else{Write-Host "Invalid File Passed";return $false}
}
       
# Creating Object
foreach($entry in $data)
{
    $values = $entry.Split(",")
    if($values.Count -gt $headers.Count)
    {
        Write-Host "Value Count [$($values.Count)] and Headers [$($Headers.Count)] do not match"
        return $false
    }
    $myobj = "" | Select-Object -prop $headers
    $i = 0
    foreach($value in $values)
    {
        $header = $headers[$i]
        $myobj.$header = $value
        $i++
    }
    $myobj
}