我正在通过xml
和xslt
导出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
答案 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>
这应该有希望解决你的问题。