0

私はExcelからコピーしてC#のデータグリッドビューに貼り付けることができました。しかし、ctrlを押したままにすると、互いに隣接していない列を選択し、コピーしてdatagridviewに貼り付けます-その間のすべての列も貼り付けられました。ワークブックを実際に開かずにこれを回避する方法はありますか?

現在の実装では、単純に を取得Clipboard.GetDataObject().GetDataし、それを文字列にフォーマットしてタブで区切ります。

4

2 に答える 2

1

残念ながら、Excel は、選択した列だけでなく、すべてをコピーするだけです。クリップボード ビューアーを使用して、クリップボードにコピーされた内容を表示できます (私は Free Clipboard Viewer を使用しました)。次のワークシートを作成しました

1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6

列 2、4、および 6 を選択してコピーしました。クリップボード ビューアーには、3 つの列ではなく、2 から 6 までのすべての列 (実際には Sheet!C2:C6) をコピーしたものが表示されます。

相互運用機能またはサードパーティ コンポーネントを使用していつでも Excel を開いて、必要なものを取得し、手動で貼り付けることができます。これは、グリッドを Excel のようなグリッドに変換するために必要でした。コンマ区切りの値を手動で解析し、セルを個別に設定しました。

于 2013-10-10T08:32:09.560 に答える