2016-07-23 11 views
2

私は最初の1つだったC#アプリケーションを作成しました(私はここでnoobです)!このアプリケーションはExcel Interopで動作し、非常に長い時間がかかる多くのセルを設定しました。その後、1回の呼び出しで一連のセルを設定することができると聞きました。それは私がやろうとしていることですが、このトピックに関するいくつかのスレッドがありますが、それらのどれも私のために働いていないか、それを得られませんでした。Visual C#複数のセルを一度にExcel Interopで設定する

Excel.Range rng = (Excel.Range)xlWorkSheet.get_Range(xlWorkSheet.Cells[1, 1], xlWorkSheet.Cells[3, 3]); 
rng.Value = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 

それともget_Rangeと少なくとも何か:

は、Google

は、ほとんどの人は、この方法をお勧めします。しかし、私の問題は、私はget_Rangeを実行することはできません、どちらもワークシートや私のブックまたは初期化されたExcelのアプリケーションではありません。この方法は存在せず、私はインターネット上で見つけたものがすべて古くなったように感じます!

私は本当に誰かが私を助けてくれることを願っています。私は行を設定したい、または一度にシート全体を複雑にすることはできません。

答えて

5

Excelオブジェクトライブラリのバージョン15.0以上では、get_Range()メソッドが削除され、Rangeプロパティに置き換えられました。このプロパティは、これまでにget_Range()で提供されていたのと同じ機能を実行するために使用できます。

はまた、1次元配列に値を設定すると、おそらくあなたが望むものではありませんこれは、次のような出力になりますのでご注意:

Bad output

次のコードは、両方の問題が修正されます。

var rng = (Excel.Range)xlWorkSheet.Range[xlWorkSheet.Cells[1, 1], xlWorkSheet.Cells[3, 3]]; 
rng.Value = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; 

これは以下のように出力をもたらす:

Good output

+0

ありがとう、これは私のアプリを100倍速くします:D – Stringering

関連する問題