C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 大量データを文字列としてクリップボード貼り付け


(過去ログ 164 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■94771 / inTopicNo.1)  大量データを文字列としてクリップボード貼り付け
  
□投稿者/ 千の千尋 (1回)-(2020/05/14(Thu) 17:18:36)

分類:[C#] 

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 に文字列として格納したら良いのか教えて頂きたく。

宜しくお願い致します。
引用返信 編集キー/
■94772 / inTopicNo.2)  Re[1]: 大量データを文字列としてクリップボード貼り付け
□投稿者/ 魔界の仮面弁士 (2720回)-(2020/05/14(Thu) 18:18:15)
No94771 (千の千尋 さん) に返信
> string copy = Data[0,0] + "\r\n" + Data[0,1] + "\r\n" + Data[0,2] + ・・・ ;
> Clipboard.SetData(DataFormats.Text, (object)copy);
> 2次元配列100x100(10000程度)の大量データを貼り付ける場合はどのようにしたらよいでしょう?


文字列連結の話をしているのであれば、StringBuilder を使うことを検討してみてください。

https://dobon.net/vb/dotnet/string/stringbuilder.html
https://smdn.jp/programming/dotnet-samplecodes/string/StringBuilder_AppendLine%E3%83%BBAppend%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%94%B9%E8%A1%8C%E4%BB%98%E3%81%8D%E3%83%BB%E6%94%B9%E8%A1%8C%E3%81%AA%E3%81%97%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B.csharp.xhtml


delayed rendering の話だとしたら、このあたりかな…。

http://wisdom.sakura.ne.jp/system/winapi/win32/win91.html
https://social.msdn.microsoft.com/Forums/ja-JP/934d7844-cd4f-4bc4-afbb-32c3f080242a/c?forum=wpfja
https://stackoverflow.com/questions/2578900/how-do-i-backup-and-restore-the-system-clipboard-in-c/2579846

引用返信 編集キー/
■94789 / inTopicNo.3)  Re[1]: 大量データを文字列としてクリップボード貼り付け
□投稿者/ 大谷刑部 (77回)-(2020/05/19(Tue) 13:51:23)
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万セルとかになるとこれも遅い)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -