###前提・実現したいこと
CakephpでMySQLのデータをExcelで出力しようとしています。
SQLのSELECCT文にてデータを抽出したいのですが上手くいきません。
###発生している問題
SQL文を入力しているのですが、実行されていないようです。
Excelで出力するとSELECCT文がそのまま表示されます。
###該当のソースコード
public function piyo($id = null) { //PHPExcelファイルの読み込み include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php'); include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php'); // 入出力の情報設定 $driPath = realpath(TMP) . "/excel/"; $inputPath = $driPath . "Book1.xlsx"; $sheetName = "Sheet1"; $outputFile = "piyo" . $id . ".xlsx"; $outputPath = $driPath . $outputFile; // Excalファイル作成 $reader = PHPExcel_IOFactory::createReader('Excel2007'); $book = $reader->load($inputPath); $sheet = $book->getSheetByName($sheetName); //SQL文 $piyo_sql='SELECT hogehoges.name, hogehoges.name_kana, hogehoges.postal_code, hogehoges.prefecture, hogehoges.city, hogehoges.address1, hogehoges.address2, hogehoges.tel, hogehoges.mobile_phone FROM hogehoges'; //SQL文を実行する $this->Hogehoges = TableRegistry::get('Hogehoges'); $piyo_data = $this->Hogehoges->query($piyo_sql)->toArray(); //toArrayでデータを得る // print_r($piyo_data->toArray()); // データを配置 $sheet->fromArray($piyo_data, null, 'A1'); $sheet->setTitle('piyopiyo用'); // ダウンロード header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment;filename="' . $outputFile . '"'); header('Cache-Control: max-age=0'); $book->setActiveSheetIndex(0); $writer = PHPExcel_IOFactory::createWriter($book, 'Excel2007'); $writer->save('php://output'); exit; }
###試したこと
toArrayでデータを並べると、テーブル内の全データが出力されてしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
cakephp3
phpexcelを使用しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/11 06:01