I have a requirement to convert OpenOffice Excel data into XML . I have Apache OpenOffice 4.1.1 in my machine (not MS- Office).
Sample Data. (First Row is of Tags )
CustData FirstName  MiddleName  LastName   EMail             PhoneNumber
           abe       x          Park      abe@mail.com       2323232323
           poppy     y          Kaith     Poppy@mail.com     2323232323
Need Result as :
<CustData>
        <FirstName>abe</FirstName>  
        <MiddleName>x</MiddleName>
        <LastName>Park</LastName>   
        <EMail>abe@mail.com</EMail>             
        <PhoneNumber>2323232323</PhoneNumber>
</CustData>
<CustData>
       <FirstName>poppy</FirstName>  
       <MiddleName>y</MiddleName>
       <LastName>Kaith</LastName>   
        <EMail>Poppy@mail.com </EMail>             
        <PhoneNumber>2323232323</PhoneNumber>
</CustData>
Openoffice and Libreoffice Calc is able transforming its XML via XSLT with Export Filters. To do so with your example data, do the following:
At first create the following XSL file and save it as SampleDataExportFilter.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" exclude-result-prefixes="office table text">
 <xsl:template match="/">
  <root>
   <xsl:apply-templates select="/*/office:body" />
  </root>
 </xsl:template>
 <xsl:template match="office:body">
  <xsl:apply-templates />
 </xsl:template>
 <xsl:template match="office:spreadsheet">
  <xsl:apply-templates />
 </xsl:template>
 <xsl:template match="office:spreadsheet/table:table">
   <xsl:for-each select="table:table-row[position() > 1]">
   <CustData>
    <FirstName><xsl:value-of select="table:table-cell[2]/text:p" /></FirstName> 
    <MiddleName><xsl:value-of select="table:table-cell[3]/text:p" /></MiddleName>
    <LastName><xsl:value-of select="table:table-cell[4]/text:p" /></LastName>   
    <EMail><xsl:value-of select="table:table-cell[5]/text:p" /></EMail>            
    <PhoneNumber><xsl:value-of select="table:table-cell[6]/text:p" /></PhoneNumber>
   </CustData>
   </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>
Now open Calc and select Tools - XML Filter Settings:
Select New and fill the dialog General:
In the register Transformation select the SampleDataExportFilter.xsl as XSLT for export:
Confirm with OK and the XML Filter Settings with Close.
Now create the following Calc file:
With File - Export you shold now be able to export the spreadsheet data using the File type CustData (.xml) as XML.
You can download OpenXmlSDK Open XML SDK
It contains Productivity Tools which could help you to discover structure of excel documents, for example:

And then use any available XSLT tutorial to find out about approaches of conversion one XML structure to another
And also this might help you:
来源:https://stackoverflow.com/questions/32817081/convert-calcexcel-data-in-xml-in-openoffice



