- PR -

CSV出力について

投稿者投稿内容
未記入X
大ベテラン
会議室デビュー日: 2005/05/19
投稿数: 136
投稿日時: 2005-12-02 17:05
引用:

つんさんの書き込み (2005-12-02 16:50) より:
要求されている事としては、DBから条件に合ったレコードの一覧を
CSVファイルに出力して欲しいという事です。


話の流れはEXCELでCSVファイルの表示を正しく行いたいという方向ですが、
念のためもう一つ確認を。

作成したCSVファイルをEXCELで表示・加工その他行うということは、決定事項ですか?
言い換えると、EXCELは必須ですか?

つんさんが記述なさっている要求事項では、なぜEXCELが関係するのかがわかりません。
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2005-12-02 17:14
Excelについて良く知らないので根拠は無いのですが数値を表すのに多倍長整数など
つかわず浮動小数点を使っているような気がします.
なので数値として取り扱う限り不可能のような気がします.
Excelで取り扱うことを前提とするなら文字列にしてしまえば
Excelといえども余計なお世話は出来ないと思ったのですが
つん
会議室デビュー日: 2004/04/13
投稿数: 18
投稿日時: 2005-12-02 17:20
>宣伝中止!様 未記入様
度々ご回答ありがとうございます。
未熟者の為、大変ご迷惑お掛けしております。

1つ教えて頂きたい事があるのですが、
CSVファイルをEXCELを使用して表示したら
16桁以降が0になってしまいますが(メモ帳で開いた場合は正しく表示される)、
逆に、このCSVファイルを読み込む時には正しい値「20041026164632010101」を
取得出来るという事でしょうか?
そうであれば、EXCELというのは必須ではありません。
まいるどきゃっと
大ベテラン
会議室デビュー日: 2004/08/12
投稿数: 135
お住まい・勤務地: 群馬
投稿日時: 2005-12-02 17:34
ファイルの中身がどうかということと、Excelがどう表示するかは別のことです。
開いた後にExcelで[保存]ボタンを押さない限り、ファイルは変更されることはないので大丈夫です。

他にも、頭に0がついている数値が期待通りの表示がされない(「000123」→「123」)などの問題もあるので、CSVファイルをExcelで確認するのはやらないほうがいいですね。
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2005-12-02 17:37
根拠といえるかどうか皆さんに判断していただくとして以下のような実験をしてみました

A1に999999999999999999をいれます
B1に1をいれます
C1に=A1+B1をいれます
D1に=TEXT(C1,"#00000000000000000000")をいれるとD1はどう表示されるでしょうか

もっとよい実験がありそうだけどわからない
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2005-12-02 17:56
これだとTEXTの変換がセルの表示と同じようにセルの値を完全に表示できない
可能性もあるのでテストとしては不十分ですが,さらにC1の値からA1を引くと
答えは0になります.

すなわちこの場合に数値として正確な値をExcelは保持できないことがわかります.
ですから数値として正確な値をExcelで取り扱うなら文字列として扱うより他方法は
無いといえると思います.
つん
会議室デビュー日: 2004/04/13
投稿数: 18
投稿日時: 2005-12-02 18:06
>ご回答して頂きました皆様
CSVファイルを読み込むプログラムを作成し、
先ほどCSVファイルを読み込んだ所、正しい値が表示されました。
皆様の貴重なご意見に大変感謝しております。
また機会がありましたら、宜しくお願い致します。

EXCELには気を付けます。。。

スキルアップ/キャリアアップ(JOB@IT)