私は mysql データベースからすべてのユーザーをエクスポートする必要がある PHP サイトで作業しています。すべて正常に動作していますが、エクスポートした csv ファイルを開くと、携帯電話番号と日付が適切な形式で表示されません。つまり、携帯電話番号は 16 進数で表示され、日付は ##### と表示されます。データ形式のヘルプはありますか? 前もって感謝します
3 に答える
実際にはその記号ではありません。クリックすると値が表示されます。CSVはプレビューとして表示するだけです。
あなたは CSV 形式に大きな期待を寄せています。結果のファイルをテキスト エディターで開くだけで (ファイルをダブルクリックして既定のプログラムで読み込むのではなく)、自分で確認できるため、列に分割されたプレーン テキストに他なりません。その内容の解釈は、基本的にクライアント側の表計算ソフトウェアに任されており、あなたは明らかに最も使いにくい Microsoft Excel を使用しています。
ファイルをダブルクリックしても、Excel はオプションを要求しません。すべてにデフォルトのオプションを使用しますが、それらのデフォルトのほとんどは適切に選択されていません。
ファイル エンコーディングは、コンピュータのデフォルト エンコーディングです: Win-1252、EUC-JP...
列区切りは、コンピューターのデフォルトのリスト区切りです。
,
米国で;
は、ヨーロッパの一部の国では...日付はコンピュータのデフォルトの日付形式である必要があります: 米国では MM/DD/YYYY、その他のほとんどの国では DD/MM/YYYY です。
先行ゼロは破棄されます。
ファイルを LibreOffice Calc などにロードすると、代わりにダイアログが表示され、データが適切にロードされることを確認できます (ただし、毎回手動で行う必要があります)。
要約すると、CSV の処理方法を制御できない場合、CSV はひどい形式です (ただし、生成が非常に簡単なため人気があります)。
あなたの正確な質問について:
携帯電話番号は 16 進数で表示されます
私はあなたがこれを意味していると思います:
6.00912E+15
これは 16 進数ではなく、学校で教えられた科学表記法 (6.00912 × 10 15 ) であり、通常コンピューターで表されます。これは、Excel が大きな数値を表示する方法です。はい、Excel は電話を数字として処理することを主張します (そうではありません)。セルをクリックすると、上部のバーに完全な値が表示されます。
で始まる電話番号0
(形式の国際番号など00<country code>
) は、Excel で正しく読み込まれないことに注意してください。先頭のゼロが削除され、セル形式を「テキスト」に変更しても元に戻りません。
日付は ##### として表示されます。
これは、列が狭すぎて値を表示できないことを Excel が表す方法です。列ヘッダー間の小さなセパレーターをドラッグするだけです。