diff --git a/lib/doc/row.js b/lib/doc/row.js index 0239de917..3857ced13 100644 --- a/lib/doc/row.js +++ b/lib/doc/row.js @@ -329,13 +329,30 @@ Row.prototype = { throw new Error('Invalid row number in model'); } this._cells = []; + var previousAddress; value.cells.forEach(cellModel => { switch (cellModel.type) { case Cell.Types.Merge: // special case - don't add this types break; default: - var cell = this.getCellEx(colCache.decodeAddress(cellModel.address)); + var address; + if (cellModel.address) { + address = colCache.decodeAddress(cellModel.address); + } else if (previousAddress) { + // This is a element without an r attribute + // Assume that it's the cell for the next column + var row = previousAddress.row; + var col = previousAddress.col + 1; + address = { + row: row, + col: col, + address: colCache.encodeAddress(row, col), + $col$row: '$' + colCache.n2l(col) + '$' + row + }; + } + previousAddress = address; + var cell = this.getCellEx(address); cell.model = cellModel; break; }