- - PR -
CSV出力について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-02 17:05
話の流れはEXCELでCSVファイルの表示を正しく行いたいという方向ですが、 念のためもう一つ確認を。 作成したCSVファイルをEXCELで表示・加工その他行うということは、決定事項ですか? 言い換えると、EXCELは必須ですか? つんさんが記述なさっている要求事項では、なぜEXCELが関係するのかがわかりません。 | ||||
|
投稿日時: 2005-12-02 17:14
Excelについて良く知らないので根拠は無いのですが数値を表すのに多倍長整数など
つかわず浮動小数点を使っているような気がします. なので数値として取り扱う限り不可能のような気がします. Excelで取り扱うことを前提とするなら文字列にしてしまえば Excelといえども余計なお世話は出来ないと思ったのですが | ||||
|
投稿日時: 2005-12-02 17:20
>宣伝中止!様 未記入様
度々ご回答ありがとうございます。 未熟者の為、大変ご迷惑お掛けしております。 1つ教えて頂きたい事があるのですが、 CSVファイルをEXCELを使用して表示したら 16桁以降が0になってしまいますが(メモ帳で開いた場合は正しく表示される)、 逆に、このCSVファイルを読み込む時には正しい値「20041026164632010101」を 取得出来るという事でしょうか? そうであれば、EXCELというのは必須ではありません。 | ||||
|
投稿日時: 2005-12-02 17:34
ファイルの中身がどうかということと、Excelがどう表示するかは別のことです。
開いた後にExcelで[保存]ボタンを押さない限り、ファイルは変更されることはないので大丈夫です。 他にも、頭に0がついている数値が期待通りの表示がされない(「000123」→「123」)などの問題もあるので、CSVファイルをExcelで確認するのはやらないほうがいいですね。 | ||||
|
投稿日時: 2005-12-02 17:37
根拠といえるかどうか皆さんに判断していただくとして以下のような実験をしてみました
A1に999999999999999999をいれます B1に1をいれます C1に=A1+B1をいれます D1に=TEXT(C1,"#00000000000000000000")をいれるとD1はどう表示されるでしょうか もっとよい実験がありそうだけどわからない | ||||
|
投稿日時: 2005-12-02 17:56
これだとTEXTの変換がセルの表示と同じようにセルの値を完全に表示できない
可能性もあるのでテストとしては不十分ですが,さらにC1の値からA1を引くと 答えは0になります. すなわちこの場合に数値として正確な値をExcelは保持できないことがわかります. ですから数値として正確な値をExcelで取り扱うなら文字列として扱うより他方法は 無いといえると思います. | ||||
|
投稿日時: 2005-12-02 18:06
>ご回答して頂きました皆様
CSVファイルを読み込むプログラムを作成し、 先ほどCSVファイルを読み込んだ所、正しい値が表示されました。 皆様の貴重なご意見に大変感謝しております。 また機会がありましたら、宜しくお願い致します。 EXCELには気を付けます。。。 |