2013-09-27 2 views
0

친애하는 Stackoverflow (ers),Powershell 배열로 Excel 읽기

나는 powershell과 Excel에 작은 문제가 있습니다. 나는 여러 행과 텍스트가있는 파일을 가지고있다. 모든 열을 읽고 배열에 내용을 넣고 싶습니다. 내 스크립트는 작동하지만 배열의 내용을 표시 할 때는 항상 처음에는 0이 있습니다. Excel 파일이나 스크립트에 문제가 있습니까?

$a = New-Object -comobject Excel.Application 
    $a.Visible = $true 
    $a.DisplayAlerts = $False 

    $Workbook = $a.workbooks.open("C:\test.xls") 
    $Sheet = $Workbook.Worksheets.Item("Auto") 

     $row   = [int]2 
     $KN    = @() # beginnt bei 2,1... 3,1... 4,1 
     Do {$KN  += $Sheet.Cells.Item($row,1).Text ; $row = $row + [int]1} until (!$Sheet.Cells.Item($row,1).Text) 

    $Workbook.Close() 
    $a.Quit() 
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($a) 

    Write-Output $KN 

는 출력 :

0 
7 
7 
7 
7 
7 

엑셀 파일은 다음과 같습니다

A B C D 
7 
7 
7 
7 
7 
7 

나는 내 배열과 몇 가지 간단한 오류 같아요,하지만 난 그것을 찾을 수 없습니다! 감사합니다.

EDIT1가 : 문제에 낳는 :

$KN = @() 

내 Exceldata와 배열을 작성 중지하는 경우는 0

Edit2가 나에게 계속 표시 때문에 : 이 이상한 점점 좋아 . 스크립트를 실행 한 후 $ KN을 입력하면 콘텐츠가 0으로 표시되지 않고 올바른 콘텐츠가 표시됩니다. 어디에서 왔으며 그 이유는 무엇입니까? 배열을 수동으로 살펴볼 때 왜 사라지나요?

답변

1

발견! 마침내! 그 생각은 절대하지 마시고, 미안 해요!

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($a) 

은 0을 기록했습니다. 내 스크립트에서 보니 쓰기 출력이 나타났습니다!