range(start, end) {
		const [startX, startY] = this.__coordinates(start);
		const [endX, endY] = this.__coordinates(end);

		if (startY >= this.data.length || startX >= this.data[startY].length || endY >= this.data.length || endX >= this.data[endY].length) {
			return [];
		}

		const result = [];
		if (startY === endY) {
			for (let i = startX; i <= endX; i++) {
				result.push(this.data[startY][i]);
			}
		}
		else if (startX === endX) {
			for (let i = startY; i <= endY; i++) {
				result.push(this.data[i][startX]);
			}
		} else {
			for (let i = startY; i <= endY; i++) {
				let row = [];
				for (let j = startX; j <= endX; j++) {
					row.push(this.data[i][j] || '');
				}
				result.push(row);
			}
		}

		return result;
	}
/**
	* Read a range of coordinates.
	* @param  {string} start The begin coordinates in A1 notation.
	* @param  {string} end The end coordinates in A1 notation.
	* @return {Array} An array with values if a single row was requested, a two dimensional array is more rows were requested.
	*/
Read a range of coordinates.
@param  {string} start The begin coordinates in A1 notation.
@param  {string} end The end coordinates in A1 notation.
@return {Array} An array with values if a single row was requested, a two dimensional array is more rows were requested.
Read a range of coordinates . @param { string } start The begin coordinates in A1 notation . @param { string } end The end coordinates in A1 notation . @return { Array } An array with values if a single row was requested a two dimensional array is more rows were requested .
range(start, end) {
		const [startX, startY] = this.__coordinates(start);
		const [endX, endY] = this.__coordinates(end);
		if (startY >= this.data.length || startX >= this.data[startY].length || endY >= this.data.length || endX >= this.data[endY].length) {
			return [];
		}
		const result = [];
		if (startY === endY) {
			for (let i = startX; i <= endX; i++) {
				result.push(this.data[startY][i]);
			}
		}
		else if (startX === endX) {
			for (let i = startY; i <= endY; i++) {
				result.push(this.data[i][startX]);
			}
		} else {
			for (let i = startY; i <= endY; i++) {
				let row = [];
				for (let j = startX; j <= endX; j++) {
					row.push(this.data[i][j] || '');
				}
				result.push(row);
			}
		}
		return result;
	}
range ( start , end ) { const [ startX , startY ] = this . __coordinates ( start ) ; const [ endX , endY ] = this . __coordinates ( end ) ; if ( startY >= this . data . length || startX >= this . data [ startY ] . length || endY >= this . data . length || endX >= this . data [ endY ] . length ) { return [ ] ; } const result = [ ] ; if ( startY === endY ) { for ( let i = startX ; i <= endX ; i ++ ) { result . push ( this . data [ startY ] [ i ] ) ; } } else if ( startX === endX ) { for ( let i = startY ; i <= endY ; i ++ ) { result . push ( this . data [ i ] [ startX ] ) ; } } else { for ( let i = startY ; i <= endY ; i ++ ) { let row = [ ] ; for ( let j = startX ; j <= endX ; j ++ ) { row . push ( this . data [ i ] [ j ] || '' ) ; } result . push ( row ) ; } } return result ; }
Read a range of coordinates.
Read a range of coordinates .