错误:通过XSLT导出excel

May*_*hak 1 xml xslt export-to-excel

我正在导出excel文件通过xmlxslt和得到这个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

Tim*_*m C 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>
Run Code Online (Sandbox Code Playgroud)

特别是ss:MergeDownss: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)

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