code: public function render($action = null, $layout = null) {
  		$this->viewPath .= DS . 'Spreadsheet';
  
  		$content = parent::render($action, false);
  		if ($this->response->type() == 'text/html') {
  			return $content;
  		}
  
  		ob_start();
  		$writer = IOFactory::createWriter($this->Spreadsheet, CAKE_SPREADSHEET_PHPSPREADSHEET_WRITER);
  		$writer->setPreCalculateFormulas(false);
  		$writer->save('php://output');
  		$content = ob_get_clean();
  
  		$this->Blocks->set('content', $content);
  		$fileName = $this->getFileName();
  		$fileName .= '.' . CAKE_SPREADSHEET_FILE_EXTENSION;
  		$this->response->download($fileName);
  
  		return $this->Blocks->get('content');
  	}
docs: Renders view for given view file and layout.
  
  @param string $action Name of view file to use
  @param string $layout Layout to use.
  @return string|null Rendered content or null if content already rendered and returned earlier.
  @triggers View.beforeRender $this, array($viewFileName)
  @triggers View.afterRender $this, array($viewFileName)
  @throws CakeException If there is an error in the view.