2009-10-14 5 views
1

Powershell 1.0에서 Excel을 자동화하려고하는데 "Font.ColorIndex"셀을 적용하는 데 문제가 있습니다. 스크립트를 실행하는 컴퓨터가 아닌 다른 설정 로케일이있는 경우Powershell 1.0 Excel 자동화 - "Font.ColorIndex"문제

다음 Microsoft KB 기사는 "EN을-우리가"

아래 내 예제 스크립트 내가 수동으로 로케일 및 국가 별 설정을 변경하면 완벽하게 작동 엑셀 자동화 버그의 자세한 사항 에 "EN-GB"로 설정 마지막 줄에 실패 "EN-US"를하고

$Excel = New-object -com Excel.Application 
$culture = [System.Globalization.CultureInfo]'en-us' 
$Book = $Excel.Workbooks.psbase.gettype().InvokeMember("Add", 
     [Reflection.BindingFlags]::InvokeMethod, 
     $null, $Excel.Workbooks, $null, $culture) 
$Sheet = $Book.Worksheets.Item(1) 
$Excel.Visible = $True 
$Sheet.Cells.Item(1,1).FormulaLocal = "test" 
$Sheet.Cells.Item(1,1).Font.ColorIndex = 3 

내 로케일이 "EN-GB"스크립트가 마지막까지 잘 작동하도록 설정되어있는 경우로서 이전에 언급 실패한 행 :

'ColorIndex'속성을이 개체에서 찾을 수 없습니다. 그것이 존재하고 설정 가능한지 확인하십시오. at : line : 10 char : 29 + $ Sheet.Cells.Item (1,1). 글꼴. < < < < ColorIndex = 3

사람이 어떻게

감사 마가 복음

답변

1

이에게 ("en-US입니다"! 물론 내 지역을 설정 이외의)이 문제를 해결하려면 어떤 아이디어가 있습니까 KB 문서에서 PC에 Office 용 MUI를 설치하지 않는 한 대안을 모두 en-US로 설정해야합니다. 좋은 소식은 문제 코드에 대한 스크립트에서 일시적으로 문화를 ko-ko로 설정할 수 있다는 것입니다. 다음 스크립트는 오래 전에 뭔가 PowerShell team posted하지만 여전히 유용 :

Using-Culture en-US { $Sheet.Cells.Item(1,1).Font.ColorIndex = 3 } 
+0

감사합니다 키스하지만 난 얻을 수 없었습니다 : 그것은 작동하는 경우

Function Using-Culture ( [System.Globalization.CultureInfo]$culture = ' (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"), [ScriptBlock]$script= ' (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}")) { $OldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture trap { [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture } [System.Threading.Thread]::CurrentThread.CurrentCulture = $culture Invoke-Command $script [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture } 

지금처럼 마지막 줄을 실행하고 참조 이 일을하고 다른 사람들이 이것도 그들에게 효과가 없다고 말하는 곳에 코멘트를 보았습니다. – Mark

+0

Using-Culture 함수 내에서 모든 Excel 스크립트를 실행 해 보셨습니까? PowerShell 2.0의 지역화 된 데이터 섹션을 테스트하는 데이 함수를 사용하여 "일반적으로"작동한다는 것을 알고 있습니다. 아마 엑셀을 위해 아닙니다. –

+0

예가 기능 내에서 시도되었습니다. 나는 "일반적으로"그것이 작동하고 올바른 해결책이라고 인정하지만, 탁월한 것은 아닙니다. 가장 좋은 해결책은 HTML 출력을 작성하고 .xls 형식으로 저장하는 것입니다. 아직 확실하지는 않지만 그걸로 놀아 나갈 것입니다. 당신의 노력에 감사드립니다 – Mark

관련 문제