May*_*hak 1 xml xslt export-to-excel
我正在导出excel文件通过xml与xslt和得到这个error..when试图打开这个文件......这是日志文件
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
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
编辑:在此处查看完整的XML
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>
Run Code Online (Sandbox Code Playgroud)
特别是ss:MergeDown和ss:MergeAcross属性.如果您查看Microsoft Xml电子表格参考,您将看到ss:MergeAcross它会显示以下内容:
指定要从当前单元格进行合并的相邻单元格数(除非从右到左模式).如上所述,指数不得重叠.如果存在重复项,则行为未指定,并且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>
Run Code Online (Sandbox Code Playgroud)
另外,由于使用了ss:Mergedown,对于单元格设置为2,这意味着接下来的两行被占用.因此,应更改xml中的下一个Row元素,以将索引显式设置为5,以便不重叠.
<Row ss:Index="5" ss:Height="30">
<Cell ss:StyleID="s76">
<Data ss:Type="String">1</Data>
</Cell>
Run Code Online (Sandbox Code Playgroud)
这应该有希望解决你的问题.
| 归档时间: |
|
| 查看次数: |
5544 次 |
| 最近记录: |