データグリッドと Excel 間の直接作業が良い理由は、DataGridView コンポーネントの実装とコピー操作に対するその反応、およびコンテンツを貼り付けたいアプリケーションの動作です。メモ帳では無視されるいくつかの特別なコードを使用できます。
編集
ですから、あなたの興味はよくわかります。C# での動作はわかりませんが、Java ではそのように見えます。
クリップボードに情報があるたびに、多くのバリアントがあり、他のアプリケーションがこのコンテンツをどのように使用できるか.
クリップボードからコンテンツを取得したいとします。私はそうします:
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(null);
しかし、ここで、アプリケーションに対して情報をどのように表示するかを決定する必要があります。ここから質問が始まります。
クリップボードに画像がある場合、可能な表現は1 つだけです。
[mimetype=image/x-java-image;representationclass=java.awt.Image]
メモ帳からのテキストがある場合、すでに27のバリエーションがあります。
[mimetype=application/x-java-text-encoding;representationclass=[B]
[mimetype=application/x-java-serialized-object;representationclass=java.lang.String]
[mimetype=text/plain;representationclass=java.io.Reader]
[mimetype=text/plain;representationclass=java.lang.String]
[mimetype=text/plain;representationclass=java.nio.CharBuffer]
and so on...
Excel シートのセルがいくつかある場合、56のバリアントがあります。
[mimetype=application/x-java-text-encoding;representationclass=[B]
[mimetype=text/html;representationclass=java.io.Reader]
[mimetype=text/html;representationclass=java.lang.String]
[mimetype=text/html;representationclass=java.nio.CharBuffer]
[mimetype=text/html;representationclass=[C]
and so on...
Excel セル用の Image-variant もあります。
[mimetype=image/x-java-image;representationclass=java.awt.Image]
そのため、Excel から一部のセルをコピーして、ペイントにビットマップとして貼り付けることができます。もちろん、開発者がこのプレゼンテーションで作業したくないため、メモ帳では不可能です。
これで、クリップボードがそれほど原始的ではないことがわかります。アプリケーションがコンテンツを分析し、その最適なバリアントを取得できるたびに。
これで、C# 開発に関する情報を見つけることができます。きっと、あなたはそれを手に入れるでしょう!