With spreadsheetML generated by Excel 2007 (and onwards into newer versions), the xl:Row and xl:Cell elements may include attributes for ss:Index which provides a row or column designation that "skips over" intervening entirely blank cells. This makes the markup in the spreadsheetML smaller, but is inconvenient when trying to evaluate a matrix in terms of a regular geometry where blank cells are actually present in the matrix.
I've made an XSLT 1.0 routine in msxml that converts e.g. <xsl:Row><xl:Cell ss:Index="3">dave</xl:Cell></xl:Row>
type incoming markup to an "expanded" form like this:
<Row>
<Col/><Col/><Col>dave</Col>
</Row>
Note the "blank" cells convert to an empty, self closing tag. This is helpful because then further XSLTs can assume that rows and columns present at the correct ordinal position within the Row/Col structure.
However this process is complex to process, and kind of slow. Has anyone tackled the challenge of "unpacking" ss:Index values by other mechanisms? You have to assume that "blank cells" may exist in the incoming data.
My processing platform is ASP classic, Jscript that operates inside of ASP, msxml, and yields the result back to a browser. However any and all perspectives are welcome, unconstrained by this platform description. The unpacking process ideally occurs on the server, as serialized XSLTs operate on the result.
Thank you, Stackoverflow readers!