2016-10-31 1 views
1

메시징 용 API를 사용하려고합니다. 내 특정 응용 프로그램의 경우 API를 사용하기 전에 모든 문자의 USC-2 값을 가져와야합니다. 주어진 문자열의 모든 문자에 대해 USC-2 값을 얻는 방법을 알려주십시오. 내 응용 프로그램의 경우 스프레드 시트의 셀에 문자열을 입력하고 입력 할 때 다른 셀의 문자열에 USC-2 값을 표시하려고합니다.Excel 또는 OfficeCalc에서 문자열의 유니 코드 (USC-2) 값 가져 오기

예 : 한 셀에 "नमस्ते"을 입력하면 출력을 다른 셀에 "0928 092E 0938 094D 0924 0947"로 가져와야합니다.

excel 및 OfficeCalc에는 비슷한 기능을하는 "UNICODE"기능이 있지만 문자열의 첫 번째 문자에만 적용됩니다. 전체 문자열을 4 자리 유니 코드 값으로 변환하고 싶습니다.

API Link

- 페이지 6 - 6.2

+0

시트 수식만을 사용할 수 없습니다. 매크로 프로그래밍 언어가 필요합니다. 어떤 프로그래밍 언어가 유용할까요? 또한 Excel 태그가 필요한 이유는 무엇입니까? VBA를 사용하는 Excel도 옵션입니까? –

+0

이미 응용 프로그램에서 사용하고 있기 때문에 Excel에서 수행하고 싶습니다. 또한 문자 수 및 실제 SMS 문자 수와 같은 입력 문자열에서 동적 데이터를 그려야합니다. 또한 수신자 목록을 저장할 수 있습니다. 모든 데이터를 Excel에서 가져온 후 나는 펄을 사용하여 파일을 읽고 API를 호출 할 계획입니다. – bubble

+0

VBA에 익숙하지 않습니다 – bubble

답변

1

매크로없이 유일한 해결책은 헬퍼 세포를 사용한다.

enter image description here

공식 :

B1에서는 : 결과가 비어까지

=MID($A1,COLUMN(A1),1) 

오른쪽으로 복사됩니다. B2에서

: # VALUE 오류가 나타날 때까지

=DEC2HEX(UNICODE(B1),4) 

오른쪽으로 복사됩니다. B3에서

:

=B2 

C3에 : # VALUE 오류가 나타날 때까지
=B3&C2 

오른쪽으로 복사됩니다. 이이 셀 내에서

=ucscode(A1) 

을 사용하여 달성 될 수있는 다음 사용자 정의 기능 (엑셀 VBA)을 사용

.

기능 :

Public Function ucscode(s As String) As String 
For i = 1 To Len(s) 
    ucscode = ucscode & Application.Dec2Hex(AscW(Mid(s, i, 1)), 4) 
Next 
End Function 

오픈 오피스 Calc를 갖는 화학식 용액 엑셀과 같은 것이다. 물론 오류는 #VALUE가 아닌 Err : 504입니다.스타 베이직 (StarBasic)와

사용자 정의 함수가 될 수있다 :

Public Function ucscode(s As String) As String 
Dim sresult as String 
For i = 1 To Len(s) 
    sresult = sresult & right("0000" & hex(asc(mid(s, i,1))), 4) 
Next 
ucscode = sresult 
End Function 
1

내 대답은 @Axel 리히터의 유사합니다 B1 셀에서

  1. =IF(LEN($A$1)>=ROW(),DEC2HEX(UNICODE(MID($A$1,ROW(),1)),4),"")를 입력합니다.
  2. 이 수식을 B30 행까지 채 웁니다.
  3. 셀 C1에 수식 =CONCATENATE(B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30)을 입력하십시오.

이제 A1 셀에 변환 할 문자열을 입력하십시오. 최대 30 자까지 사용할 수 있습니다.

calc sheet formulas

은 LibreOffice와 (엑셀 나는 생각한다)의 최신 버전으로, 당신은 문자의 유니 코드 값을 볼 수 Alt 키 + X를 누를 수 있음을 유의하십시오.

물론 이것은 Perl에서 더 쉬울 것입니다.