2017-12-26 27 views
3

PowerShell 스크립트를 사용하여 Excel 통합 문서를 만듭니다. 통합 문서는 두 축이있는 차트로 구성됩니다. 한 축의 숫자 형식은 현지화 된 사용자 정의 날짜 - 시간 형식으로 설정됩니다.문자열 변수에서 Excel 숫자 서식 지정

[string]$fmt = "MM/dd hh:mm" 

이 스크립트는 자동으로 생성 축의 NumberFormat 구성원을 평가하고 NumberFormat를 이미 지역화 된 경우 다른 문자열을 사용합니다 :

표준 형식은 날짜 형식의 짧은 버전으로 준비한다

$axis.TickLabels.NumberFormat = $fmt 
01 :
if ($axis.TickLabels.NumberFormat.Contains("JJJJ")) { 
    $fmt = "TT.MM. hh:mm" 
} 

마지막으로 스크립트는 축 멤버에 문자열을 할당하려고

그러나이 형식은 축 객체에서 허용되지 않습니다. 값을 다시 읽으면 "표준"을 얻습니다.

$fmt = $axis.TickLabels.NumberFormat 
$axis.TickLabels.NumberFormat = $fmt 

가 어떻게 사용자 지정 날짜 - 시간 포맷을 설정할 수 있습니다

에도이 코드는 표준 숫자 형식을 재설정?

편집 : DE-DE는 "TT.MM.JJJJ시 : 분"입니다 국산화에 대한 표준 날짜 - 시간 - 형식입니다. 차트를 만들면 Excel에서이 값을 기본값으로 사용합니다. 이 형식은 Excel 지역화에서 알 수없는 경우에도 DE-DE에 유효합니다.

$axis.TickLabels.NumberFormatLocal = $fmt 
+1

이 숫자 형식은 무엇입니까 'TT.MM. hh : mm'이면 Excel에서 유효한 형식이 아닙니다. – cyboashu

+0

@cyboashu 귀하의 의견은 지역화되지 않은 (또는 ko-US) 버전의 Excel에 적합합니다. 표시 언어가 다른 값으로 설정된 경우 다른 유효한 형식 문자열을 얻을 수 있습니다. – harper

+0

@cyboashu GUI로 이것을 입력하면 그 날짜 시간은 "27.12. 13:45"로 표시됩니다. 하지만 스크립트로 설정해야합니다. – harper

답변

0

사용 설정/지역화 된 형식을 얻을 수 있습니다.

날짜를 추가하고 그 위에 시간 형식 비트가있는 사용자 정의 형식을 적용하려면 먼저 축 유형을 텍스트로 설정해야합니다.

이 작동 예상대로 것처럼 자동/기본값으로 Axix 범주를 떠나

$chart.Axes(1).CategoryType =2 
$axis= $chart.axes(1) 
$axis.TickLabels.NumberFormat = "DD.MM. hh:mm" 

는, 숫자 형식이 작동하지 않습니다.

$axis= $chart.axes(1) 
$axis.TickLabels.NumberFormat = "DD.MM. hh:mm" 

숫자 서식에는 시간 서식이 있고 분산 형 차트는 제외하고 축에 다른 서식을 지원하는 것은 없습니다. 따라서 먼저 축 유형을 변경해야합니다.

2

문제는 숫자 형식으로되지 않습니다 : NumberFormatLocal 대신 NumberFormat

+0

SetType 대신 CategoryType을 읽으면 이미 값 2를 얻습니다. 데이터 열이 x 축의 소스이므로 이미 날짜 - 시간 값 목록이므로 놀랄 일이 아닙니다. 그 배경으로 나는 너의 대답에서 어떤 도움도 얻을 수 없었다. 어쨌든 고맙습니다. – harper