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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/27 21:24:29
  • 終了:--

回答(4件)

id:jouno No.1

jouno回答回数280ベストアンサー獲得回数02005/07/27 22:23:25

ポイント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ベストアンサー獲得回数22005/07/27 22:33:35

ポイント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

kura_jet回答回数42ベストアンサー獲得回数02005/07/27 22:47:48

ポイント20pt

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

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


例)

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


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

id:kaiketsu

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

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

ito-yu回答回数323ベストアンサー獲得回数142005/07/27 23:06:03

ポイント20pt

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

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

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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません