Excel to XML code in java? - java

I need code in java for Excel to XML conversion.
where Excel sheet will be used as the input file and XML file as the output file.we have to read the Excel file Row and column wise and than write that data to XMl file.
please anybody give any Code or URL or any Repository of example,which would be appreciated.
Thanks,
Mishal Shah

Have a look at Apache POI. I'm sure there are some examples there.

This may not be the answer you were looking for, but Excel already has built-in support for XML. If you are using Excel 2007, you will need to enable the Developer tab on the ribbon. From there you can import and export XML schemas and files.
To enable the developer tab:
Click the Microsoft button...
Click Excel Options
Check "Show Developer Tab in the Ribbon"
You will need to create a map by either importing an example XML file that is in the same format as the one you'd like to export, or you can click Source and use a schema (XSD) file.
From there, you just need to map the elements in your XML Map to the data in your sheet, then export the data to an XML file.

I did a "Read Excel into a DefaultTableModel" in about 20 lines with the JExcel API. It was very nice and simple to use.

JExcel is another option, although I think it has less features and doesn't support the latest excel format like the Apache POI does.

I have done conversion of Excel(xlsx) to xml in Java recently. I assumed each row in excel as a single object here. Here are the steps I followed:-
Read Excel file using Apache POI
Created a xsd file and generated corresponding classes
Read each row created, created corresponding objects and initilaized values using the generated getter/setter methods in the classes
Added the objects to an arraylist which holds only objects the same type
Using Jaxb Marshelled the arraylist object to an output file
Ready to provide code if required Here's where you can start https://sites.google.com/site/arjunwebworld/Home/programming/jaxb-example

Related

How to read and append a .xlsm file in java

I want to read and append a .xlsm file in java. I dont have any idea on how to do it.
Do i need to download any jar file to work with it?
All the search result provides a solution which uses apache poi(I did not get what it is). I dont use any IDE. Using simple FileReader and other logic can't I work with this type of file?
Please give me a clear idea on what is a .xlsm file and how to work with it using java.
"XLSM is a Microsoft Excel macro-enabled spreadsheet that contains worksheets of cells arranged by rows and columns and embedded macros programmed in the Visual Basic for Applications language. XLSM files are like XLSX files, but with macros enabled. They can be opened with Excel 2007 or later, or by previous versions of Excel with Open XML component support."
You can read and write to the file using Apache poi.
Take a look at the following SO Posts
write to xlsm (Excel 2007) using apache poi
Read data from read only xlsm file using Java Apache POI
The Apache POI documentation is located at
https://poi.apache.org/

How to convert .xls file to .htm file using JXL api?

I have a Microsoft Excel file and I need to convert it to HTML. In excel, it is pretty simple to do: there is the "Save As..." option and you select "web page (.htm)". But I need to do this from Java, using JXL. Does anyone know how to achieve this?
Take a look at either the XML or CSV classes: they are examples of how to extract data from an Excel document and do something interesting with it.
You may also want to take a look at the Apache POI project if JXL doesn't look like it's going to meet your needs.

Adding cell comments from raw xml for Excel 2007 using java

I need to create cell comments for existing excel file by extracting the xlsx file and using raw XML file.
Is it possible to do it in java without using Apache poi library?
Well I don't know much about excel but I found this website that might help you.

Generating line-graphs in Java for .xls files

