跳转到内容

Apache Ant/将 Excel 转换为 XML

来自维基教科书,开放的书籍,为开放的世界

您希望从二进制 Excel 文档中自动提取格式良好的 XML 文件。

我们将在构建目标内使用 Java Ant 任务。

输入文件

[编辑 | 编辑源代码]

我们将创建一个示例 Microsoft Excel 文件,它有两列,如下所示

Screen image for spreadsheet input
电子表格输入的屏幕图像

将其保存到名为“sample.xls”的文件中。

接下来,下载 Apache Tika jar 文件并将其放在您的本地硬盘驱动器上。

您可以从以下位置获取下载:http://tika.apache.org/download.html 主要 Tika jar 文件大约 27MB。

我将 tika jar 文件放在 D:\Apps\tika 中,但您可以更改此位置。

创建一个名为“build.xml”的文件

<project name="extract-xml-from-xsl" default="extract-xml-from-xsl">
    <description>Sample Extract XML from Excel xsl file with Apache Tika</description>
    <property name="lib.dir" value="D:\Apps\tika"/>
    <property name="input-file" value="sample.xls"/>
    
    <target name="extract-xml-from-xsl">
        <echo message="Extracting XML from Excel file: ${input-file}"/>
        <java jar="${lib.dir}/tika-app-1.3.jar" fork="true" failonerror="true"
            maxmemory="128m" input="${input-file}" output="sample.xml">
            <arg value="-x" />
        </java>
    </target> 
</project>

<java> 任务将运行 tika。参数“-x”(表示 XML)将从输入中提取 XML。

其他命令行选项列在以下位置:http://tika.apache.org/1.3/gettingstarted.html

现在,打开您的 DOS 或 UNIX shell 并 cd 到包含您的构建文件的目录。在命令 shell 中键入“ant”。

$ ant
Buildfile: D:\ws\doc-gen\trunk\build\tika\build.xml

extract-xml-from-xsl:
     [echo] Extracting XML from Excel file: sample.xls

BUILD SUCCESSFUL
Total time: 1 second

示例输出

[编辑 | 编辑源代码]

请注意,输出是一个格式良好的 HTML 文件,其中包含一个表格。

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta name="meta:last-author" content="Dan" />
        <meta name="meta:creation-date" content="2013-03-04T17:20:19Z" />
        <meta name="dcterms:modified" content="2013-03-04T17:22:01Z" />
        <meta name="meta:save-date" content="2013-03-04T17:22:01Z" />
        <meta name="Last-Author" content="Dan" />
        <meta name="Application-Name" content="Microsoft Excel" />
        <meta name="dc:creator" content="Dan" />
        <meta name="Last-Modified" content="2013-03-04T17:22:01Z" />
        <meta name="Author" content="Dan" />
        <meta name="dcterms:created" content="2013-03-04T17:20:19Z" />
        <meta name="date" content="2013-03-04T17:22:01Z" />
        <meta name="modified" content="2013-03-04T17:22:01Z" />
        <meta name="creator" content="Dan" />
        <meta name="Creation-Date" content="2013-03-04T17:20:19Z" />
        <meta name="meta:author" content="Dan" />
        <meta name="extended-properties:Application" content="Microsoft Excel" />
        <meta name="Content-Type" content="application/vnd.ms-excel" />
        <meta name="Last-Save-Date" content="2013-03-04T17:22:01Z" />
        <title></title>
    </head>
    <body>
        <div class="page"><h1>Sheet1</h1>
            <table>
                <tbody>
                    <tr>
                        <td>Name</td>
                        <td>Phone</td>
                    </tr>
                    <tr>
                        <td>Peg</td>
                        <td>123</td>
                    </tr>
                    <tr>
                        <td>Dan</td>
                        <td>456</td>
                    </tr>
                    <tr>
                        <td>John</td>
                        <td>789</td>
                    </tr>
                    <tr>
                        <td>Sue</td>
                        <td>912</td>
                    </tr>
                </tbody>
            </table>
        </div>

</html>
华夏公益教科书