【问题标题】:java - xml generation from excel sheet contentjava - 从excel工作表内容生成xml
【发布时间】:2011-06-07 11:53:00
【问题描述】:

我有一个 xsd 和一个 MS-Excel 电子表格。 excel 表包含 xsd 的所有元素/字段的类似 Xpath 的表示形式以及 xsd 中指定的相应数据类型。

例如,如果 xsd 包含如下元素:

<xsd:complexType name="person">
  <xsd:all>
   <xsd:element name="name" type="xsd:string" minOccurs="0"/>
   <xsd:element name="age" type="xsd:string" minOccurs="0"/>
  </xsd:all>
</xsd:complexType>

excel表格内容如下:

Column 2 (element/field name)        Column 3 (data type)
person.name                          String
person.age                           String

我有一个需求,检查excel表格的内容是否有效且完整。 因此,我想从 MS-Excel 电子表格生成 xml 文件并验证它是否与现有的 xsd。

需求详情如下:

  1. 读取 MS-Excel 电子表格第二列和第三列的内容。
  2. 忽略内容不包含点分隔符的行
  3. 生成xml
  4. 验证它反对用户指定的 xsd

如何在 java 程序中做到这一点?

【问题讨论】:

    标签: java xml excel


    【解决方案1】:

    有几个 Java 库可以读取 Excel 文档,包括 jxlJExcel。 (您也可以考虑使用 CSV 文件(逗号分隔值),它比 Excel 更简单且不是专有的。)

    要解析 XSD 文件,请使用 Java 的 built-in XML parser,如下所示:

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
    Document doc = domBuilder.parse(new FileInputStream("file.xsd"));
    

    【讨论】:

      【解决方案2】:

      您可以使用 XInclude 将值插入到您的文档中。这里有一个例子:Default support for xinclude in Java 6?

      您需要编写自己的实体解析器,然后它可以读取 Excel 文件并在那里找到正确的值。我对 jxl 没有任何经验,但 JExcel 是用于操作 Excel 文件的可靠库。

      【讨论】:

        【解决方案3】:

        如果您安装了 Informatica DT,https://community.informatica.com/solutions/b2bdt_automation_template_excel_generator 怎么样?您可以通过java生成脚本,并使用java在命令行执行它!

        【讨论】:

          猜你喜欢
          • 2014-07-28
          • 1970-01-01
          • 1970-01-01
          • 2023-03-19
          • 1970-01-01
          • 1970-01-01
          • 2013-05-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多