GUI_UPLOAD to read data from an Excel File

Hi Folks,
I'm using FM GUI_UPLOAD to read data from an Excel File. But all I see in the table returned is 1 row with garbage values (special chacaters). Excel Workbook has proper data in the sheet, but its not getting uploaded properly. Sy-subrc is 0.
What could be the reason?
Thanks

use FM : ALSM_EXCEL_TO_INTERNAL_TABLE
See the example program to get from XLS file to Internal table
REPORT ZLWMI151_UPLOAD no standard page heading
                       line-size 100 line-count 60.
*tables : zbatch_cross_ref.
data : begin of t_text occurs 0,
       werks(4) type c,
       cmatnr(15) type c,
       srlno(12) type n,
       matnr(7) type n,
       charg(10) type n,
       end of t_text.
data: begin of t_zbatch occurs 0,
      werks like zbatch_cross_ref-werks,
      cmatnr like zbatch_cross_ref-cmatnr,
      srlno like zbatch_cross_ref-srlno,
      matnr like zbatch_cross_ref-matnr,
      charg like zbatch_cross_ref-charg,
      end of t_zbatch.
data : g_repid like sy-repid,
       g_line like sy-index,
       g_line1 like sy-index,
       $v_start_col         type i value '1',
       $v_start_row         type i value '2',
       $v_end_col           type i value '256',
       $v_end_row           type i value '65536',
       gd_currentrow type i.
data: itab like alsmex_tabline occurs 0 with header line.
data : t_final like zbatch_cross_ref occurs 0 with header line.
selection-screen : begin of block blk with frame title text.
parameters : p_file like rlgrap-filename obligatory.
selection-screen : end of block blk.
initialization.
  g_repid = sy-repid.
at selection-screen on value-request for p_file.
  CALL FUNCTION 'F4_FILENAME'
       EXPORTING
            PROGRAM_NAME = g_repid
       IMPORTING
            FILE_NAME    = p_file.
start-of-selection.
Uploading the data into Internal Table
  perform upload_data.
  perform modify_table.
top-of-page.
  CALL FUNCTION 'Z_HEADER'
  EXPORTING
    FLEX_TEXT1       =
    FLEX_TEXT2       =
    FLEX_TEXT3       =
*&      Form  upload_data
      text
FORM upload_data.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
       EXPORTING
            FILENAME                = p_file
            I_BEGIN_COL             = $v_start_col
            I_BEGIN_ROW             = $v_start_row
            I_END_COL               = $v_end_col
            I_END_ROW               = $v_end_row
       TABLES
            INTERN                  = itab
       EXCEPTIONS
            INCONSISTENT_PARAMETERS = 1
            UPLOAD_OLE              = 2
            OTHERS                  = 3.
  IF SY-SUBRC <> 0.
    write:/10 'File '.
  ENDIF.
  if sy-subrc eq 0.
    read table itab index 1.
    gd_currentrow = itab-row.
    loop at itab.
      if itab-row ne gd_currentrow.
        append t_text.
        clear t_text.
        gd_currentrow = itab-row.
      endif.
      case itab-col.
        when '0001'.
          t_text-werks = itab-value.
        when '0002'.
          t_text-cmatnr = itab-value.
        when '0003'.
          t_text-srlno = itab-value.
        when '0004'.
          t_text-matnr = itab-value.
        when '0005'.
          t_text-charg = itab-value.
      endcase.
    endloop.
  endif.
  append t_text.
ENDFORM.                    " upload_data
*&      Form  modify_table
      Modify the table ZBATCH_CROSS_REF
FORM modify_table.
  loop at t_text.
    t_final-werks = t_text-werks.
    t_final-cmatnr = t_text-cmatnr.
    t_final-srlno = t_text-srlno.
    t_final-matnr = t_text-matnr.
    t_final-charg = t_text-charg.
    t_final-erdat = sy-datum.
    t_final-erzet = sy-uzeit.
    t_final-ernam = sy-uname.
    t_final-rstat = 'U'.
    append t_final.
    clear t_final.
  endloop.
  delete t_final where werks = ''.
  describe table t_final lines g_line.
  sort t_final by werks cmatnr srlno.
