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

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

nakaji
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 mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3
Reply | Threaded
Open this post in threaded view
|

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

daikog2014
daikog2014と申します。

nakajiさん>お世話様です。
ご教示賜りました内容で解決しました。

基本的な所がわかってない為と言うことですね。

有難う御座いました。
助かりました。

##############
By daikog2014
##############

2014年6月3日 13:45 nakaji <[hidden email]>:

> 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 mailing list  [hidden email]
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3