Are there any libraries out there that can be used to generate line-graphs and export them to a .xls file?
Check out Apache POI (http://poi.apache.org/). However you need to use a limited workaround for this to work.
"You can not [sic] currently create charts. You can however create a chart in Excel, modify the chart data values using HSSF and write a new spreadsheet out. This is possible because POI attempts to keep existing records intact as far as possible." (http://poi.apache.org/spreadsheet/limitations.html)
You could also look into using the JExcelAPI (http://sourceforge.net/projects/jexcelapi/), but I have no familiarity with its limitations.

How to load old Microsoft Office XML file (Excel) using Java

I'm not able to load an Excel file in the older Office XML format (think Office 2002 or 2003 version) into Java. I tried JXL and Apache's POI (version 3.7). POI doesn't work since it appears to want the newer Office .xlsx format.
Here's an example of the older Office XML format.
One can generate a similar XML file from MS Excel 2010 by saving the workbook as the format "XML Spreadsheet 2003"?
Are there any open-source Java libraries that will load the XMLSS format? Otherwise I have no choice but to write a custom parser: read the XML file then interpret the cell tags to build out the cell matrix. In this XML format, any rows with empty cell values are skipped, the next cell with data positioned with an index attribute that acts like an offset in the columns, I assume to save space in the XML file.
The format is called SpreadsheetML (do not confuse with .xlsx which is also xml-based), a library called Xelem can handle it:
import nl.fountain.xelem.excel.Workbook;
import nl.fountain.xelem.lex.ExcelReader;
//...
ExcelReader reader = new ExcelReader();
Workbook xlWorkbook = reader.getWorkbook("c:\\my\\spreadsheet.xml");
System.out.println(xlWorkbook.getSheetNames());
Copying Mark Beardsley's answer from POI team http://apache-poi.1045710.n5.nabble.com/How-to-convert-xml-to-xls-td2306602.html :
You have got an Office 2003 xml file there, not an OpenXML file; it is an early attempt by Microsoft to create an xml based file format for Excel and it is in that sense a 'valid' Office file format.
Sadly, POI cannot interpret this file at all and that is why you saw the exception when you tried to wrap it up in the InputStream and pass it to WorkbookFactory(s) constructor. You do however have a number of options;
You could use Excel itself and manually open and save each file you wish to convert, as you already have done.
If you have access to Visual Studio and can write Visual Basic or C# code then you could use a control that will allow you to control Excel programmatically. This way you could automate a file conversion process using Excel itself. Then once the file has been converted wither to the binary or OpenXML formats, POI can be used to process it.
If you are running on a stand alone PC on which a copy of Excel is installed and using the Windows operating system, then you could use OLE to do something very similar from Java code. As above, POI can be used to process the file following the conversion.
If you have access to OpenOffice, it has a rather good API that is accessible from Java code. You could use it to convert between the file types for you - it is simply a matter of discovering the correct filter to use in this case. OpenOffice is good for all except the most complex files and you should be able to use POI to process the file following conversion. However, if you choose this route, it may be best to do all of the work using OpenOffice's UNO api.
Depending upon what you want to do with the file's contents, you could create your own parser using core java code and either the SAX or Xerces parsers (consider using xmlBeans (http://xmlbeans.apache.org/) ). If you simply open the original xml file using a simple text editor, you can see that the structure is not complex and, if all you wish to get at is the raw data it contains, this could be your best option.
After a lot of pain I've found a solution to this. JODConverter uses the OpenOffice.org/LibreOffice API and can convert SpreadsheetML to whatever formats OpenOffice.org suppports.
You might get some result using the OpenOffice API. If not directly you could probably convert to a 'supported' format.
Otherwise the schema for the Office 2003 'SpreadsheetML' isn't very complicated. I have succesfully created an xslt scenario to convert a resultset (database query) to a (simple yet effective) Excel 2003 document (XML format). The other way around should not be very hard to achieve.
Cheers,
Wim
The answer today was to ask the vendor to change their Excel file format to an Excel binary rather than the old Office XML. Doing so allowed me to use Apache POI 3.7 to read the file with no issues. I appreciate the answers, as I had no idea there was no direct support in the Java-based open source libraries for this old Office XML format. Now I know next time to check earlier to see what format the Excel files are in before committing to a timeline.
I had the same problem some time ago, ended up writing a SAX parser to read the XML file. I wrote a blog post about it here.
You can find the sample project to parse the file in Github.

Categories