Deleting the Duplicate Records
  perform select_data.
  describe table t_final lines g_line1.
  modify zbatch_cross_ref from table t_final.
  if sy-subrc ne 0.
    write:/ 'Updation failed'.
  else.
    Skip 1.
    Write:/12 'Updation has been Completed Sucessfully'.
    skip 1.
    Write:/12 'Records in file ',42 g_line .
    write:/12 'Updated records in Table',42 g_line1.
  endif.
  delete from zbatch_cross_ref where werks = ''.
ENDFORM.                    " modify_table
*&      Form  select_data
      Deleting the duplicate records
FORM select_data.
  select werks
         cmatnr
         srlno from zbatch_cross_ref
         into table t_zbatch for all entries in t_final
         where werks = t_final-werks
         and  cmatnr = t_final-cmatnr
         and srlno = t_final-srlno.
  sort t_zbatch by werks cmatnr srlno.
  loop at t_zbatch.
    read table t_final with key werks = t_zbatch-werks
                                cmatnr = t_zbatch-cmatnr
                                srlno = t_zbatch-srlno.
    if sy-subrc eq 0.
      delete table t_final .
    endif.
    clear: t_zbatch,
           t_final.
  endloop.
ENDFORM.                    " select_data

Similar Messages

  • Reading data from an excel file

    Hi,
    I want to read data from the excel file and display it in
    jsp page. Iam getting the following error:
    [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con =
    DriverManager.getConnection("jdbc:odbc:mydsn","","");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("select * from [holidays$]");
    Here i have created the dsn with the name "mydsn". I have the
    following data in the mydsn.dsn file:
    [ODBC]
    DRIVER=Microsoft Excel Driver (*.xls)
    UID=admin
    UserCommitSync=Yes
    Threads=3
    SafeTransactions=0
    ReadOnly=1
    PageTimeout=5
    MaxScanRows=8
    MaxBufferSize=2048
    FIL=excel 8.0
    DriverId=790
    DefaultDir=D:\WorkSpace\Projects\VINET\devl\webroot\jsp
    DBQ=D:\WorkSpace\Projects\VINET\devl\webroot\jsp\list_of_holidays_2003.xls
    thanks in advance
    phani.

    You might want to look at the POI project (an open source Jakarta sub-project) that allows you to create/modify/read excel files via Java code. That might be more flexible and easier than what you're currently trying to do.
    Cheers

  • Help! How to read data from an Excel file?

    Hi,
    I need to read data from an Excel file that may contain more then one table in a sheet. How can I read them?
    I would be eternally grateful to anyone who can give me any information.

    Did you try POI from Apache?
    http://jakarta.apache.org/poi/index.html

  • How to read data from the excel file using java code.

    Hi to all,
    I am using below code to getting the data from the excel file but I can't get the corresponding data from the specific file. can anyone give me the correct code to do that... I will waiting for your usefull reply......
    advance thanks....
    import java.io.*;
    import java.sql.*;
        public class sample{
                 public static void main(String[] args){
                      Connection connection = null;
                          try{
                               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                               Connection con = DriverManager.getConnection( "jdbc:odbc:Mydsn","","" );
                               Statement st = con.createStatement();
                               ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );
                               System.out.println("sample:"+rs);
                                  ResultSetMetaData rsmd = rs.getMetaData();
                                  System.out.println("samplersd:"+rsmd);
                               int numberOfColumns = rsmd.getColumnCount();
                                  System.out.println("numberOfColumns:"+numberOfColumns);
                                   while (rs.next()) {
                                            System.out.println("sample1:"+rs);
                                            for (int i = 1; i <= numberOfColumns; i++) {
                                                 if (i > 1) System.out.print(", ");
                                                 String columnValue = rs.getString(i);
                                                 System.out.print(columnValue);
                                            System.out.println("");
                                       st.close();
                                       con.close();
                                      } catch(Exception ex) {
                                           System.err.print("Exception: ");
                                           System.err.println(ex.getMessage());
                        }

    1: What is the name of the excel sheet?
    2: What is printed in this program? null ? anything?
    error?Excel file name is "sample.xls" I set excel file connectivity in my JDBC driver(DSN). Here in my program I am not giving that excel file name. I am giving only that excel sheet name. that is followed
    ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );The output of this program is given bellow.
    sample:sun.jdbc.odbc.JdbcOdbcResultSet@1b67f74
    samplersd:sun.jdbc.odbc.JdbcOdbcResultSetMetaData@530daa
    numberOfColumns:2

  • How to read data from many excel files

    I'm aquiring data continusly from several sensors, and every days file name are changed. Data are saved on xls files.
    Now, I'd like to read every data from this files and put them in a waveform. How can I concatenate all files and read the values?

    You probably do not want to use a traditional waveform. LabVIEW has a Waveform Chart which inputs one point at a time. Waveform Graph inputs an array.
    I suspect that the data is stored in an array. You need to read the arrays in and build them into larger arrays. If your right click on the build array vi, you can select concantenate which will append one array to the end of the other. When you have built your giant array, just feed it to a waveform graph.
    If you need to see some example code, go to the advanced search page. It is at www.ni.com >> support >> advanced search (it is at the botton--click on the words). Enter excel read in the all the words field and search just the example programs. There were for hits.
    Jeremy Braden
    National Ins
    truments

  • How to retrieve data from an Excel file which is located on server

    hi everybody,
                    I am using SAP NWDS 2004s .     
                I have done an application on how to export the table data into an Excel .
    Now i want to get the data from an Excel file which is located in server and display that data which is in excel in a View for example a Sample view in Webdynpro  .
    In Sample view i took a uielement textview to display the data ....   
    can any one help how to procced further
    Thanks in advance
    Madhavi

    Options to read Excel data to WebDynpro context
    Reading Excel Sheet from Java without using any Framework
    Reading Multiple Sheets of Excel Sheet from Java
    Few Threads
    How to Display the content of Excel file into Webdynpro Table
    Is it possible to upload data from excel file(.xls)
    Re: How to export the data as integer into excel sheet?
    regards
       Vinod

  • Reading data froma an excel

    Hi all,
               I want to read data froma an excel sheet.
    The code i used to read the data is
    IWDAttributeInfo attributeInfo = wdContext.getNodeInfo().getAttribute(IPrivateFileUplaodView.IContextElement.FILE_RESOURCE);
    *     IWDModifiableBinaryType binaryType = (IWDModifiableBinaryType) attributeInfo.getModifiableSimpleType();*
    *                    IContextElement element = wdContext.currentContextElement();*
    *                    if(element.getFileResource()!= null)*
    *                      try*
    *                            String mimeType = binary.getMimeType().getFileExtension();*
    *                            wdComponentAPI.getMessageManager().reportSuccess("File " + binaryType.getFileName() + " has been successfuly uploaded ! ");*
    *                      catch(Exception e)*
    *                            throw new WDRuntimeException(e);*
    *                    else*
    *                         wdComponentAPI.getMessageManager().reportException("File could not be uploaded", true);*
    *                    // Till here the code remains the same as in File Upload tutorials*
    *                    // Now the code for retrieving the values from the Excel sheet*
    *                    try*
    *                       ByteArrayInputStream bais = new ByteArrayInputStream(element.getFileResource());*
    *                       Workbook workbook = Workbook.getWorkbook(bais);*
    *                       Sheet sheet = workbook.getSheet(0);*
    *                       Cell a1 = sheet.getCell(0,0);*
    *                       Cell a2 = sheet.getCell(0,1);*
    *                       wdComponentAPI.getMessageManager().reportSuccess("Value of cell a1 = " + a1.getContents());*
    *                       wdComponentAPI.getMessageManager().reportSuccess("Value of cell a2 = " + a2.getContents());*
    *                    catch(Exception ex)*
    *                      wdComponentAPI.getMessageManager().reportException(ex.getLocalizedMessage(),true);*
    But i am getting error at "binary" in  String mimeType = binary.getMimeType().getFileExtension();
    and ByteArrayInputStream bais = new ByteArrayInputStream(element.getFileResource()); by saying that there is no constructor of
    ByteArrayInputStream with Resource as parameter.
    Please let me know what might be the issue so that i can solve this.
    Thanks and regards,
    Chandrashekar.

    Hi,
    Replace the following code
    ByteArrayInputStream bais = new ByteArrayInputStream(element.getFileResource());*
    with
    IWDResource resource = element.getFileResource();
           InputStream inputStream = resource.read(false);
           ByteArrayInputStream bais = new ByteArrayInputStream(inputStream);
    Regards
    Ayyapparaj

  • View Object to read data from a java file

    Hi,
    I am using JDeveloper 11.1.1.4 and ADF-BC in my application.
    For one of my view objects , I want the data to be read from a java file which exposes some method to return a collection.
    I cannot use a static view object in this case.
    Please suggest the best way to implement this requirement.Basically build a view object that should read data from a java file.
    Thanks,
    Praveen

    Depending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
    http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html

  • Read data from a text file, one line at a time.

    I need to read data from a text file, and display each line in a String Indicator on Front Panel. It displays each line, but I get Error 4, End Of Line, unless I enter an extra line of data in the file that I don't need. I tried Read From Text File.vi, made by Nat Instr, and it gave the same error.

    The Read from Text File.vi reads data from a text file line by line until the user stops the VI manually with the Stop button on the front panel, or until an error (such as "Error 4, End of file") occurs. If an error occurs, the Simple Error Handler.vi pops up a dialog that tells you which error occurred.
    The Read from Text File.vi uses a while loop, but if you knew how many lines you wanted to read, you could replace the while loop with a for loop set to read that many lines from the file.
    If you need something more dynamic because the number of lines in your files vary, then you could change the code of the Read from Text File.vi to the expect "Error 4, End of file" and handle it appropriately. This would require unbundling the error cluster that comes fro
    m the Read File function with the Unbundle By Name function, so that you can expose the individual error "status" and error "code" values stored in the cluster. If the value of the error "code" is 4, then you can change the error "status" from true to false, and you can rebundle the cluster with the Bundle by Name function. Setting the error "status" to false instructs the Simple Error Handler to ignore the error. Otherwise, pass the original error cluster to the Simple Error Handler.vi, so that you can see what the error is.
    Of course, if you're not interested in what the errors are, you could just remove the Simple Error Handler.vi, but then you wouldn't see any error messages.
    Best of Luck,
    Dieter
    Dieter Schweiss
    Applications Engineer
    National Instruments

  • How to export the data from an excel file to Oracle database by using macro

    Hi,
    I want to export data from an excel file into Oracle database.There is one method that by creating the macros through excel we are able to do this.
    can anybody please send me the code to create macros?
    Thanks in advance.
    Regards,
    Surendra.V

    There are several resources on the web, but you could start analyzing if this code fits your needs --> VBA Macro for Excel 2003 Export of Text File with Comma and Quote Delimiters.
    ~ Madrid

  • Read data from a log file to flex textarea while deploying

    Hi,
    I am new to flex. I am able to read data from a log file that placed in C drive and able to write that data into flex textarea, but I am unable to read the same file while it is deployed into weblogic sever.
    Could anyone please tell me how to solve this problem.
    Thanks,
    Sri.

    Do you have it trying to read that same file on your C drive or is the file actually deployed somewhere on the server?

  • Read data from a sequential file to fill an arrray

    I am trying to read data from a sequential file to fill an array and then use the array for calculations. I believe my program is reading the file; however when I try to use the data for calculations the results show up as boxes rather than numbers. Can someone please take a look and give me some insight into where I am going wrong. The sequential file has the following data:
    5.0
    5.35
    5.5
    5.75
    Here is my code from that portion of the program. I can send the entire program if necessary.
    private void calcResults(TextArea loanResults, double amount, double interest, int term ) throws IOException {
         DecimalFormat df = new DecimalFormat("$###,###.00");
         NumberFormat formats = new DecimalFormat("#0.00");
         StringBuffer buffer=new StringBuffer();
         loanResults.append("Month No.\tMonthly Payment\t\tInterest\t\tBalance\n");
         double monthlyPay = amount*Math.pow(1+interest,term)*interest/(Math.pow(1+interest,term)-1);
         monthlyPayment.setText("" + (formats.format(monthlyPay)));
         double principal= amount;
          * Loop through each month of a given loan
        int month;
         for (int i=0; i<term; i++)
    try {
         int j = 0;
         BufferedReader in = new BufferedReader(new FileReader("rates.txt"));
         String temp = "";
         while((temp = in.readLine()) != null) {     
            j++;
            strRate[j] = temp;
            RateValue1 = Double.parseDouble(loanAmountTxFld.getText());
            in.close();
             catch (FileNotFoundException e) {
                 System.out.println("Can't find file rate.txt!");
                 return;
          month= i+1;
          double rate =principal*interest;
          double balance=principal+rate-monthlyPay;
          loanResults.append((month) + "\t\t" + (formats.format(principal) + "\t\t"  + (formats.format(rate) + "\t\t"
                            + (formats.format(balance)     + "\n"))));
          principal=balance;
          GraphArea.append(formats.format(balance)     + "\n");
    *Method for determining which loan option was chosen
    private void calc() throws IOException{
      String interestTerms = (String) cOption.getSelectedItem();
      if (interestTerms.equalsIgnoreCase("5 yrs at 5.00"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.05/12, 60);
      else if (interestTerms.equalsIgnoreCase("7 yrs at 5.35"))
        calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), RateValue1/12, 84);
      else if (interestTerms.equalsIgnoreCase("15 yrs at 5.50"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0550/12, 180);
      else if (interestTerms.equalsIgnoreCase("30 yrs at 5.75"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0575/12, 360);
      else if (interestTerms.equalsIgnoreCase("       "))
        calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), Double.parseDouble(loanInterestTxFld.getText())/100/12,Integer.parseInt(loanTermTxFld.getText())*12);
    }

    ok, I fixed my program per your suggestion and I still cannot get it to work. I get the same result where the ouput is just a bunch of boxes. I also tried to print to see what I am getting and all I see is the values of the array [5.0,5.35,5.5,5.75] but I cannot seem to pass that to the calculations. I wish I could figure this out. Does anybody have any suggestions as to what I am doing wrong. This is the portion of my code that I am having issues with:
    private void calcResults(TextArea loanResults, double amount,double interest, int term ) throws IOException {
         DecimalFormat df = new DecimalFormat("$###,###.00");
         NumberFormat formats = new DecimalFormat("#0.00");
         StringBuffer buffer=new StringBuffer();
         loanResults.append("Month No.\tMonthly Payment\t\tInterest\t\tBalance\n");
         double monthlyPay = amount*Math.pow(1+interest,term)*interest/(Math.pow(1+interest,term)-1);
         monthlyPayment.setText("" + (formats.format(monthlyPay)));
         double principal= amount;
          * Loop through each month of a given loan
        int month;
         for (int i=0; i<term; i++)
          month= i+1;
          double rate =principal*interest;
          double balance=principal+rate-monthlyPay;
          loanResults.append((month) + "\t\t" + (formats.format(principal) + "\t\t"  + (formats.format(rate) + "\t\t"
                            + (formats.format(balance)     + "\n"))));
          principal=balance;
          GraphArea.append(formats.format(balance)     + "\n");
    private void readFile() throws IOException
    try {
         int j = 0;
         BufferedReader in = new BufferedReader(new FileReader("rates.txt"));
         String temp = "";
         while((temp = in.readLine()) != null) {     
            strRate[j] = temp;
            j++;
    RateValue1 = Double.valueOf(((String)(strRate[1]))
    ).doubleValue();
    //        RateValue1 = Double.parseDouble(loanAmountTxFld.getText());
            in.close();
             catch (FileNotFoundException e) {
                 System.out.println("Can't find file rates.txt!");
                 return;
    *Method for determining which loan option was chosen
    private void calc() throws IOException{
      String interestTerms = (String) cOption.getSelectedItem();
      if (interestTerms.equalsIgnoreCase("5 yrs at 5.00"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.05/12, 60);
      else if (interestTerms.equalsIgnoreCase("7 yrs at 5.35"))
        calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), RateValue1/12, 84);
      else if (interestTerms.equalsIgnoreCase("15 yrs at 5.50"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0550/12, 180);
      else if (interestTerms.equalsIgnoreCase("30 yrs at 5.75"))
         calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), 0.0575/12, 360);
      else if (interestTerms.equalsIgnoreCase("       "))
        calcResults(loanResults, Double.parseDouble(loanAmountTxFld.getText()), Double.parseDouble(loanInterestTxFld.getText())/100/12,Integer.parseInt(loanTermTxFld.getText())*12);
      }

  • Need to read data from a text file

    I need to read data from a text file and create my own hash table out of it. I'm not allowed to use the built in Java class, so how would I go implementing my own reading method and hash table class?

    It's not possible to read from a file without using classes from the core API*. You'll have to get clarification from your instructor as to which classes are and are not allowed.
    [http://java.sun.com/docs/books/tutorial/essential/io/]
    *Unless you write a bunch of JNI code to replicate what the java.io classes are doing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Error in Reading data from a xml file in ESB

    Hi,
    i created a inbound file adapter service which reads data from a xml file and passes it to the routing service and from there updates to the database.....
    (everything created in jdeveloper)
    But i am getting error....it is not getting updated to the database...when i check the database(select * from table) its showing one row selected but i couldnt find the data....
    Transformation mapping also i did...
    i think may be some error in reading the data from the xml file but not so sure.....
    please reply to this mail as soon as possible its very urgent

    Michael R wrote:
    The target table will be created when you execute the interface, if you set the option on the flow tab as instructed in step #6 of the "Setting up ODI Constraint on CLIENT Datastore" Section.
    Option     Value
    CREATE_TARG_TABLE      trueHi Michel,
    This was not my required answer.I am sorry that I was unable to clarify my question.Actually
    +This project executed successfully with some warning.Target Table is automatically created in database and also populated with data.But when I right-click Target Datastore(in >Mapping Tab of the Interface), and then select Data to View Data that needs to be inserted in the target table.I get some error like this:-...+This above line is the result of my project my problem is
    when I right-click Target Datastore(in Mapping Tab of the Interface), and then select Data to View Data that already inserted in the target table.Is not shown by the view data operation.
    I meant to say I am facing this error
    At the10(1010 written) step of
    Creating a New ODI Interface to Perform XML File to RDBMS Table Transformation
    wehre it says
    Open the Interface tab. Select Mapping tab, right-click Target Datastore - CLIENT, and then select Data. View Data inserted in the target table. Close Data Editor. Close the tabs...
    In my case when I use my sqldeveloper I can see data successfully inserted in my target table and also in error table (data that can't satisfy the constraint) .But I was unable to check this by following the above mentioned 10 th step and got this error.
    Thanks

  • Need to read data from pipe separated file using POJO?

    Hi,
    I need to read data from pipe separated file using POJO.
    There is config.properties file which consists of the
    data mapping.
    Can you help me with sample code or help?
    Regards
    Regards
    Taton
    Edited by: Taton on Mar 7, 2009 4:41 PM

    It's not possible to read from a file without using classes from the core API*. You'll have to get clarification from your instructor as to which classes are and are not allowed.
    [http://java.sun.com/docs/books/tutorial/essential/io/]
    *Unless you write a bunch of JNI code to replicate what the java.io classes are doing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for