OpenXML样式表损坏

时间:2018-04-16 18:13:41

标签: openxml

我在第153栏上发现了一个错误(格式化为可读性)OpenXML样式表,这似乎是'。'在0.0%格式标识符中。有谁能看到这里有什么问题?如果我删除numFmts,那么问题就会消失。

<?xml version="1.0" encoding="utf-16"?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
  <x:numFmts count="2">
    <x:numFmt />
    <x:numFmt numFmtId="164" formatCode="0.0%" />
  </x:numFmts>
  <x:fonts count="2">
    <x:font>
      <x:sz val="11" />
      <x:color rgb="000000" />
      <x:name val="Calibri" />
    </x:font>
    <x:font>
      <x:b />
      <x:sz val="11" />
      <x:color rgb="000000" />
      <x:name val="Calibri" />
    </x:font>
  </x:fonts>
  <x:fills count="1">
    <x:fill>
      <x:patternFill patternType="none" />
    </x:fill>
  </x:fills>
  <x:borders count="1">
    <x:border>
      <x:left />
      <x:right />
      <x:top />
      <x:bottom />
      <x:diagonal />
    </x:border>
  </x:borders>
  <x:cellXfs count="3">
    <x:xf />
    <x:xf fontId="1" applyFont="1" />
    <x:xf numFmtId="164" applyNumberFormat="1" />
  </x:cellXfs>
</x:styleSheet>

1 个答案:

答案 0 :(得分:0)

上面一行中的空<x:numFmt>元素是导致问题的原因。 numFmtIdformatCode是该元素中必需的元素。

来自ECMA的架构是:

<xsd:complexType name="CT_NumFmt">
    <xsd:attribute name="numFmtId" type="ST_NumFmtId" use="required"/>
    <xsd:attribute name="formatCode" type="s:ST_Xstring" use="required"/>
</xsd:complexType>

在这样的情况下,值得尝试OpenXml Productivity Tool。它将验证文件以及来自有效文件的反向工程师代码。在你的情况下,你会得到这样的东西:

Image from the Productivity Tool showing the error