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)のときも使えますよ。