错误:通过XSLT导出excel

时间:2012-08-22 12:09:41

标签: xml xslt export-to-excel

我正在通过xmlxslt导出excel文件并收到此错误..尝试打开此文件时...这是日志文件

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  0

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  1

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  2

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  0

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  1

XML ERROR in Table
REASON: Bad Value
FILE:   C:\Documents and Settings\mayankp\Desktop\PrintCheckList.xls
GROUP:  Row
TAG:    Cell
ATTRIB: Index
VALUE:  2

感谢任何帮助。

修改:查看完整的XML here

1 个答案:

答案 0 :(得分:5)

XML示例不完整,但查看它,问题可能在于您的第二行

     <Row ss:Height="15.75" ss:StyleID="s62">
        <Cell ss:MergeDown="2" ss:StyleID="m57097196">
           <Data ss:Type="String">S/N</Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097216">
           <Data ss:Type="String">PRIORITY</Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097076">
           <Data ss:Type="String">ITEM </Data>
        </Cell>
        <Cell ss:MergeAcross="2" ss:StyleID="m57097176">
           <Data ss:Type="String">AUDIT TYPE </Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097236">
           <Data ss:Type="String">STATUS </Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097280">
           <Data ss:Type="String">REFERENCE </Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097056">
           <Data ss:Type="String">AUDIT REMARKS</Data>
        </Cell>
     </Row>

特别是 ss:MergeDown ss:MergeAcross 属性。如果您查看 ss:MergeAcross 所见的Microsoft Xml Spreadsheet Reference,则会显示以下内容:

  

指定相邻单元格的数量(右边除非在   从右到左模式)从当前单元格合并。如上所述   以上,指数不得重叠。如果存在重复项,则行为为   未指定且XML电子表格文档被视为无效。

因此,您可能会收到错误,因为以下Cell位于第5列,这与第4列中的Cell重叠,后者分布在以下两个单元格中。您需要将第五个单元格的索引显式设置为第7列。(注意在第五个单元格中使用ss:Index =“7”。

     <Row ss:Height="15.75" ss:StyleID="s62">
        <Cell ss:MergeDown="2" ss:StyleID="m57097196">
           <Data ss:Type="String">S/N</Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097216">
           <Data ss:Type="String">PRIORITY</Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097076">
           <Data ss:Type="String">ITEM </Data>
        </Cell>
        <Cell ss:MergeAcross="2" ss:StyleID="m57097176">
           <Data ss:Type="String">AUDIT TYPE </Data>
        </Cell>
        <Cell ss:Index="7" ss:MergeDown="2" ss:StyleID="m57097236">
           <Data ss:Type="String">STATUS </Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097280">
           <Data ss:Type="String">REFERENCE </Data>
        </Cell>
        <Cell ss:MergeDown="2" ss:StyleID="m57097056">
           <Data ss:Type="String">AUDIT REMARKS</Data>
        </Cell>
     </Row>

另外,由于使用 ss:Mergedown ,对于单元格设置为2,这意味着接下来的两行被占用。因此,应更改xml中的下一个Row元素,以将索引显式设置为5,以便不重叠。

     <Row ss:Index="5" ss:Height="30">
        <Cell ss:StyleID="s76">
           <Data ss:Type="String">1</Data>
        </Cell>

这应该有希望解决你的问题。