protected static double[][] getArray( Ptg operand ) throws Exception
	{
		int nrows;
		int ncols;
		double[][] arr = null;

		if( operand instanceof PtgRef )
		{
			int[] rc = ((PtgRef) operand).getIntLocation();
			String sheet = ((PtgRef) operand).getSheetName();
			WorkBook bk = operand.getParentRec().getWorkBook();
			nrows = rc[2] - rc[0] + 1;
			ncols = rc[3] - rc[1] + 1;
			arr = new double[nrows][ncols];
			for( int j = rc[1]; j <= rc[3]; j++ )
			{
				for( int i = rc[0]; i <= rc[2]; i++ )
				{
					String cell = ExcelTools.formatLocation( new int[]{ i, j } );
					arr[i - rc[0]][j - rc[1]] = bk.getCell( sheet, cell ).getDblVal();
				}
			}

		}
		else
		{ // should be an array
			String arrStr = operand.toString().substring( 1 );
			arrStr = arrStr.substring( 0, arrStr.length() - 1 );
			String[] rows = arrStr.split( ";" );
			arr = new double[rows.length][];
			for( int i = 0; i < rows.length; i++ )
			{
				String[] s = rows[i].split( ",", -1 );    // include empty strings
				arr[i] = new double[s.length];
				for( int j = 0; j < s.length; j++ )
				{
					arr[i][j] = new Double( s[j] );
				}
			}
		}
		return arr;
	}