VB.NetやC#.Netから、Excelのセルに文字列や式を高速に設定する方法 | realsystems_jpのブログ

VB.NetやC#.Netから、Excelのセルに文字列や式を高速に設定する方法

業務アプリを作っていると、Excelで帳票作成とかよくあります。

そんなとき、MSDNの以下の記事のように1セルずつまじめに値をセットしたりしてませんか?



コード : ワークシートのセルに値を送る (C#)

http://msdn.microsoft.com/ja-jp/library/aa288907(v=vs.71).aspx


1、2セルの更新ならまだいいですが、それ以上だと・・お・そ・・い・・ですし、

ちょっと大きな表になるともう待ちきれません。


そんなときは、オブジェクト型の2次元配列を用意して値をセットしておき

同じ大きさのRangeのValue2にまとめてセットします。

だいたい、こんな感じです。


object[,] rng = new object[1,3];

rng[0,0] = "test"; //文字列

rng[0,1] = "123"; //数字

rng[0,2] = "=R1C1"; //式

Excel.Range xrange = get_Range("R1C1:R10C10", Type.Missing);

xrange.Value2 = rng;

(ポイントだけです。実際は変数を使うとかReleaseComObjectとかちゃんとやってください)


この方法はExcelマクロ(VBA)のときも使えますよ。