- PR -

CSV出力について

投稿者投稿内容
つん
会議室デビュー日: 2004/04/13
投稿数: 18
投稿日時: 2005-12-02 15:31
CSV出力について

お世話になっております。
現在、CSVファイルを出力するプログラムを作成しているのですが、
CSVファイルを出力する事は出来たのですが、出力された値が変わってしまいます。
ちなみにTXTファイルに出力した場合は正しく出力されているのですが。
これはjava側の問題なのでしょうか?それともEXCELの問題でしょうか?

コードを下記します。
何か他に良い方法がありましたら、ご教授ください。
宜しくお願い致します。

コード--------------------------------------------------------------
import java.io.*;

class OutputFile {
public static void main( String args[] ) {
try {
String str1 = "NUMBER,TITLE";
String str2 = "20041026164632010101,test";

PrintWriter pw = new PrintWriter( new BufferedWriter( new FileWriter( "output.csv" ) ) );

pw.println( str1 );
pw.println( str2 );
System.out.println( "ファイルに書き込みました。" );

pw.close();
} catch( IOException exp ) {
System.out.println( "入出力エラーです。" );
}
}
}

結果(output.csv)----------------------------------------------------
NUMBER TITLE
20041026164632000000 test

明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2005-12-02 15:39
excelの問題だと思います

メモ帳で開いてみて下さい
つん
会議室デビュー日: 2004/04/13
投稿数: 18
投稿日時: 2005-12-02 15:59
>明智重蔵様
ご回答ありがとうございます。
メモ帳では正しく出力されます。
しかし、CSVファイルに出力する事を要求されています。
他にCSVファイル出力方法のサンプル等をご存知でしたら
ご教授願いたいのですが。
宜しくお願い致します。
宣伝中止!
大ベテラン
会議室デビュー日: 2005/08/30
投稿数: 155
お住まい・勤務地: 東京に作業場所変更・・・
投稿日時: 2005-12-02 16:13
引用:

つんさんの書き込み (2005-12-02 15:59) より:
>明智重蔵様
ご回答ありがとうございます。
メモ帳では正しく出力されます。
しかし、CSVファイルに出力する事を要求されています。
他にCSVファイル出力方法のサンプル等をご存知でしたら
ご教授願いたいのですが。
宜しくお願い致します。



EXCELの仕様かも。
他のユーザーでも困ってたみたいですね。

http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200504/05040016.txt

とりあえず、ファイルの拡張子をxlsにしたら大丈夫でしたよ。

#15桁制限なんてあったのか・・・

要求されているのは、
1)拡張子がCSV
2)項目は「,」で区切ること
ですか?
未記入X
大ベテラン
会議室デビュー日: 2005/05/19
投稿数: 136
投稿日時: 2005-12-02 16:21
こんにちは。
引用:

つんさんの書き込み (2005-12-02 15:59) より:
メモ帳では正しく出力されます。


つまり、CSV形式でTXTファイルに出力ができているわけですね。なのに
引用:

しかし、CSVファイルに出力する事を要求されています。


と仰る意図がいまいち特定できませんが…
excelでCSVファイルを開く際に起こる
「CSVファイルが自分の意図した通りにexcel上で表示されない」現象を
解決すればいいのでしょうか?

それとも、ただ単にできたCSVをダブルクリックしたらEXCELが起動して、
そこでの表示がおかしいので混乱しているだけでしょうか?
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2005-12-02 16:30
NUMBERのフィールドを文字列にする("で囲む)
というのは仕様的に許されないのでしょうか
Excelで取り扱う場合のCSVはExcel独自の形式で一般的なCSVでは無い
といったほうが良いと思いますが
つん
会議室デビュー日: 2004/04/13
投稿数: 18
投稿日時: 2005-12-02 16:50
>宣伝中止!様 未記入様 Jun様
ご回答ありがとうございます。

>要求されているのは、
>1)拡張子がCSV
>2)項目は「,」で区切ることですか?

要求されている事としては、DBから条件に合ったレコードの一覧を
CSVファイルに出力して欲しいという事です。
コード上値を「,」で区切っているのは、CSVファイルにセルごとに値が出力されるので
この様な記述をしております。

>excelでCSVファイルを開く際に起こる
>「CSVファイルが自分の意図した通りにexcel上で表示されない」現象を
>解決すればいいのでしょうか?
>それとも、ただ単にできたCSVをダブルクリックしたらEXCELが起動して、
>そこでの表示がおかしいので混乱しているだけでしょうか?

前者です。
メモ帳に正しく出力されているというのは、記述したコードの
ファイル名を「output.txt」に変更しただけです。
CSV形式でTXTファイルに出力出来ているかと言うと、微妙なところです。

>NUMBERのフィールドを文字列にする("で囲む)
>というのは仕様的に許されないのでしょうか

折角ご回答して頂いて申し訳ありませんが、
仕様的に厳しい状況です。
宣伝中止!
大ベテラン
会議室デビュー日: 2005/08/30
投稿数: 155
お住まい・勤務地: 東京に作業場所変更・・・
投稿日時: 2005-12-02 17:02
引用:

つんさんの書き込み (2005-12-02 16:50) より:
>宣伝中止!様 未記入様 Jun様
ご回答ありがとうございます。

>要求されているのは、
>1)拡張子がCSV
>2)項目は「,」で区切ることですか?

要求されている事としては、DBから条件に合ったレコードの一覧を
CSVファイルに出力して欲しいという事です。
コード上値を「,」で区切っているのは、CSVファイルにセルごとに値が出力されるので
この様な記述をしております。

>excelでCSVファイルを開く際に起こる
>「CSVファイルが自分の意図した通りにexcel上で表示されない」現象を
>解決すればいいのでしょうか?
>それとも、ただ単にできたCSVをダブルクリックしたらEXCELが起動して、
>そこでの表示がおかしいので混乱しているだけでしょうか?

前者です。
メモ帳に正しく出力されているというのは、記述したコードの
ファイル名を「output.txt」に変更しただけです。
CSV形式でTXTファイルに出力出来ているかと言うと、微妙なところです。

>NUMBERのフィールドを文字列にする("で囲む)
>というのは仕様的に許されないのでしょうか

折角ご回答して頂いて申し訳ありませんが、
仕様的に厳しい状況です。





CSV形式って、確か、項目を「,」で区切るので、内容的にあっていると思いますが。


あとは、Excelで表示するときに16桁目以降が0になるから困ってるんですよね?
データの内容確認でExcelを使うといっていますか?
内容の確認だけなら、Excelのデータの取り込みを利用するという方法しか、私には思いつかないですが・・・

_________________
#「やらない」と「出来ない」を混同してはならない

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