- PR -

POIの書式設定で表示形式を数値に設定したいのですが・・

1
投稿者投稿内容
いのたか
会議室デビュー日: 2005/02/06
投稿数: 2
投稿日時: 2005-02-06 22:23
はじめまして、いのたかといいます。

現在、POI(バージョン2.5.1)を使用して
以下のようにエクセルにデータを書き込んできます。

A列 B列
男  45.1
女  54.9

現在は以下のようなコードでB列に書式を設定しています。
String value = "45.1";

myStyle = wb.createCellStyle();
myStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));

cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(value);
cell.setCellStyle(myStyle);

書き込みされたエクセルを開きエクセルの書式設定の表示形式を
見ると、分類が「ユーザ定義」で、種類が「0.00」になります。

これを
分類が「数値」で、小数点以下の桁数が「1」になるように
したいのですが、可能でしょうか?
ピンクの恐竜
常連さん
会議室デビュー日: 2005/02/01
投稿数: 42
投稿日時: 2005-02-07 00:02
半分だけ回答させていただきます。

コード:

myStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));



コード:

HSSFDataFormat format = wb.createDataFormat();
myStyle.setDataFormat(format.getFormat("0.0"));


にすれば、少数点1桁になります。

ただおっしゃるとおり、分類は「ユーザ定義」ですけど。

どのような目的で数値にしたいのでしょうか?

「ユーザー定義」の少数点1桁であっても、
sumなどのエクセル関数は使えることを確認しました。


[ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2005-02-07 00:02 ]
いのたか
会議室デビュー日: 2005/02/06
投稿数: 2
投稿日時: 2005-02-07 15:35
ピンクの恐竜さん
返答ありがとうございます。

>どのような目的で数値にしたいのでしょうか?
書き出した値をエクセルのグラフの元データとしてグラフを作成しようと
思っています。
POIで書き出しデータをそのままデータ範囲としてグラフを作成しても
うまく表示できないのですが、
POIで書き出したデータのB列(数値が入っている列)をキーボードから
手入力してからグラフを作成するとうまくグラフが表示されます。

エクセルの表示形式は関係なかったようです。
POIで書き出した値とキーボードから手入力した値って違うんですかね?

面倒ですが、エクセルのマクロでB列の値を再セットしてから
グラフを作成するようにしようと思います。






[ メッセージ編集済み 編集者: いのたか 編集日時 2005-02-07 15:36 ]
ピンクの恐竜
常連さん
会議室デビュー日: 2005/02/01
投稿数: 42
投稿日時: 2005-02-07 20:49
私の環境ではPOIで出力した数値を元データとして
グラフの作成が行えましたよ。

コード:

String value = "45.1";



コード:

double value = 45.1;



としてみてください。

いのたかさんのソースですと
valueの値がStringになってますので、
出力形式も文字列としてExcelに出力されてしまいます。

ただし今回の修正を行ったとしても
分類は「ユーザ定義」になります。

ただ、いのたかさんがやりたいことは実現できると思います。

あとグラフを作成したいのであればjFreeChartなるライブラリもあります。
よろしければ参考までに。

[ メッセージ編集済み 編集者: ピンクの恐竜 編集日時 2005-02-08 09:12 ]
1

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