| ■No94771 (千の千尋 さん) に返信 > C#プログラムの質問です。 > > 任意の計算処理をした出力データを2次元配列 Data[100,100]に格納しております。 > > その配列データをエクセルで処理できるようにクリップボードで貼り付けたいと思っております。 > > 数個程度のデータをクリップボードで貼り付ける場合には下記のようにコードを書いて対応できますが > > string copy = Data[0,0] + "\r\n" + Data[0,1] + "\r\n" + Data[0,2] + ・・・ ; > Clipboard.SetData(DataFormats.Text, (object)copy); > > 2次元配列100x100(10000程度)の大量データを貼り付ける場合はどのようにしたらよいでしょう? > > for文を使うにしろ、どのようにstring copy に文字列として格納したら良いのか教えて頂きたく。 > > 宜しくお願い致します。
Excelで処理するのであれば、Rageオブジェクトに配列丸ごと代入しちゃうのが一番安直だがコード上は簡単な方法かと。 Rangeの範囲と2次元配列の要素数が合致してればいけるはずです。
上記に書いているようなぐるぐる回して文字列代入するのはお勧めしません。 文字列代入でべらぼうに時間がかかります。
まだ、一旦テキストファイルに書き出して、OpentextFileメソッドで処理した方が速いと思います。 (ただし件数次第。10万セルとかになるとこれも遅い) |