http://phpexcel.codeplex.com/ ---> からダウンロード(1.8.0)2015年11月23日現在

■ダウンロードしたファイルを解凍し、Classesフォルダをphpexcelにリネーム。
そして、phpexcelフォルダをapp/Vendor/以下に設置

■テンプレートファイルの準備と配置場所
app/tmp/以下に、phpexcelフォルダを作成し
その中に2007形式の空の【template.xlsx】配置する。

■Controllerの設定
app/Controller/Users.php

public function excel() {
    $this->layout = '';
    $data = $this->User->findById(15);
    $this->set('data', $data);
}

■View/Users/excel.ctp

<?php
App::import('Vendor', 'PHPExcel_Writer_IWriter', array('file' => 'phpexcel/PHPExcel/Writer/IWriter.php'));
App::import('Vendor', 'PHPExcel_Writer_Abstract', array('file' => 'phpexcel/PHPExcel/Writer/Abstract.php'));
App::import('Vendor', 'PHPExcel_Writer_Excel2007', array('file' => 'phpexcel/PHPExcel/Writer/Excel2007.php'));
App::import('Vendor', 'PHPExcel_Reader_Excel2007', array('file' => 'phpexcel/PHPExcel/Reader/Excel2007.php'));

$objReader = PHPExcel_IOFactory::createReader("Excel2007");

$template = TMP . 'phpexcel/';
$template_path = $template . 'template.xlsx';
$PHPExcel = $objReader->load($template_path);

$PHPExcel->setActiveSheetIndex(0);
$sheet = $PHPExcel->getActiveSheet();

$sheet->fromArray($data, null, 'A1');

$filename = 'output.xlsx';
$filename = mb_convert_encoding($filename, 'sjis', 'utf-8');

header('Content-Disposition: attachment;filename="' . $filename . '"');
$objWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
$objWriter->save('php://output');

このようにすると、IDが15番のユーザーレコード情報が1行だけが
Excelファイルとして出力されます。

MySQLのデータをすべて一覧で表示したいのでControllerで、

$data = $this->User->find('all');

とすると無効な拡張子のファイルとエラーになります。

View側で<php debug($data); ?>とすると配列できちんと一覧を取得しています。

$sheet->fromArray($data, null, 'A1'); の書き方が何か
違っているように思えます。

どなたか、ご存知の方、ご教授願えませんでしょうか。
よろしくお願いします。