Help with uploading an excel file to a table using an application

Hello,
Can anyone please help me out with this issue. I have apex application where in the end users upload an excel file to a table. For this I have followed the solution provided in this link
http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
Using the above solution, I was able to upload the excel data to a table "sample_tbl1" successfully with fields Id,acct_no,owner_name,process_dt. But the thing is I want accomdate a particular condition while uploading the file data, to check see if the acct_no already exists in another table say "sample_tbl2" or not. If acct_nos already exists in sample_tbl2 then give out an error displaying the list of account numbers that already exists in the database. Below is the code which I am using to upload file data to a table.
DECLARE
v_blob_data       BLOB; 
v_blob_len        NUMBER; 
v_position        NUMBER; 
v_raw_chunk       RAW(10000); 
v_char            CHAR(1); 
c_chunk_len       number       := 1; 
v_line            VARCHAR2 (32767)        := NULL; 
v_data_array      wwv_flow_global.vc_arr2; 
v_rows            number; 
v_sr_no           number         := 1; 
l_cnt             BINARY_INTEGER := 0;
l_stepid          NUMBER := 10;
BEGIN
--Read data from wwv_flow_files</span> 
select blob_content into v_blob_data 
from wwv_flow_files 
where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER) 
and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER); 
v_blob_len := dbms_lob.getlength(v_blob_data); 
v_position := 1; 
/* Evaluate and skip first line of data
WHILE (v_position <= v_blob_len ) LOOP
v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk)));
v_line := v_line || v_char;
v_position := v_position + c_chunk_len;
-- When a whole line is retrieved
IF v_char = CHR(10) THEN
-- Clear out 
v_line := NULL;
EXIT;
END IF;
END LOOP;
-- Read and convert binary to char</span> 
WHILE ( v_position <= v_blob_len ) LOOP 
v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position); 
v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk))); 
v_line := v_line || v_char; 
v_position := v_position + c_chunk_len; 
-- When a whole line is retrieved </span> 
IF v_char = CHR(10) THEN
-- Convert comma to : to use wwv_flow_utilities </span> 
v_line := REPLACE (v_line, ',', ':'); 
-- Convert each column separated by : into array of data </span> 
v_data_array := wwv_flow_utilities.string_to_table (v_line); 
-- Insert data into target table
EXECUTE IMMEDIATE 'insert into sample_tbl1(ID,ACCT_NO,OWNER_NAME,PROCESS_DT) 
values (:1,:2,:3,:4)'
USING 
v_sr_no, 
v_data_array(1), 
v_data_array(2),
to_date(v_data_array(3),'MM/DD/YYYY');
-- Clear out 
v_line := NULL; 
v_sr_no := v_sr_no + 1; 
l_cnt := l_cnt + SQL%ROWCOUNT;
END IF; 
END LOOP;
delete from wwv_flow_files
where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER)
and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER);
l_stepid  := 20;
IF l_cnt = 0 THEN
apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold">Please select a file to upload.</span></p>' ;
ELSE
apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:green">File uploaded and processed ' || l_cnt || ' record(s) successfully.</span></p>';
END IF;
l_stepid  := 30;
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:red">Failed to upload the file. '||REGEXP_REPLACE(SQLERRM,'[('')(<)(>)(,)(;)(:)(")('')]{1,}', '') ||'</span></p>';
END;
{code}
Can anyone please help me, how do i accomdate the condition within my existing code.
thanks,
Orton                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Orton,
From your code it appears that the account No comes in the second column of the file = > v_data_array(1)
So You can put a conditional block around the execute immediate code that inserts the records
For instance
  SELECT count(1) INTO ln_account_no_exists from <"sample_tbl2> where account_no = v_data_array(1);
  IF (  ln_account_no_exists > 0 ) THEN
     --Account No: already exists
    <Do what you want to do here >
  ELSE
    EXECUTE IMMEDIATE ...
  END IF:
{code}
Inorder to handle the account no records which exists you can
  <li>Raise an exception
  <li> Write record to table or insert into collection and then use a report region in the page based on this table/collection to show error records
  <li> Append errored account No:s to the Success Message Variable programmatically(this variable is used by PLSQL process success/error message )
   {code}
    IF ( record exists)
      apex_application.g_print_success_message := apex_application.g_print_success_message||','|| v_data_array(1) ; -- Comma separated list of errored account no:s
    ELSE ...
   {code}
Hope it helps                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • Help Required:How Upload Excel file Into Oracle Table Using PLSQL Procedure

    Please Help , Urgent Help Needed.
    Requirement is to Upload Excel file Into Oracle Table Using PLSQL Procedure/Package.
    Case's are :
    1. Excel File is On Users/ Client PC.
    2. Application is on Remote Server(Oracle Forms D2k).
    3. User Is Using Application Using Terminal Server LogIn.
    4. So If User Will Use to GET_FILE_NAME() function of D2K to Get Excel File , D2k Will Try to pick File from That Remote Server(Bcs User Logind from Terminal Server Option).
    5. Cannot Use Util_File Package Or Oracle Directory to Place That File on Server.
    6. we are Using Oracle 8.7
    So Need Some PL/SQL Package or Fuction/ Procedure to Upload Excel file on User's Pc to Oracle Table.
    Please Guide me wd some Code. or with Some Pl/SQL Package, or With SOme Hint. Or any Link ....
    Jus help to Sort This Issue ........
    you can also write me on :
    [email protected], [email protected]

    TEXT_IO is a PL/SQL package available only in Forms (you'll want to post in the Forms forum for more information). It is not available in a stored procedure in the database (where the equivalent package is UTL_FILE).
    If the Terminal Server machine and the database machine do not have access to the file system on the client machine, no application running on either machine will have access to the file. Barring exceptional setups (like the FTP server on the client machine), your applications are not going to have more access to the client machine than the operating system does.
    If you map the client drives from the Terminal Server box, there is the potential for your Forms application to access those files. If you want the files to be accessible to a stored procedure in the database, you'll need to move the files somewhere the database can access them.
    Justin

  • FM to upload the Excel file to internal table

    Hi
    Is any FM available to upload the Excel file to internal table.
    Thanks
    Anbu

    Hi
    se this code
    EXCEL to INTERNAL TABLE and then to APPLICATION SERVER
    *& Report  ZSD_EXCEL_INT_APP
    REPORT  ZSD_EXCEL_INT_APP.
    parameter: file_nm type localfile.
    types : begin of it_tab1,
            f1(20),
            f2(40),
            f3(20),
           end of it_tab1.
    data : it_tab type table of ALSMEX_TABLINE with header line,
           file type rlgrap-filename.
    data : it_tab2 type it_tab1 occurs 1,
           wa_tab2 type it_tab1,
           w_message(100)  TYPE c.
    at selection-screen on value-request for file_nm.
    CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
      PROGRAM_NAME        = SYST-REPID
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
       STATIC              = 'X'
      MASK                = ' '
      CHANGING
       file_name           = file_nm
    EXCEPTIONS
       MASK_TOO_LONG       = 1
       OTHERS              = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    start-of-selection.
    refresh it_tab2[].clear wa_tab2.
    file = file_nm.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        filename                      = file
        i_begin_col                   = '1'
        i_begin_row                   =  '1'
        i_end_col                     = '10'
        i_end_row                     = '35'
      tables
        intern                        = it_tab
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 2
       OTHERS                        = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop at it_tab.
      case it_tab-col.
       when '002'.
        wa_tab2-f1 = it_tab-value.
       when '004'.
        wa_tab2-f2 = it_tab-value.
      when '008'.
        wa_tab2-f3 = it_tab-value.
    endcase.
    at end of row.
      append wa_tab2 to it_tab2.
    clear wa_tab2.
      endat.
    endloop.
    data : p_file TYPE  rlgrap-filename value 'TEST3.txt'.
    OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    *--- Display error messages if any.
      IF sy-subrc NE 0.
        MESSAGE e001(zsd_mes).
        EXIT.
      ELSE.
    *---Data is downloaded to the application server file path
        LOOP AT it_tab2 INTO wa_tab2.
          TRANSFER wa_tab2 TO p_file.
        ENDLOOP.
      ENDIF.
    *--Close the Application server file (Mandatory).
      CLOSE DATASET p_file.
    loop at it_tab2 into wa_tab2.
      write : / wa_tab2-f1,wa_tab2-f2,wa_tab2-f3.
    endloop.

  • Need help in uploading an excel file into SAP

    Hi All,
    I got a requirement to upload an excel file to SAP.
    But When i tried with the FM "ALSM_EXCEL_TO_INTERNAL_TABLE" , file  not getting uploaded to internal table.
    Getting expection 2, UPLOAD_OLE...
    I think the problem is with the file... the following the sample text of the file...
    Technical IdentNo.     Line No.     Text                                 Location
    BS-PZ-180                   1     035-05 EXZENTER-SCHNECKENPUMPE             0026
    BS-PZ-180                   2          LIEFERANT : SOCSIL-INTER SA  ECUBLENS     0026
    BS-PZ-180                   3          HERSTELLER : MONO PUMPS LIMITED  MANCH     0026
    BS-PZ-180                   4          MODELL/TYP : SH 60                             0026
    But when I tried with only one Column..its getting successfully uploaded...
    Pls suggest me how to upload the file? ( May be with sample code)
    Also pls let me know hw to handle the file..which contains 5 differnt sheets of texts.. ( May be with sample code)
    Your suggestion will be highly appreciated...
    Thanks,
    Priya

    Hi,
    Use the FM: TEXT_CONVERT_XLS_TO_SAP.  It will work perfectly.  I used this function module and uploaded data from xls to sap.  check the following code:
    TYPE-POOLS: truxs.
    PARAMETERS: p_file TYPE  rlgrap-filename.
    TYPES: BEGIN OF t_datatab,
          PROP_NAME like SDOKPROP-PROP_NAME,
          PROP_CHECK like SDOKPROP-PROP_CHECK,
          TABNAME like SDOKPROP-TABNAME,
          FIELDNAME like SDOKPROP-FIELDNAME,
          DESCRIPT(30) type c,
          END OF t_datatab.
    DATA: it_datatab type standard table of t_datatab,
          itab  TYPE STANDARD TABLE OF t_datatab,
          wa_itab TYPE t_datatab,
          wa_datatab type t_datatab.
    DATA: it_raw TYPE truxs_t_text_data.
    At selection screen
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          field_name = 'P_FILE'
        IMPORTING
          file_name  = p_file.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    SELECT * FROM sdokprop INTO CORRESPONDING FIELDS OF TABLE itab
    WHERE PROP_NAME LIKE 'DMS%'.
    WRITE / 'Before Modification'.
      LOOP AT itab INTO wa_itab.
        WRITE:/1 wa_itab-PROP_NAME, 27 wa_itab-PROP_CHECK, 31 wa_itab-TABNAME, 65 wa_itab-FIELDNAME, 96 wa_itab-DESCRIPT.
        CLEAR wa_itab.
      ENDLOOP.
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
        I_FIELD_SEPERATOR        =
          i_line_header            =  'X'
          i_tab_raw_data           =  it_raw       " WORK TABLE
          i_filename               =  p_file
        TABLES
          i_tab_converted_data     = it_datatab[]    "ACTUAL DATA
       EXCEPTIONS
          conversion_failed        = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    END-OF-SELECTION.
    END-OF-SELECTION.
      WRITE / 'After Modification'.
    MODIFY sdokprop FROM TABLE it_datatab.
      LOOP AT it_datatab INTO wa_datatab.
        WRITE:/1 wa_datatab-PROP_NAME, 27 wa_datatab-PROP_CHECK, 31 wa_datatab-TABNAME, 65 wa_datatab-FIELDNAME, 96 wa_datatab-DESCRIPT.
        CLEAR wa_datatab.
      ENDLOOP.
      IF sy-subrc = 0.
        MESSAGE 'successfull' TYPE 'S'.
      ELSE.
        MESSAGE 'failed' TYPE 'E'.
      ENDIF.
    Regards,
    Bhaskar

  • Uploading EXCEL file into Internal Table Using GUI_UPLOAD

    Can any one please give me an example use of FM "GUI_UPLOAD" which to upload a EXCEL file????? (not .txt)

    Use the forum search option [GUI_UPLOAD FOR EXCEL|https://forums.sdn.sap.com/search.jspa?threadID=&q=GUI_UPLOADFOREXCEL&objID=c42&dateRange=all&numResults=15&rankBy=10001]) or sdn wiki/code gallery ([UPLOAD EXCEL|https://wiki.sdn.sap.com/wiki/dosearchsite.action?searchQuery.queryString=upload+Excel&searchQuery.spaceKey=conf_global])  - Same question already answered many time
    GUI_UPLOAD doesnt perform such conversion (Excel, Word, PDF) and wont give you a suitable result, use one of the FM mentioned above or [office integration|http://help.sap.com/saphelp_47x200/helpdata/en/21/b53138e1ba11d2bdbe080009b4534c/frameset.htm] or OLE or convert your Excel sheet to a simpler format : txt, csv, xml.
    Regards,
    Raymond

  • Upload an excel file into a table

    Good Morning:
    I have to upload the contents of an excel file into a table. Someone knows how to do it?
    Thanks a lot.

    Hi,
    See this sample code.
    At selection-screen on value-request for p_file.
      call function 'F4_FILENAME'
           exporting
                field_name = 'p_file'
           importing
                file_name  = p_file.
      clear itab.
      call function 'WS_UPLOAD'
           exporting
                codepage                = ' '
                filename                = p_file
                filetype                = 'DAT'
           tables
                data_tab                = itab
           exceptions
                conversion_error        = 1
                file_open_error         = 2
                file_read_error         = 3
                invalid_type            = 4
                no_batch                = 5
                unknown_error           = 6
                invalid_table_width     = 7
                gui_refuse_filetransfer = 8
                customer_error          = 9
                others                  = 10.
    Here you need to save your Excel file as a 'DAT' file.
    I hope this will help you.
    CHEERS
    Message was edited by: Deepak333 k

  • To upload a excel file to dB table through webdynpro ABAP

    HI,
        I am unable to upload a excel file directly by using  func module   "HR_KR_XSTRING_TO_STRING".
        If file is in tab delimited then only, I am able to upload.
        Suggest me if there are any other options to upload a excel file.

    Hi,
    The below link gives you an explanation of how you can upload an excel file to web dynpro.
    http://www.****************/Tutorials/WebDynproABAP/Upload/Page1.htm
    Kindly read go through the below link, as this issue have been brought up before
    http://forums.sdn.sap.com/thread.jspa?threadID=1831838
    Thanks and regards.
    Edited by: Suraj Ravindran Nair on Feb 24, 2012 6:24 AM

  • Help with uploading a .mov file to YouTube

    I have been trying to upload a .mov file from a DVD to YouTube.  Everytime I get the message, "Failed (unable to convert video file)"  Yet, it is an accepted video format.
    I tried to convert to a different file on iMovie 9.0.9 but it keeps failing to save.
    Any ideas would be greatly appreciated!

    I have been trying to upload a .mov file from a DVD to YouTube.  Everytime I get the message, "Failed (unable to convert video file)"  Yet, it is an accepted video format.
    I tried to convert to a different file on iMovie 9.0.9 but it keeps failing to save.
    Any ideas would be greatly appreciated!

  • Upload openoffice excel file into internal table

    Hi Everyone,
    I have a requirement where in we need to upload vendor master data into SAP.
    The data is available in excel format. But the excel sheet was created in openoffice s/w and client is not allowing
    us to install MS-Office so that we cut and paste the data by creating anexcel file.
    Now there is an option of saving the excel file in openoffice s/w as MS-Excel 95 format with .xls extension.
    But since we are saving this in openoffice enivoronment   the FM ALSM_EXCEL..... data is not improting this excel file into
    Did somebody faced this issue before. Pls share the approach to solve this issue.
    Regards,
    Vinay

    Hi !
    you can use the Function module TEXT_CONVERT_XLS_TO_SAP to upload xcel file to internal table
    please go through the code below.
    REPORT zupload_excel_to_itab.
    TYPE-POOLS: truxs.
    PARAMETERS: p_file TYPE rlgrap-filename.
    TYPES: BEGIN OF t_datatab,
    col1(30) TYPE c,
    col2(30) TYPE c,
    col3(30) TYPE c,
    END OF t_datatab.
    DATA: it_datatab type standard table of t_datatab,
    wa_datatab type t_datatab.
    DATA: it_raw TYPE truxs_t_text_data.
    At selection screen
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
    field_name = 'P_FILE'
    IMPORTING
    file_name = p_file.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
    I_FIELD_SEPERATOR =
    i_line_header = 'X'
    i_tab_raw_data = it_raw " WORK TABLE
    i_filename = p_file
    TABLES
    i_tab_converted_data = it_datatab[] "ACTUAL DATA
    EXCEPTIONS
    conversion_failed = 1
    OTHERS = 2.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    END-OF-SELECTION.
    END-OF-SELECTION.
    LOOP AT it_datatab INTO wa_datatab.
    WRITE:/ wa_datatab-col1,
    wa_datatab-col2,
    wa_datatab-col3.
    ENDLOOP.
    hope this will help you.
    Regards,
    Kiran

  • To upload an excel file from front end using GUI_UPLOAD

    Hi All,
    Please give me the code to upload data from front end to internal table only using GUI_UPLOAD.
    Thanks,
    Kumar

    Check this program , reward points if helpful
    *& Report  ZEXCEL_UPLOAD                                               *
    report  ZEXCEL_UPLOAD    message-id ZMSG.
    tables :T001.
    data : begin of ITAB occurs 0,
          BUKRS like T001-BUKRS,
          BUTXT like T001-BUTXT,
          ORT01 like T001-ORT01,
          LAND1 like T001-LAND1,
          WAERS like T001-WAERS,
          end of ITAB.
    data : WA_T001_EXCEL like ITAB.
    data : IT_T001_EXCEL like standard table of WA_T001_EXCEL.
    data IT_TEXT like ITAB occurs 0 with header line.
    data : IT_RETURN  like standard table of ALSMEX_TABLINE,
           WA_RETURN like ALSMEX_TABLINE,
            WA_RETURNS like ALSMEX_TABLINE.
    data : V_FILE type STRING,V_MASK(10) type C.
    selection-screen  begin of block B1 with frame title TEXT-001.
    parameters P_FILE like RLGRAP-FILENAME .
    selection-screen end of block B1.
    selection-screen  begin of block B2 with frame title TEXT-002.
    parameter : R_TXT  radiobutton group G1 default 'X' user-command C1,
                R_EXCEL radiobutton group G1.
    selection-screen end of block B2.
    at selection-screen on value-request for P_FILE.
      if R_TXT = 'X'.
        V_MASK = '*TXT'.
      elseif R_EXCEL = 'X'.
        V_MASK = '*XLS'.
      endif.
      call function 'KD_GET_FILENAME_ON_F4'
        exporting
          PROGRAM_NAME  = SYST-REPID
          DYNPRO_NUMBER = SYST-DYNNR
          MASK          = V_MASK
        changing
          FILE_NAME     = P_FILE.
    at selection-screen.
      translate P_FILE to upper case.
      if R_TXT = 'X'.
        search P_FILE for '*TXT'.
        if SY-SUBRC <> 0.
          message E011.
        endif.
      endif.
      if R_EXCEL = 'X'.
        search P_FILE for '*XLS'.
        if SY-SUBRC <> 0.
          message E012.
        endif.
      endif.
    start-of-selection.
      V_FILE = P_FILE.
      if R_TXT = 'X'.
        call function 'GUI_UPLOAD'
          exporting
            FILENAME            = V_FILE
            FILETYPE            = 'ASC'
            HAS_FIELD_SEPARATOR = 'X'
          tables
            DATA_TAB            = IT_TEXT.
        if SY-SUBRC eq 0.
          message I013 with V_FILE.
          loop at IT_TEXT .
        write :/ IT_TEXT-BUKRS color 4, IT_TEXT-BUTXT color 3,IT_TEXT-ORT01
        color 5,
        IT_TEXT-LAND1 color 2,IT_TEXT-WAERS color 1.
          endloop.
        endif.
      elseif R_EXCEL = 'X'.
        call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
          exporting
            FILENAME    = P_FILE
            I_BEGIN_COL = 1
            I_BEGIN_ROW = 1
            I_END_COL   = 4
            I_END_ROW   = 2
          tables
            INTERN      = IT_RETURN.
        if SY-SUBRC eq 0.
          message I014 with P_FILE.
          sort IT_RETURN by ROW COL.
          loop at IT_RETURN into WA_RETURNS.
            WA_RETURN = WA_RETURNS.
            case WA_RETURN-COL.
              when 1.
                WA_T001_EXCEL-BUKRS = WA_RETURN-VALUE.
              when 2.
                WA_T001_EXCEL-BUTXT = WA_RETURN-VALUE.
              when 3.
                WA_T001_EXCEL-ORT01 = WA_RETURN-VALUE.
              when 4.
                WA_T001_EXCEL-LAND1 = WA_RETURN-VALUE.
            endcase.
            at end of ROW.
              append WA_T001_EXCEL to IT_T001_EXCEL.
              clear : WA_RETURN, WA_T001_EXCEL.
            endat.
          endloop.
        endif.
        loop at IT_T001_EXCEL into WA_T001_EXCEL.
          write :/ WA_T001_EXCEL-BUKRS color 1, WA_T001_EXCEL-BUTXT color 2,
                   WA_T001_EXCEL-ORT01 color 3,WA_T001_EXCEL-LAND1 color 4.
        endloop.
      endif.

  • Error While uploading a EXCEL file in Web dynpro - HR_KR_XSTRING_TO_STRING

    Hi,
       I am getting an error while trying to upload a excel file.  I am using the function HR_KR_XSTRING_TO_STRING for conversion. The error message is  "Unable to interpret    as a number"

    First of all, are you sure you know what you are working with here.  If this is standard Excel file in the Microsoft binary/propriatery format there is not function module or class in ABAP that can magically just transform this to a character string.  You should search the forums as this has been discussed extensively.  On that topic, please also do not post duplicate threads.  I have already locked your other thread with the same basic question.
    Instead of the binary/propriatery format of Excel, the file should be saved on the client as a text based format - like XML or Text Tab Delimited. You can then use several different options on the server to convert the XSTRING to STRING and process the content (becuase it was text based to begin with).  You could use CL_BCS_CONVERT, the function modules in the function group SCMS_CONV, or the class CL_ABAP_CONV_IN_CE.

  • Uploading excel file into internal table

    Hi,
    Any function module is there to upload an excel file into internal table in CRM 7.0 system?
    Thanks.

    Hi Ginger,
    If u have access to ECC R/3 make use FM 'TEXT_CONVERT_XLS_TO_SAP' source code which is existing to convert to Excel to Internal table.  It will work in CRM also.
    As of Now I don't have access to SAP S/m. Mean while u can try as above said.
    Regards,
    Lokesh B

  • Can anybody help how to upload an excel file into sap-crm urgent

    hi guys,
    i need the right function module to upload the excel file from the presentation server in to sap-crm.
    1) I know we use the function module 'ALSM_EXCEL_TO_INT_TABLE' in sap-r/3 but this function module is not exist in sap-crm.
    2) i tried with the function moduel 'GUI_UPLOAD' but its not uploading correctly i am gettting hases(#).
    Please can any one provide the right function module to upload the excel into sap-crm with an sample code.
    thanks
    viswa guntha

    Hi Visma,
    Please check this link for sample custom FM.
    Re: function mudule for MS excel file to sap crm
    Hope this will help.
    Regards,
    Ferry Lianto
    Please reward points if helpful as away to say thanks.

  • Upload an excel file in the server  with a background job

    I am trying to upload an excel file in the server, but i only can upload flat files, i can upload files in local with the function ALSM_EXCEL_TO_INTERNAL_TABLE, can i use this function reading an excel file in the server, or is there another possibility of uploadinging an excel file in the server  with a background job ?
    thanks in advance

    Hi
    First read the file from the server to some temporary place at presentation layer and then open it. And if required, save it to the server afterwards. To read/write files to application server you can use:
    1. Statements "OPEN DATASET/CLOSE DATASET".
    2. There are some FMs for server file operations, like "C13Z_FILE_UPLOAD_BINARY" and "C13Z_FILE_DOWNLOAD_BINARY".
    *--Serdar

  • How to upload  a excel file in webdynpro? Please help!

    Hi Experts,
        I have a requirement where I need to upload a  excel file in my webdynpro for ABAP report.
        I have used the fileupload UI element in my view and a upload button.
        However when I test the application I found that it is getting file data as some junk value like below:
        ###ࡱ#################>########################################################################################################################################################################################################################################
      Why is that so?
      Is there any limitation with fileuplaod reading excel file?
      Do i have to use any encoding option?
      What is the alternative option to read excel file in ABAP webdynpro?
    Thanks
    Gopal

    Hi,
    Check this.. Write this code in Upload button 's method
    ********** Reading data from flat file ****************
      DATA lo_el_context TYPE REF TO if_wd_context_element.
      DATA ls_context    TYPE wd_this->element_context.
      DATA lv_datasource type xstring.
    * get element via lead selection
      lo_el_context = wd_context->get_element(  ).
    * get single attribute
      lo_el_context->get_attribute(
        EXPORTING
          name =  `DATASOURCE`
        IMPORTING
          value = lv_datasource ).
       CALL FUNCTION 'HR_KR_XSTRING_TO_STRING'
        EXPORTING
    *   FROM_CODEPAGE       = '8500'
          IN_XSTRING          = LV_DATASOURCE
    *   OUT_LEN             = '1'
       IMPORTING
         OUT_STRING          = LV_STRING.
    SPLIT LV_STRING AT CL_ABAP_CHAR_UTILITIES=>NEWLINE INTO TABLE IT_STR.
      LOOP AT IT_STR INTO LV_STRING.
        SPLIT LV_STRING AT CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO TABLE FIELDS.
        READ TABLE FIELDS INTO LV_FIELD INDEX 1.                 " Reading 1st field
        ls_header-STATU = LV_FIELD.
         clear LV_FIELD.
        READ TABLE FIELDS INTO LV_FIELD INDEX 2.                " Reading 2st field
         ls_header-LIFNR = LV_FIELD.
         clear LV_FIELD.
        READ TABLE FIELDS INTO LV_FIELD INDEX 3.
         ls_header-BSART = LV_FIELD.
         clear LV_FIELD.
        READ TABLE FIELDS INTO LV_FIELD INDEX 4.
         ls_header-EKORG = LV_FIELD.
         clear LV_FIELD.
        READ TABLE FIELDS INTO LV_FIELD INDEX 5.
         ls_header-EKGRP = LV_FIELD.
         clear LV_FIELD.
        READ TABLE FIELDS INTO LV_FIELD INDEX 6.
         ls_header-BUKRS = LV_FIELD.
         clear LV_FIELD.
         APPEND wa to it.
        append ls_header to lt_header.
        clear: ls_header,wa.
        endloop.
        lo_nd_header->BIND_TABLE( lt_header ).
    Thanks,
    Ramesh
    Edited by: Rameshkumar Raamasamy on Dec 20, 2010 11:16 AM

Maybe you are looking for