- PR -

CSV形式ファイルのフォーマットに関して

投稿者投稿内容
よっち
会議室デビュー日: 2003/11/10
投稿数: 15
投稿日時: 2003-11-27 15:26
現在、CSV形式ダウンロード機能を作成しているのですが、上手くいかない点があり
アドバイスを頂きたいと思っています。ダウンロードをしてデータを落としてくるのです
が、例えば数字の場合11111はセルの右寄りに出力されるのですが、ここに他の文字
例えばMなどが入り65M1235などのデータですとセルの左寄りになってしまします。
これを一律セルの右寄りに統一させる方法などはあるのでしょうか。もし、そうした方法
があるのでしたらご教授お願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-11-27 15:38
右より、左よりってのは Excel などのスプレッドシートソフトで表示した場合の話ですよね?
CSV は名前のとおりデータしか表現できない形式なので表示方法を指定することはできません。Jakarta-POI などでフォーマットを整えて XLS 形式でダウンロードさせればなんとかなるとおもいますが。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-11-27 15:43
CSVにセルなんてあったか?CSVの右寄せ?なんじゃそりゃ。

というのは冗談で、表示はHTMLに変換して行っているのでしょうか。swt/swingに入力して行っているのでしょうか?

前者であれば、スタイルシート書けばできそうな気がする。

たぶん、要望は、後者の場合においてJTableで出力したいと考えているのでしょう。
デフォルトでは、JTableのレンダラは数字(Integer. Longなど)は右寄せ、Objectであれば、toString()で文字列に変換して左寄せで表示します。文字列も右寄せにしたければ、そのように行うTableCellRendererを用意し、JTableに登録してやればきっとできるでしょう。

やりたいことが抽象過ぎて分からないので、もう少し整理してから再投稿してください。
あと、開発環境もね
VIM
ベテラン
会議室デビュー日: 2003/11/14
投稿数: 76
投稿日時: 2003-11-27 15:44
場合によっては、SYLK形式にするという手もあると思います。
アティ
ベテラン
会議室デビュー日: 2003/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2003-11-27 15:51
CSV(Comma Separated Value)ファイルに右寄せも左寄せもありませんよ。
Excelで開くからそう表示されるだけです。
メモ帳で開きましょ〜
下記が一応フォーマット仕様書(?)です。
http://www.wotsit.org/download.asp?f=csv

_________________
_/_/_/
_/うちの会社の変なところ〜
_/1条.毎年300人新卒採用
_/2条.大事な事項(就業規則等)の変更発表は、施行前日
_/(以下略)
よっち
会議室デビュー日: 2003/11/10
投稿数: 15
投稿日時: 2003-11-27 18:42
アドバイスをくださったみなさん、ありがとうございます。かずさんが言われています
ようにかなり話を省いてしまいましたのでもう少し詳しく書かせていただこうと思います
。まず、現在実装している機能は先程も書いたのですがデータのダウンロード機能です。
このダウンロードしてきたデータをユーザーさんが色々と編集するといったイメージです
。ここで、ダウンロードしてきたデータを出来ればエクセルで開き、それを編集して
いきたいのですがこの時に単なる数字データはこういった感じで出力されるのですが、[ *****]、ここで他の場合[A**** ]と表示されます。同じ列であるのに少し見ずらいと
感じました。
単に見栄えの問題なのですが、これを一律右より表示にしたいと考えています。
色々とアドバイスを頂いたのですがどれもはっきりいってわかりません。(すいません)
例えば、かずくんさんが書かれているJTableというものを色々と調べてみたのですが
いまいち理解できません。アティさんが書かれているサイトは何を見ればよいのかさっぱりの状態です。現在、こんな感じです。教えてもらっているのに、書くのも失礼ですが
、もう少し具体的に書いていただけると助かります。以上、宜しくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-11-27 18:53
説明が不足していてすいません。私が上げた POI というのは Jakarta のプロダクトの一種で、MS-Office 製品のファイル操作を行うものです。書式を含む *.xls のファイルを生成することも可能です。
http://jakarta.apache.org/poi/

一から POI を勉強するのが面倒ならば、大変シンプルな方法として、目的の書式をもったシートを Excel で作成し、[ファイル
-[Webページとして保存] としてみましょう。
同等の内容を JSP で出力すれば書式情報をもった Excel のファイルを生成できます。
<%@page contentType="application/vnd.ms-excel"%> とすればたぶん Excel で開いてくれます。
MM
会議室デビュー日: 2003/06/07
投稿数: 9
投稿日時: 2003-11-27 19:44
CSVは、各列の値をカンマで区切り、各行を改行で区切った単なるテキストデータです。
このため、右寄せ、左寄せなど指示することはできません。
右とか左に表示されているのは、すべて Excel の仕業です。
つまり Excel が CSV の各値を読み込んだ際に、その値が数値であると判断できれば「数値」のデフォルト
表示形式に従って右詰め表示し、そうでない場合は文字列のデフォルト表示形式に従って左詰め表示している
だけです。
Excel の読み込み形式を変更しようとすると、その方法は Java Solution 会議室での話題じゃなくなって
しまいますねぇ。 ^_^
ただ、インギさんの指摘のように、POI を使って .XLS 形式でファイルを保存するか、数値出力時にその数値を
引用符で囲んでやれば、文字列と解釈されて「すべて左詰め」で表示させることができると思います。

[ メッセージ編集済み 編集者: MM 編集日時 2003-11-27 19:48 ]

[ メッセージ編集済み 編集者: MM 編集日時 2003-11-27 19:52 ]

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