みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

CSV出力時の”0”表示(電話番号等)について

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

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

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

投稿日時 - 2006-05-03 21:35:05

QNo.2129434

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

0120-1234-5678
等と最初からハイフンを含むデータ形式で無い場合、
EXCELの仕様上厳しそうに感じますね。

投稿日時 - 2006-05-04 07:57:39

お礼

ありがとうございます。

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

投稿日時 - 2006-05-05 21:00:22

ANo.4

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

投稿日時 - 2006-05-04 01:22:05

ANo.3

参考になるか分かりませんが、私も以前同じ問題に悩んだことがあります。
色々とやりましたが結局
「EXCELのCSVファイルを読み込む際の仕様なのでどうにもならない」
という結論になりました。
(数字部分は数値として自動認識してしまうため)

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

投稿日時 - 2006-05-04 00:45:48

補足

ありがとうございます。

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

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

投稿日時 - 2006-05-04 01:40:46

ANo.2

"='03xxxxyyyy'"

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

投稿日時 - 2006-05-04 00:38:54

ANo.1

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

投稿日時 - 2006-05-03 22:43:38

補足

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

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

よろしくお願いします。

投稿日時 - 2006-05-03 23:29:59

あなたにオススメの質問