dポイントプレゼントキャンペーン実施中!

PHPでDBのカラムから配列で取得したデータをcsv出力しダウンロードさせるプログラムを作成しています。

csv形式でのダウンロードは完了していますが、電話番号などの頭に’0’が入る文字列は’0’が消えてしまいます。(例:03→3)
ダウンロードしたcsvをエディタで開くと’0’は表示されます。

この場合、どのような制御をPHP側ですればいいいでしょうか。
よろしくお願いします。

A 回答 (5件)

0120-1234-5678


等と最初からハイフンを含むデータ形式で無い場合、
EXCELの仕様上厳しそうに感じますね。
    • good
    • 1
この回答へのお礼

ありがとうございます。

そんな逃げ道がありましたか。
今後の課題とはなりますが、今回厳密な仕様にしていないのでそれを使わせていただ
きます!

お礼日時:2006/05/05 21:00

#1です。


皆様が言われているExcelの仕様というのが、正直な回答です。
エディタでも03と表示したいのならば、Excelを使わないこと
です。
    • good
    • 0

参考になるか分かりませんが、私も以前同じ問題に悩んだことがあります。


色々とやりましたが結局
「EXCELのCSVファイルを読み込む際の仕様なのでどうにもならない」
という結論になりました。
(数字部分は数値として自動認識してしまうため)

代替手段としては、拡張子をcsvからtxtなどに変更し
EXCEL起動>ファイル>開く>ファイルの種類=テキストファイル
で開くとテキストファイルウィザードが起動しますので
「カンマ区切」「列のデータ形式=文字列」を指定して開くという方法を取ってもらいました。

この回答への補足

ありがとうございます。

Excelの仕様とゆう点も知っていますが、他に方法があると聞いたことがあるので開発に携わっている方ならご存知かと思うのですがやはり難しいようですね。

他に方法がないのであれば諦めます。

補足日時:2006/05/04 01:40
    • good
    • 0

"='03xxxxyyyy'"



これはPHPではなくエクセルの問題です。
ここまでしてエクセルでCSVを直接読みこみすべき
ではないと思いますが・・・。
エクセルの仕様をよく検証なさってみてください。
    • good
    • 0

出力したCSVファイルをどのような目的で使われるのですか?


ただ単純に、Excelで開いて見るのでしたら、「'03」と
いうように「'」を前に付けてみてください。文字列として判断
されるはずです。
ただ、この場合、テキストエディタでは、「'03」となっている
ため、2次加工するには、注意が必要です。

この回答への補足

csvを開いた時に”03”と表示をさせたいです。

’を付与しての方法は知っているのですが、
csv出力用にデータをセットする祭に、
$phone = "'".$phone
としても直接 ’03 と表示されてしまいます。

よろしくお願いします。

補足日時:2006/05/03 23:29
    • good
    • 0

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