public function mergeCells($startRow, $startColumn, $totalRows, $totalColumns)
    {
        if ($startRow == '')
            throw new Exception('Start Row not specified');
        
        if ($startColumn == '')
            throw new Exception('Start Column not specified');
        
        if ($totalRows == '')
            throw new Exception('Total Rows not specified');
        
        if ($totalColumns == '')
            throw new Exception('Total Columns not specified');
        
        //Build URI
        $strURI = Product::$baseProductUri . '/cells/' . $this->getFileName() . '/worksheets/' . $this->worksheetName . 
                  '/cells/merge?startrow=' . $startRow . '&startcolumn=' . $startColumn .
                  '&totalrows=' . $totalRows . '&totalcolumns=' . $totalColumns;
        //Sign URI
        $signedURI = Utils::sign($strURI);
        
        //Send request and receive response
        $response = Utils::processCommand($signedURI, 'POST', '', '');
        $json = json_decode($response);
        if ($json->Code == 200) {
            $strURI = Product::$baseProductUri . '/storage/file/' . $this->getFileName();
            $signedURI = Utils::Sign($strURI);
            $responseStream = Utils::processCommand($signedURI, "GET", "", "");

            $outputPath = AsposeApp::$outPutLocation . $this->getFileName();
            Utils::saveFile($responseStream, $outputPath);
            return $outputPath;
        }    
        else
            return false;
    }