16

そのため、いくつかの整数を含む fputcsv を実行したい行があります (文字列として扱う必要がありますが、それらは数値です)。これらの整数には、fputcsv を実行すると切り落とされる先行ゼロがありますが、それが発生したくありません。これを回避する方法はありますか? (文字列)としてタイプキャストして変数を引用符で囲んでみましたが、これまでに見つけた唯一の方法は、数字全体を引用符で囲むことです。これにより、csvファイルを開いたときに引用符が表示されます発生したくないExcel。これを機能させる方法を知っている人はいますか?fputcsvは、何らかの理由でこの変数に自動的に型を割り当てて、整数か何かにしているだけだと思います...

編集例のテキスト:

私がfputcsvしたもの:

02305109

Excelで開いたcsvファイルで得られるもの:

2305109

しかし、viを使用して上記のcsvファイルを開くと、先頭のゼロがまだ残っています。本当に奇妙です。

4

9 に答える 9

27

文字列として必要な長い数字でも同じ問題がありました。一重引用符で囲み、評価可能にします。

'="' . $yourNumber . '"'

于 2016-12-08T21:16:00.480 に答える
3

Excelは値を数値として解釈し、そのようにフォーマットします。これはphpとは何の関係もありません。

このSUの投稿にはいくつかの情報があります:https ://superuser.com/questions/234997/how-can-i-stop-excel-from-eating-my-delicious-csv-files-and-excreting-useless-da

于 2012-07-10T18:38:38.350 に答える
-1

数字の先頭に引用符を追加するだけです。

'123456

Excelはこのセルを数値としてフォーマットしません。

于 2013-11-11T11:17:46.623 に答える
-1

を使用して列をフォーマットします"00000000"

これには、保存時にフォーマットが保持されるという利点があります

于 2012-07-10T18:43:29.523 に答える
-2

先頭にアポストロフィ (一重引用符) を付けてみてください。先頭のゼロを保持するが Excel には表示されない IIRC。

于 2012-07-10T18:25:16.583 に答える