code: function addCellInfoToVirtual(row, cell) {
              var cellIndex = recoverCellIndex(row.rowIndex, cell.cellIndex);
              var cellHasColspan = (cell.colSpan > 1);
              var cellHasRowspan = (cell.rowSpan > 1);
              var isThisSelectedCell = (row.rowIndex === _startPoint.rowPos && cell.cellIndex === _startPoint.colPos);
              setVirtualTablePosition(row.rowIndex, cellIndex, row, cell, cellHasRowspan, cellHasColspan, false);
  
              // Add span rows to virtual Table.
              var rowspanNumber = cell.attributes.rowSpan ? parseInt(cell.attributes.rowSpan.value, 10) : 0;
              if (rowspanNumber > 1) {
                  for (var rp = 1; rp < rowspanNumber; rp++) {
                      var rowspanIndex = row.rowIndex + rp;
                      adjustStartPoint(rowspanIndex, cellIndex, cell, isThisSelectedCell);
                      setVirtualTablePosition(rowspanIndex, cellIndex, row, cell, true, cellHasColspan, true);
                  }
              }
  
              // Add span cols to virtual table.
              var colspanNumber = cell.attributes.colSpan ? parseInt(cell.attributes.colSpan.value, 10) : 0;
              if (colspanNumber > 1) {
                  for (var cp = 1; cp < colspanNumber; cp++) {
                      var cellspanIndex = recoverCellIndex(row.rowIndex, (cellIndex + cp));
                      adjustStartPoint(row.rowIndex, cellspanIndex, cell, isThisSelectedCell);
                      setVirtualTablePosition(row.rowIndex, cellspanIndex, row, cell, cellHasRowspan, true, true);
                  }
              }
          }
docs: Recover info about row and cell and add information to virtual table.
  
  @param {object} row Row to recover information.
  @param {object} cell Cell to recover information.