質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3397閲覧

PHPExcelでHTMLファイルを読み込む方法

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2015/07/06 06:05

編集2015/07/06 06:52

PHPExcelについての質問です。

HTMLからExcel2007形式のファイルを作ろうとしているんですが、
出力が空のExcelファイルになってしまいます。
下のような処理でファイルを出力しています。

lang

1 $tempfilename = time().".html"; 2 file_put_contents($tempfilename, $html);//←テンプレートエンジンから吐き出したHTMLソース 3 4 $reader = PHPExcel_IOFactory::createReader("HTML"); 5 $content = $reader->load($tempfilename); 6 7 Header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); 8 Header("Content-Disposition: attachment; filename=tesxt.xlsx"); 9 Header('Cache-Control: public'); 10 Header('Pragma: public'); 11 12 $writer = PHPExcel_IOFactory::createWriter($content, 'Excel2007'); 13 $writer->save('php://output'); 14 15 exit; 16

やりたいこととしては、
1.SmartyテンプレートからHTML吐き出す

2.吐き出したHTMLをPHPExceオブジェクトにする

3.PHPExcelオブジェクトをExcelファイルとして吐き出す

なんですが
処理を追ってみたところ
HTMLからPHPオブジェクトを作るところ(2のところ)で失敗しているようです。
(エラーにはなっておらず、load()のところで空のExcelファイルが生成されてるようです)
何が原因かわからない(使い方もふくめてわかってません)ので、
ご教示願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

もしかして、こちらを行おうとしてますか?
http://stackoverflow.com/questions/25912440/convert-html-file-to-excel-using-phpexcel

投稿2015/07/06 07:40

takayukiinaba

総合スコア1158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/07/06 08:01

おそらくその質問のほうのやつです。 回答の手順は、HTMLを.xlsで保存するため、 開くときに警告メッセージが出てしまうので別の手段が必要、というところです。
takayukiinaba

2015/07/06 08:31

警告というのは、Excel側で表示されるのでしょうか?
退会済みユーザー

退会済みユーザー

2015/07/06 08:54

そうです。 Excelファイルを開いたときに、 「~ファイル形式またはファイル拡張子が正しくありません。ファイルが破損しておらず、ファイル拡張子とファイル形式が一致していることを確認してください。」 といった感じのメッセージがでます。
takayukiinaba

2015/07/06 09:12

PHPExcelから出力されるExcelファイルが、MSExcelの仕様を満たしていない可能性がありますね。 あくまもで、MSExcelは色々な成約があるのでフリーのライブラリからは難しいかもしれません。 私の知人に聞いた話ですが、MSExcelを出力するために専用のWinサーバを構築してC#などでMSExcelを出力しているみたいです。
退会済みユーザー

退会済みユーザー

2015/07/06 09:36

どうやら解決しました・・・ PHPのバージョンとPHPExcelのバージョンがあっていない ↓ dom.php(PHPのコアファイル?)の引数の数が違う ↓ HTMLをパース出来ない ↓ HTMLのReaderがNULLを返す ↓ かまわず空のExcelオブジェクトを返す ↓ : という流れで、質問の 「空のExcelファイルが生成されてるようです」みたいな現象が起こってたようです。 お付き合いいただきありがとうございました。
takayukiinaba

2015/07/06 09:40

なるほど、バージョン依存があるんですね_φ(・_・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問