abap webdynpro excel 가져오기 및 표시

2534 단어 Excel
sdn에는 excel을 abap 웹dynpro를 통해 어떻게 가져오고 표시하는지에 대한 예시가 있지만, 찾아서 하면 가져오고 표시된 코드가 혼란스러워집니다.사실 그 자체의 예시가 제시한 것은 txt의 형식에 따라 하는 것이다. 이것은 사실sap 자체가 excel에서 얻은 xstring을 다시 string 형식으로 바꾸는 과정에 대해 정확하게 일치하지 않기 때문이다. 지금까지sap는 좋은 해결 방법을 제시하지 못했다. 예시 코드에 따르면:

METHOD onactionon_upload .  TYPES :
       BEGIN OF str_itab,
       name(10) TYPE c,
       age(10) TYPE c,
       END OF str_itab.  DATA : t_table1 TYPE STANDARD TABLE OF str_itab,
         i_data TYPE STANDARD TABLE OF string,
         lo_nd_sflight TYPE REF TO if_wd_context_node,
         lo_el_sflight 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 ).
data: conv type ref to cl_abap_conv_in_ce.
    call method cl_abap_conv_in_ce=>create
      exporting
           input = l_xstring
           encoding = 'UTF-8'
           replacement = '?'
          ignore_cerr = abap_true
      receiving
          conv  = conv . 
conv->read( importing data = l_string ).

[color=orange] CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
    EXPORTING
      in_xstring = l_xstring
    IMPORTING
      out_string = l_string.  [/color]
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_sflight = wd_context->get_child_node( 'DATA_TAB' ).
  lo_nd_sflight->bind_table( t_table1 ).
ENDMETHOD.

DATASOURCE는 xstring 또는 string 모두 가능합니다.
일부 폐지는 사실 xstring을string으로 정확하게 바꿀 수 없습니다.
테스트를 할 때 excel 파일을 유니버설 txt 파일로 저장한 다음 txt 파일을utf8 형식으로 가져와야 합니다.그렇지 않으면utf8이 아닌 텍스트 파일을 가져올 때 텍스트의 모든 내용을 모든 칸에 표시합니다.

좋은 웹페이지 즐겨찾기