안녕하세요...
몇일 째 정답을 찾고 있습니다.
될듯 될듯 하면서 안되네요..
그림에서 엑셀파일 선택한 후 Upload 버튼을 클릭하면 내용이 다 깨져서 테이블에 보이는데요..
당최 해결기미가...SDN 거의 다 뒤져본듯...
'HR_KR_XSTRING_TO_STRING' 요 펑션에서 upload한 엑셀 파일의 데이타를 컨버젼하는 데,
이 때 제대로 컨버젼이 안되는 문제라 생각하고 있습니다.
업로드 하려는 엑셀 파일의 내용은 다음과 같네요..별거 없습니다.
가
15
나
16
다
17
뭐..없죠..^^
아래는 현재 소스 입니다.
TYPES : BEGIN OF str_itab,
name(10)," TYPE string,
age(10), "TYPE string,
END OF str_itab.
DATA : t_table1 TYPE STANDARD TABLE OF str_itab,
i_data TYPE STANDARD TABLE OF string,
lo_nd_data TYPE REF TO if_wd_context_node,
lo_el_data TYPE REF TO if_wd_context_element,
l_string TYPE string,
fs_table TYPE str_itab,
l_xstring TYPE xstring,
fields TYPE string_table,
lv_field TYPE string.
DATA : t_table TYPE if_main=>elements_data_tab,
data_table TYPE if_main=>elements_data_tab.
* get single attribute
wd_context->get_attribute(
EXPORTING
name = `DATASOURCE`
IMPORTING
value = l_xstring ).
CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
EXPORTING
* from_codepage = '8000'
in_xstring = l_xstring
IMPORTING
out_string = l_string.
SPLIT l_string AT cl_abap_char_utilities=>newline INTO TABLE i_data.
* Bind With table Element.
LOOP AT i_data INTO l_string.
SPLIT l_string AT cl_abap_char_utilities=>horizontal_tab INTO TABLE fields.
READ TABLE fields INTO lv_field INDEX 1.
fs_table-name = lv_field.
READ TABLE fields INTO lv_field INDEX 2.
fs_table-age = lv_field.
APPEND fs_table TO t_table1.
ENDLOOP.
lo_nd_data = wd_context->get_child_node( 'DATA_TAB' ).
lo_nd_data->bind_table( t_table1 ).
댓글 6
-
보나
2009.03.21 01:07
-
민버미꺼!
2009.03.21 01:31
'HR_KR_XSTRING_TO_STRING' 펑션의 from_codepage의 기본값이 8500 이네요..^^
-
민버미꺼!
2009.03.21 01:31
from_codepage 값을 1100, 8000, 8600등 대부분 다 해봤는데 역시나..헐~~
-
띵호아빠
2009.03.21 02:00
Codepage 를 "1101" 또는 "4103" 도 함 해보세요... -
민버미꺼!
2009.03.25 17:02
엑셀 파일에 문제가 있나...1101, 4103도 안되고..쩝...나를 화나게 하네요..꼭 해결하고 글 올리겠습니다.
답변주신 띵호아빠님도 감사드립니다...
-
웁~쓰
2009.03.28 00:46
일반적으로 오피스로 엑셀파일을 생성하고 저장하면 여러가지 입력하신 데이터와 상관없는 데이터들이 있습니다.
그건 xstring으로 올라온 데이터를 string으로 변화한 상태를 디버깅 걸어버서 보시면 머..시트 정보등 파일정보가
기본적으로 생성되어 있는걸 보실수 있으실 겁니다.
(,) 로 구분된 CSV 파일로 저장하신뒤 구분자를 (,)로 자르시던지...아니면
일반적이 엑셀파일이 아닌 SAP에 다운로드 된 엑셀 파일을 편집하시고 다른이름으로 저장 하신뒤 사용해보세요.
이미 완료 된 질문이지만 웹딘에 쪼...메 미련이 남아 한자 적어 봅니당~~
* from_codepage = '8000' 을
from_codepage = '8500' 으로
한 번 해보시겠어요?