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
MadhaviOptions 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 -
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,
PraveenDepending 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.VThere 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 urgentMichael 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 PMIt'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
-
I accidentally deleted a contact but stupidly i haven't ever done a backup. When i search my i phone, text messages that i received from this deleted contact still appear but they aren't in my message inbox. Is there anyway i can retrieve this conta
-
Does anyone know if i can use itunes on my mobile without having it downloaded on pc as i dont have one?
-
Placing file in a folder on FTP
Hi, Could any body please guide me about the following query: Can we directly place a file to a folder on the FTP through my ABAP program or i need to use Connect and then FTP_COPY. Please guide. Thanks and Regards
-
Making Custom background Folders
Hello, thank you for reading this. I made some files for work and I want to present them professionally, so I want a custom background in it. The problem is, Im using Leopard so I cant just Command-J and choose picture. I obviously need to run some t
-
Stop mplayer from trying to open new windows
This isn't distro-specific, it's typical mplayer. If I associate mplayer (or kmplayer) with mp3 files, then doubleclick one when another mp3 is already playing, mplayer will try to open again. The mp3 plays just fine, it's just that I see a window tr