PHPに関する質問です。CSVのファイルをダウンロードさせて、きれいにエクセルにいれるようなことをしたいのですが、header などはどう書くとよいのでしょうか? すべて文字列でダウンロードするようにしたいのですが、”” をつければうまくゆくのでしょうか?勝手に日付として判断したりするのでそれを防ぎたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:jouno No.1

回答回数280ベストアンサー獲得回数0

ポイント20pt

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1434940

[教えて!goo] PHPでCSVを出力する際のセルについて

win ieは拡張子で判断するのでエクセルで開かせるのにはヘッダーは関係ないようです。

xlsにしておくと自動で開いてくれるのでは。実際にはcsvなのであれですが。

その他では、ヘッダーは、

AddType application/octet-stream xls

が同じ効果があります。


で、開いた後のことは、phpは関係ないです。エクセルのcsvの自動変換の問題です。で、どうも、きちんと型指定する方法はないようです。シングルクオーテーションにすると、文字列にはなるようですが、他の数字などの型を強制指定するのは難しそうです。


紹介されているエクセルではじめから出力する方法のURLも加えておきますが、こちらはpearがインストールできる必要があるので、敷居が高いかもしれません。

http://www.tohoho-web.com/lng/199804/98030045.htm

エクセルなどのデータをダウンロードさせるようにするには

id:KuroNeko666 No.2

回答回数144ベストアンサー獲得回数2

ポイント20pt

http://arena.nikkeibp.co.jp/tec/excel/20040309/107674/

CSVファイルの「0012」が「12」と読み込まれてしまう / デジタルARENA

Excelでは、どうしてもCSVを読み込むときに自動判別してしまいます。

CSV自体が単なるテキストファイルなので、ヘッダなどで、どうこうできるような話ではないと思います。


「全てのセルの書式を”文字列”で取り込む」ようなオプションって、あるといいですよね。

(私が知らないだけかもしれませんけれど…)


紹介したURLは、わざわざ拡張子を変えていますが、Excelのメニューから 「データ(D) 」→ 「外部データの取り込み(D)」 → 「データの取り込み(D) 」で、CSVファイルを取り込んでも、テキストファイルウィザードを起動できます。


手間が多くなりますが、全てのセルを直さなくて良くなる分、まだ良いかと思います。


で、PHP側での対処をするなら、XMLで出力するのが良いかと。

Excel自体がXMLを処理する機能を持ってますし、HTMLでの”TABLE”タグでだらだらと書かれた表でも、上記のデータ取り込み(「新しいWebクエリ」ですが)でキレイに読み込めたりします。


一応、PHPでEXCELデータを作るライブラリのURLも入れておきます。

http://hp.vector.co.jp/authors/VA014071/tips/txtwiz_1.html

Mr.Big〜小技集・Excel でテキストファイルを読み込む(1/2)〜

id:kaiketsu

XMLがよさげですね。エクセルのバージョン依存ありそうですけど

2005/07/28 00:01:06
id:kura_jet No.3

回答回数42ベストアンサー獲得回数0

ポイント20pt

エクセルで表示した際に自動的に型を判断されるのを

防ぐには、データの各項目をダブルクォーテーションで囲み、前に「=」を付けることで文字として認識され、きれいに表示されます。


例)

=”148E-00”,=”2066-01”=”2005/09/99”


データとしては、使いづらいですが・・・

id:kaiketsu

なるほどありがとうございました。

2005/07/28 00:01:42
id:ito-yu No.4

回答回数323ベストアンサー獲得回数14

ポイント20pt

http://r-troops.com/awpage/aw/jw/2.shtml

求人 学習 資格 マネー クレジットカード at r-troops.com

csvを読ませたときに、数値にしたり日付にしたり、というのはエクセルのオバカな挙動であって、phpではいかんともしがたいのでは。でも、URLのような補助ソフトを使えば、いいかも。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません