Parsing .xls(excel) file and creating a .xdat(xml) file out of it
Hi All,
need some tips on a task i am trying accomplish for some days now.
I have a excel file, in which I have 10 columns with 40-50 rows of data.
I have a xml structure in mind, in which I want to put all these data from excel file. But till now I haven't understood exactly how I should go about it step by step.
Should I first parse the excel file and save each row (with the column names) in a list, and then read through each row and insert them in the xml format i have planned?
And how do I open a .xdat data and tell my program to insert the data in the sequence of sets I want them to be saved?
I know it's a pretty newbie question ... but will appreciate any help and tips provided. Would help me a lot to learn this new type of task.
Thank you.
with best regards,
Newbie
If you are using JAXB you unmarshall to read the xml. Then you marshall to write.
So what you do is:
1) Unmarshall your xml document. This means you now have your xml as Java objects.
2) Read through the Java objects using loops, etc making any changes to the values. I think here you want to add values, so you can set your values
3) Now in memory you have your new xml thats been updated, so you can marshall it (save it)
I'd recommend a JAXB tutorial. But the basic steps are:
1) Create an xml file and insure its valid
2) Use a free online utility (http://www.hitsw.com/xml_utilites/) to convert the xml into an xml schema (xsd)
3) Use xjc from the jaxb jar and run it over the xml schema (the command i use is xjc myxmlfile.xsd -p com.example
4) Step 3 above creates all the java classes for you to use so then you can unmarshall. Process. Then marshall
This is just a high level. I might have missed something, but the jaxb tutorial is really good and that's how I learned the process.
Similar Messages
-
Creating xml file and inert tin to xml file in clob column
i have a table
CREATE TABLE XMLCLOB of XMLType
XMLTYPE store AS CLOB;
now i want to create a xml file by qurying emp table ie select sal,empname from emp.
the cretaed xml file is saved in the xmlclob table how to do that?You will need to use Oracle XML function EXTRACT or EXTRACTVALUE in order to read the data before inserting into Oracle table. These functions need to be used in select statement.
Syntax:
EXTRACT(XMLType_Instance>, <XPath_string>, <namespace_string>)
EXTRACTVALUE(XMLType_Instance>, <XPath_string>, <namespace_string>) -
How to read XML file and write into another XML file
Hi all, I am new to JAVAXML.
My problem is I have to read one XML file and take some Nodes from that and write these nodes into another XML file...
I solved, how to read XML file
But I don't know how to Write nodes into another XML.
Can anyone help in this???
Thanks in advance..This was answered a bit ago. There was a thread called "XML Mergine" that started on Sept 14th. It has a lot of information about what it takes to copy nodes from one XML Document object into another.
Dave Patterson -
Can I unzip the .ipa file and edit the application.xml file
I want to modify the below info to also have an additional string value of 2, which somewhere along the line tells something somewhere that the app can run on the ipad. Is there some info in the compiled application that will error out if I modify this document?
<InfoAdditions>
- <![CDATA[ <key>UIDeviceFamily</key><array><string>1</string></array> ]]>
</InfoAdditions>
into this
<InfoAdditions>
- <![CDATA[ <key>UIDeviceFamily</key><array><string>1</string><string>2</string></array> ]]>
</InfoAdditions>you can change the file extension to zip, unzip it, find the application.xml file in one of the subdirectories, edit it, rezip the files, change the file extension to ipa and install.
-
SSIS Compare 2 flat files and create a third flat file
Hey all,
I have two flat files structured as:
Flat File A:
3213,214,14,21421,354,325
Flat File B:
3213,214,14, 55,89, 21421,354,325
I am trying to create an ETL Package that compares Flat File A, to Flat File B, finds an anomaly, in this case
55,89, then outputs the anomalies to Flat File C, separated by commas.
How would I go about doing this? Everything I have looked at shows comparisons between SQL DB's.
Any suggestions?
Thank youHi, I'm looking for a no code solution for my clients. They're happy with drag and drop, but would prefer a no-code solution. Is this possible?
sorry what do you mean by drag and drop? what will client drag and drop? From what interface?
If you can give bigger picture then it would help
In SSIS you've to implement using SSIS tasks only
And in the above case you need to write code in any case be it script task which is in C#,VB .NET or be it execute sql task which is sql.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
What is the best and most efficient way to read a .xls File and create a pipe-delimited .csv File?
Thanks in advance for your review and am hopeful for a reply.
ITBobbyP85You should have no trouble doing this in SSIS. Simply add a data flow with connection managers to an existing .xls file (excel connection manager) and a new .csv file (flat file). Add a source to the xls and destination to the csv, and set the destination
csv parameter "delay validation" to true. Use an expression to define the name of the new .csv file.
In the flat file connection manager, set the column delimiter to the pipe character. -
How to connect to excel sheet and create a universe on top of that
hi,
can any tell me how to connect to excel sheet and create a universe on top of that.what connection should i keep.Hi Vishal,
Here is how you can create a universe from an excel file:
Here are the steps to follow:
1. Launch Designer, select the Quick Design Wizard if not already open, and click "Begin".
2. Type in a universe name then click "New".
3. Select the Network layer "ODBC Drivers" and then click OK.
4. In the ODBC Drivers window, select the "Login" tab and then type in a name for this connection.
5. Select "Generic ODBC data source" from the drop-down list for database engine.
6. Click the "ODBC Admin" button to define data source name.
7. In the ODBC Data Source Administrator window, click Add.
8. Select "Microsoft Excel Drivers" and click Finish.
9. Enter a data source name.
10. Click "Workbook", select the file you want to access, and click OK.
11. Locate and select the data source name from the drop-down list.
12. Click "Test" to make sure that the server is responding.
You will be back at the Quick Design Wizard "Step 1 of 4". Click the "Next" button and follow through the rest of the steps in order to complete the universe.
-Shreyash -
Music and Video on Nas in folders but how do i set up itunes on multiple computers to see and use these files and create libraries?
So i have had a itunes set up on my old PC, bought a NAS and copied the folders over to the NAS, i did this incorrectly and so then even when i told the old PC to use that folder it saw all the songs but wasnt able to play the songs as it was looking in the incorrect place.
So now i want my Mac as well as my PC and others to all use the music, videos etc on the NAS they are in itunes friendly folders (as they were compiled this way by the itunes on the old PC.
When i tell the mac to use the itunes library.itl file it sees the song list (about 100gb) but cant see any songs, so i have removed this file to another location for now with the hope to set up a new file and then get it to see the songs on the folder from the NAS.
Can someone tell me how to do this for all the Mac's and PC's on my network as i really want one master library that all use and add too.
Thanks for your help in advance.I have the same question but I am using two pc's
-
How to create xml file from Oracle and sending the same xml file to an url
How to create xml file from Oracle and sending the same xml file to an url
SQL/XML (XMLElement, XMLForest, XMLAgg, etc) and UTL_HTTP.
Whether that works for you with the version of Oracle you have, your requirements, and needs is another story. A little detail goes a long way. -
How can I copy part of a larger PDF file and create a smaller one?
How can I copy part of a larger PDF file and create a smaller one?
Hi,
Copy the content of PDF file in Adobe Reader and paset it to MS Word then create PDF file from the Word file.
This may not work for all PDF files as some PDF files are not created correctly or some content cannot be copied.
Acrobat XI Pro has features to extract/delete/crop pages in PDF files and you can download it from www.adobe.com(Trial version- 30 days free). Or you can upgrade your subscription to Acrobat Plus and see more information at https://www.acrobat.com/acrobatplus/en/home.html
Hisami -
XI to read the action xml file and create a SAP notification in PM
Hi All
I am new to XI world can you please help me in doing this scenario.
I have to read an XML file and create a Notification in PM module of SAP.
Step by Step help would be great.
Thanks in Advance
SaiHi Sai,
To send data from XML file to SAP (any module) there are 2 ways..
1. File to IDoc and
2. File to RFC...
first Identify the concerned BAPI or IDOC for CREATION OF
NOTIFICATION ...then do the scenarios..
for Step by stp process go through this link...
New to XI
regards,
Ansar. -
How to crop a mp3 file and create a new small one from it?
Hi all,
I would crop a long mp3 sound file and create a new small one with the short part from the long mp3 sound file. How to do it? Anybody can help me?
Thank you very much.
Regard
DavidHave you managed to do this?
I would also like to know how.
Thanks
Jeff Singer -
Problem in reading no. of files and writing into a single file
Hi,
Iam with Problem in reading no. of files and writing into a single file....
Iam reading no. of files stored in local directory.......
Iam able to read and print the data in files successfully....but while writing..only first file is being written...and the next files are not written in my output file...
plz tell me my mistake....I hope Iam doing some mistake while writing into file...PLz help.....
Basically my code structure is like this....
import java.io.*;
import java.util.regex.*;
import java.util.*;
import java.text.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
class Writing {
public static void main(String args[]) throws Exception {
FileOutputStream fileOut = new FileOutputStream("ServerResult.xls"); //my output file
int counter = 1;
File dir = new File("C:/Perform/ServerLogs");
String[] children = dir.list();
if( children == null)
System.out.println("The Directory mentioned does not exist");
else {
for (int fileNo = 0; fileNo < children.length; fileNo++ ) { //Files iteration starts
String filename = children[fileNo];
File logFile = new File(filename);
FileReader logFileReader = new FileReader(logFile);
BufferedReader logReader = new BufferedReader(logFileReader);
StringBuffer sBuf = new StringBuffer(5000);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow rowTitle;
HSSFRow rowReq;
HSSFRow rowRes;
String aLine = null;
boolean skip = false;
boolean readed = false;
boolean initReq = false;
boolean flag = false;
long requestTime = 0;
long responseTime = 0;
long recdTime = 0;
long sentTime = 0;
long hasTime = 0;
long presentTime = 0;
int hasCalls = 0;
Pattern startMessage = Pattern.compile("^<MESSAGE.*ID=\".*_"+args[0]+"\".*", Pattern.DOTALL);
Pattern requestMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"RequestMsg.\".*ID=\".*_"+args[0]+"\".*<ActName>(.*)</ActName>.*", Pattern.DOTALL);
Pattern requestMessage1 = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"RequestMsg.\".*ID=\".*_"+args[0]+"\".*<Svc id=\"(.*)\">.*", Pattern.DOTALL);
Pattern responseMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"ResponseMsg\".*ID=\".*_"+args[0]+"\".*", Pattern.DOTALL);
Pattern initMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"HostConnInit\".*ID=\".*_"+args[0]+"\".*", Pattern.DOTALL);
Pattern initResMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"ResponseMsg\".*ID=\"null\".*", Pattern.DOTALL);
Pattern initResIDMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"ResponseMsg\".*ID=\"null\".*<IATA>"+args[0]+"</IATA>.*", Pattern.DOTALL);
Pattern sentMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"DCMsgSentInfo\".*ID=\".*_"+args[0]+"\".*", Pattern.DOTALL);
Pattern rcvdMessage = Pattern.compile("^<MESSAGE.*TS=\"(.*)\" CATEGORY=\"DCMsgRcvdInfo\".*ID=\".*_"+args[0]+"\".*", Pattern.DOTALL);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
DecimalFormat dcf = new DecimalFormat("########.##");
String actName = "";
if (fileNo ==0)
rowTitle = sheet.createRow((short)0);
rowTitle.createCell((short)0).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)0).setCellValue("Req/Res");
rowTitle.createCell((short)1).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)1).setCellValue("Action");
rowTitle.createCell((short)2).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)2).setCellValue("Server Time(in ms)");
rowTitle.createCell((short)3).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)3).setCellValue("Request Vs Response Time in Server(in ms)");
rowTitle.createCell((short)4).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)4).setCellValue("Time Taken By HAS/HOST(in ms)");
rowTitle.createCell((short)5).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)5).setCellValue("No. of HAS calls");
rowTitle.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_STRING);
rowTitle.createCell((short)6).setCellValue("Data Size");
//wb.write(fileOut);
while((aLine=logReader.readLine()) != null) {
if(aLine.startsWith("<MESSAGE TYPE=\"EVENT\"")) {
Matcher m = startMessage.matcher(aLine);
if(m.find()) {
sBuf.setLength(0);
sBuf.append(aLine);
skip = false;
initReq = false;
m = initMessage.matcher(aLine);
if(m.find()) {
initReq = true;
} else {
if(initReq) {
m = initResMessage.matcher(aLine);
if(m.find()) {
sBuf.setLength(0);
sBuf.append(aLine);
skip = false;
} else if(aLine.startsWith("</MESSAGE>")) {
if(!skip) {
sBuf.append(aLine);
readed = true;
} else if(!skip){
sBuf.append(aLine);
if(!skip && readed) {
String tempStr = sBuf.toString();
if(tempStr.length() > 0) {
boolean reqMatched = false;
Matcher m = null;
if(initReq) {
m = initMessage.matcher(tempStr);
actName = "Intialization";
} else {
m = requestMessage.matcher(tempStr);
String time = "";
if(m.find()) {
reqMatched = true;
for (int i=1; i<=m.groupCount(); i++) {
String groupStr = m.group(i);
if(i == 1) {
time = groupStr;
} else if(i == 2) {
actName = groupStr;
} else if(!initReq){
m = requestMessage1.matcher(tempStr);
if(m.find()) {
reqMatched = true;
for (int i=1; i<=m.groupCount(); i++) {
String groupStr = m.group(i);
if(i == 1) {
time = groupStr;
} else if(i == 2) {
actName = groupStr;
if(time.length() > 0 ) {
try{
requestTime = sdf.parse(time).getTime();
}catch(Exception ex){}
System.out.println("Request,"+actName+","+time+",,,,"+dcf.format(((double)time.length()/1024.0))+"K");
//bw.write("Request,"+actName+","+time+",,,,"+dcf.format(((double)time.length()/1024.0))+"K");
String reqDataSize = dcf.format(((double)time.length()/1024.0))+"K" ;
rowReq = sheet.createRow((short)counter);
rowReq.createCell((short)0).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)0).setCellValue("Request");
rowReq.createCell((short)1).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)1).setCellValue(actName);
rowReq.createCell((short)2).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)2).setCellValue(time);
rowReq.createCell((short)3).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)3).setCellValue("");
rowReq.createCell((short)4).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)4).setCellValue("");
rowReq.createCell((short)5).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)5).setCellValue("");
rowReq.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_STRING);
rowReq.createCell((short)6).setCellValue(reqDataSize);
counter = counter +1;
System.out.println("counter is "+counter);
Matcher l = sentMessage.matcher(tempStr);
Matcher k = rcvdMessage.matcher(tempStr);
if(l.find()) {
for (int i=1; i<=l.groupCount(); i++) {
String groupStr2 = l.group(i);
try{
sentTime = sdf.parse(groupStr2).getTime();
}catch(Exception ex){}
if(k.find())
for(int j=1;j<=k.groupCount(); j++) {
String groupStr1 = k.group(j);
try{
recdTime = sdf.parse(groupStr1).getTime();
}catch(Exception ex){}
presentTime = (recdTime - sentTime);
hasTime = hasTime + presentTime;
hasCalls = hasCalls +1;
if(!reqMatched) {
if(initReq) {
m=initResIDMessage.matcher(tempStr);
} else {
m=responseMessage.matcher(tempStr);
if(m.find()) {
for (int i=1; i<=m.groupCount(); i++) {
String groupStr = m.group(i);
try{
responseTime = sdf.parse(groupStr).getTime();
}catch(Exception ex){}
String resDataSize = dcf.format(((double)tempStr.length()/1024.0))+"K" ;
rowRes = sheet.createRow((short)(counter));
rowRes.createCell((short)0).setCellType(HSSFCell.CELL_TYPE_STRING);
rowRes.createCell((short)0).setCellValue("Response");
rowRes.createCell((short)1).setCellType(HSSFCell.CELL_TYPE_STRING);
rowRes.createCell((short)1).setCellValue(actName);
rowRes.createCell((short)2).setCellType(HSSFCell.CELL_TYPE_STRING);
rowRes.createCell((short)2).setCellValue(groupStr);
rowRes.createCell((short)3).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
rowRes.createCell((short)3).setCellValue((responseTime - requestTime));
rowRes.createCell((short)4).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
rowRes.createCell((short)4).setCellValue(hasTime);
rowRes.createCell((short)5).setCellType(HSSFCell.CELL_TYPE_NUMERIC);
rowRes.createCell((short)5).setCellValue(hasCalls);
rowRes.createCell((short)6).setCellType(HSSFCell.CELL_TYPE_STRING);
rowRes.createCell((short)6).setCellValue(resDataSize);
hasTime = 0;
hasCalls = 0;
counter = counter + 1 ;
sBuf.setLength(0);
readed = false;
wb.write(fileOut);
} // End of for (int fileNo = 0; fileNo < children.length; fileNo++ )
} //End of else
fileOut.close();
} //End of public static void main
} // End of ClassFirst of all, use [code]-tags to make your code readable, please.
I didn't do a complete inspection of your code (because it's too much and unreadable as it is) and I don't know POI, but creating a new HSSFWorkbook for each input file sounds fishy to me ... try re-using the workbook and just creating a new sheet in each iteration. -
How to set SAXParser at command-line interface to create a large XML file
Hi,
I am trying to create a large XML file (more than 50 MB) by selecting from Oracle database but failed because of "out of memory" error. According to "Oracle XML Developer Guide", we should use SAXParser to parsing a large XML file. But there is no example to show how to set SAXParser at command-line
Following is what I use to get xml files. It works only when the file is small.
java OracleXML getXML -DateFormat -withDTD -rowsetTag PO_HDR -conn
"jdbc:oracle:oci8:@server_name" -user "ID/password" "select * from table_name"
When I set SAXParser at the way below,
java oracle.xml.parser.v2.SAXParser OracleXML getXML -DateFormat -withDTD -rowsetTag PO_HDR -conn
"jdbc:oracle:oci8:@server_name" -user "ID/password" "select * from table_name"
it failed with the error message: "In class oracle.xml.parser.v2.SAXParser: void main(String argv[]) is not defined"
Does anyone know how to solve the problem? I'll be appreciated very much for your help.
Yihere are my ideas.
register the xml schema.
using xmldom, generate the desired xml output and return as xmltype.
then you can use something like this to check.
declare
xmldoc xmltype ;
begin
-- populate xmldoc from you xmldom function
-- validate against XML schema
xmldoc.isSchemaValid(schema_url, root_element);
if xmldoc.isSchemaValid = 1 then
--valid schema
else
--invalid
end if;
end -
XML Publisher does not create a valid XML file when I try to 'generate '
I am working through an Oracle document that walks you through creating an XML Pub report. I am using HCM 8.9, Tools 8.49.15 and it has XML Pub installed and I have the Microsoft plug-in installed
I have created a query and have downloaded an rtf template and now am on a page where you enter your data source and then click ‘Generate’ for the sample data file. I did it and it created ‘PERSONAL_DATA_PAY.XML’ which is created from a PS Query. However if I click on ‘PERSONAL_DATA_PAY.XML’ it generates a blocky text file that is not an XML file and I can’t go any further.
Do you know why it’s not generating a valid XML file when I click on 'generate'?
Thanks
Allen H. Cunningham
Data Base Administrator - Oracle/PeopleSoft
Sonoma State UniversityOn the right click on HD under video quality to filter it.
Maybe you are looking for
-
So, how can I add the red line below all those words, which are not technically correct. I have tried everything, but nothing works. Red line should come there automatically, but I can't find nothing from settings to do this. Can you guys help me?
-
Exporting a pdf in indesign CS5 interactive portfolio, the buttons dont work?
interactive PDF using Indesign, Export problems im working on an interactive portfolio, its got 6 pages and four of them have buttons which scroll through alternative images which relate to that page. All very simple stuff. as far as im aware its all
-
Photoshop CS6 keeps crashing when I try and change brush colour
Hi, my Photoshop CS6 keeps crashing when I try and change brush colour. I use layer masks a lot and consequently need to switch between black and white brushes. CS6 crashes a lot and gets closed by Windows 7 when I either click in the icon to swap br
-
Outline an object with a dash line in PS CS6
I have a silhouetted figure I'd like to outline with a dash line ... I understand the basic concept, but will I have to manually outline the object ... can't seem to get it to work out ... what alternative do I have?
-
The touch screen in my IPad2 is not working
If you can help me that would be awesome !!!! somehow we have disabled the touch screen in my IPad 2 and I don't know how to enable it again. Any ideas