プロが教える店舗&オフィスのセキュリティ対策術

PHPとSQLiteを利用した、簡単な家計簿を作成しています。勉強も兼ねて作成したもので、個人での使用を想定しています。複数の人が使用することは考えていません。

ブラウザからデータベースへの登録・読出を行います。(この部分は完成しています。)
せっかくなのでこの家計簿(給与明細と言った方が近いですが)をファイルの形でダウンロードさせたいと考えています。PHPExcelというライブラリが有名という事で、利用することにしています。
Excel形式での書出しは、たくさんのサンプルがWEB上にあるのでそれほど難しくなかったのですが、これではサーバ上にファイルが出来るだけです。

PHPExcelで生成されたファイルをダウンロードさせたいのですが、どのように処理させたら良いでしょうか?アドバイスお願いします。

A 回答 (2件)

書出しの前にheader関数でMIMEタイプを指定してみてください



header("Content-type: application/vnd.ms-excel"); // MIMEタイプ指定
header("Content-disposition: attachment;filename=example.xls"); // ファイル名指定



なお、ExcelのMIMEタイプは他にもいくつかあるようです
うまくいかなかったら他のものを試してみてください

application/excel
application/msexcel
application/x-excel
application/x-msexcel
application/vnd.ms-excel
    • good
    • 0
この回答へのお礼

無事上手くいきました。ありがとうございます。

どちらの方にもベストアンサーを差し上げたいのですが、さすがにそれは出来ないので、先に回答を下さった方に差し上げることにしました。

本当にありがとうございました!

お礼日時:2011/07/18 00:56

3行書くだけです。


header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=kakeibo.xls");
readfile("kakeibo.xls"); //ここは実際のファイルパスを書く

尚、2行目のfilenameはブラウザのポップアップに
表示される名前で、漢字名を使う時はエンコード
しないと字化けします。
もし、ダウンロードしたファイルが使えない場合は
ZIP圧縮してからダウンロードすれば大丈夫かと
思います。その場合のmimeタイプはzipです。
header("Content-Type: application/zip");
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!