@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C#から値をExcelに吐き出したとき、小数点以下の桁数を操作したい

1
投稿者投稿内容
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2006-06-03 14:29
はなともうします。
質問させていただきます。

C#より値をExcelに出力したいと思っています。
そのとき、小数点以下の数値を操作したいと思っています。

たとえば、最初から「1.2」といった形のものは、小数点以下第一位まで表示可能ですが、「100」というものは、小数点以下第一位を表示することが出来ません。

どのようにして、C#より出力するときに「100.0」と表示することが可能になりますでしょうか?

初心者で質問内容をキチンと書けているか不安ですので、もし、足らない情報などありましたら、教えてくださると大変助かります。

よろしくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-06-03 14:38
NAL-6295です。

Excel側で数値として扱いたいのであれば、
そのセルを参照しているRangeのNumberFormatLocalにフォーマットを定義すれば可能です。

もし、そうでないのなら、
ToStringで加工した値をExcelが文字列として認識できるようにセットしてあげれば良いでしょう。

_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-03 15:17
引用:

はなさんの書き込み (2006-06-03 14:29) より:

たとえば、最初から「1.2」といった形のものは、小数点以下第一位まで表示可能ですが、「100」というものは、小数点以下第一位を表示することが出来ません。

どのようにして、C#より出力するときに「100.0」と表示することが可能になりますでしょうか?


既に NAL-6295さんがご回答されていますが、値として渡すという考え方ではなくて、同じ100という値を、どのように表現方法を変えるのか?と考えればわかりやすいです。
見た目だけで良いのなら、文字列として "100.0" と出力しちゃえば良いのです。
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2006-06-03 16:59
>NAL-6295さん

お返事ありがとうございます。
今、Rangeの使い方を探しています。
この段階からなので、もう少々時間はかかりそうです。。。

>R・田中一郎さん
お返事ありがとうございます。
そうですね。
表現方法を変える、というほうが正しい考え方ですね!

私も文字列で出力する、という方法を考えたのですが、出力した後にマクロで計算をしなくてはいけないので、文字列だと駄目だったのです。。。
見た目だけだったら良かったのに、残念です。
アイデアをありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-03 17:16
引用:

はなさんの書き込み (2006-06-03 16:59) より:

今、Rangeの使い方を探しています。
この段階からなので、もう少々時間はかかりそうです。。。


すみません、そもそも何を使って出力しているのでしょうか?
VSTO でしょうか? COM Interop でしょうか?

# はずれていたら、Range を調べる意味がなくなってしまいます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
はな
常連さん
会議室デビュー日: 2005/10/21
投稿数: 20
投稿日時: 2006-06-05 18:45
じゃんぬねっとさん

お返事ありがとうございます。

私はCOM Interop を利用してExcelに出力しています。

これですと、Rangeを利用する方向で大丈夫なんですよね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-05 19:33
引用:

はなさんの書き込み (2006-06-05 18:45) より:

私はCOM Interop を利用してExcelに出力しています。
これですと、Rangeを利用する方向で大丈夫なんですよね?


はい、問題ありません。
Excel.Range のインスタンスから可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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