[PHP-users 35805] Re: PHPExcelで「File形式またはファイル拡張子が正しくありません・・・」

nakaji ideabox_hot @ hotmail.com
2014年 6月 3日 (火) 13:45:46 JST


nakajiともうします

> どこがいけないのでしょうか。
>
> 色々探してますが、ヒントが見つかりません。
> 御教示下さいます様お願い申し上げます。
>

たぶん、出力されたファイルの中にはエラーが出てるんじゃないかと思うので、
メモ帳などで見てみるといいと思います。

> <?php
> require_once 'PHPExcel.php';
> require_once 'PHPExcel/IOFactory.php';
>
> // エラー出力する場合1 しない場合0
> ini_set( 'display_errors', 1 );
>
> //ブラウザへ出力をリダイレクト
> header('Content-Type:
> application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
> header('Content-Disposition: attachment;filename="myfile.xlsx"');
> header('Cache-Control: max-age=0');

headerはなんとなく一番最初に宣言したい気がするので、<?phpの後に置きたい
気分です。その後でrequireすると気分が良いです。

>
> //テンプレートの読み込み
> $objReader = PHPExcel_IOFactory::createReader("Excel2007");
> $xl = $objReader->load("TempSheet1.xlsx");

ここはシンプルに
 $xl = PHPExcel_IOFactory::load("./TempSheet1.xlsx");
で良いんじゃないかと思います。

> //A10に書き込み
> $objSheet->setCellValue('A10', '444');

問題はここで、$objSheetというオブジェクトが突然出てきているのでエラーを
吐いているんだと思います。$xlのアクティブなシートをgetしてやればいいので
$objSheet = $xl->getActiveSheet();
を直前に入れてやればいいのでは。

>
> //Excel2007形式で保存
> $writer = PHPExcel_IOFactory::createWriter($xl, 'Excel2007');
> $writer->save('php://output');
> exit;
> ?>
> ******** PHPソース ***********



PHP-users メーリングリストの案内