使用 Excel 2007 生成的电子表格ML(以及更高版本),xl:Row 和 xl:Cell 元素可能包含 ss:Index 的属性,它提供“跳过”干预完全空白单元格的行或列指定。这使得电子表格ML 中的标记更小,但在尝试根据矩阵中实际存在空白单元格的规则几何形状评估矩阵时不方便。
我在 msxml 中创建了一个 XSLT 1.0 例程,它将例如<xsl:Row><xl:Cell ss:Index="3">dave</xl:Cell></xl:Row>
类型传入标记转换为“扩展”形式,如下所示:
<Row>
<Col/><Col/><Col>dave</Col>
</Row>
请注意,“空白”单元格将转换为空的自闭合标签。这很有帮助,因为进一步的 XSLT 可以假设行和列出现在 Row/Col 结构中的正确序号位置。
然而,这个过程处理起来很复杂,而且有点慢。有没有人通过其他机制解决了“解包” ss:Index 值的挑战?您必须假设传入数据中可能存在“空白单元格”。
我的处理平台是经典的 ASP、在 ASP 内部运行的 Jscript、msxml,并将结果返回给浏览器。然而,任何和所有的观点都是受欢迎的,不受这个平台描述的限制。解包过程理想地发生在服务器上,因为序列化的 XSLT 对结果进行操作。
谢谢 Stackoverflow 的读者!