4

2013 年 2 月 18 日 03:53:48 PM という形式にするために PHP を使用して変更した DateTime 列を持つ CSV ファイルがあります。

しかし、このファイルを Excel で開くと、すべての形式がこの形式に変更されます。2013 年 2 月 18 日 15:53

これは私が見たり対処したりする問題ではありませんが、エンドユーザーが Excel で 24 時間形式で時間を表示する必要がないようにしたいと考えています。csv を開いた後に Excel で形式を変更せず、エンド ユーザーがこの DateTime 列を問題なく並べ替えることができるようにするにはどうすればよいですか。ファイルを開いたときにセルをフォーマットすることで日付のフォーマットを変更できることは承知していますが、エンドユーザーがこの手順を実行する必要さえありません。

また、セルを選択すると、数式バーに DateTime 列が必要な形式で表示され、困惑することも指摘したいと思います。

4

3 に答える 3

5

CSV ファイルには形式がなく、データが含まれているだけです。

MS Excel はそのデータを調べて、適切な形式を設定しようとします。たとえば、数値を右揃えにします。人間が読める日付/時刻値を含む文字列を認識し、それを独自の内部タイムスタンプ値 (浮動小数点数として表される) に変換し、適切な日付/時刻マスクをそのセルに適用して、日付または時刻ですが、必ずしも CSV ファイルにあった文字列表現を使用するとは限りません。

解決策 1、書式設定された日付文字列の前に = 記号を付け、引用符で囲み、文字列として扱われるようにします。

解決策 2、セルの書式設定を制御できる実際の Excel ファイルを作成します。

于 2013-04-30T12:39:45.167 に答える
1

最終的な Excel ファイルの形式を制御したい場合は、データをその形式に出力し、それに応じて PHP Excel ライブラリを使用して変更する必要があります。どのライブラリを使用するかがわからないため、これを行う方法を正確に説明することはできません。

http://phpexcel.codeplex.com/を使用してある程度成功しました

CSV を出力しただけの場合、Excel は書式設定のユーザーの既定の設定でそれを開きますが、これは必要なものとは異なる場合があります。

于 2013-04-30T12:38:17.040 に答える
0

時間が表示される方法は、Windows または (ユーザーが別の設定をしている場合) Office の設定です。開いたときに Excel アプリケーションによってフォーマットされていない日付/時刻のように見えるものが必要な場合は、最初から日付/時刻にしないでください。

Excel では、一重引用符で囲まれたものはすべてテキストとして認識されるため、日付/時刻の値を次のように保存できます。"'02/18/2013 03:53:48 PM"

于 2013-04-30T12:49:26.813 に答える