小问题:如何把DataGridview数据的第1、3列复制到剪切板?

时间:2021-03-14 04:27:22
有一个DataGridview表格数据,如何把第1、3列数据复制到剪切板?

11 个解决方案

#1


Dim s As String = DataGridView1.SelectedRow(0).Cells(0).Value.ToString() + "," + DataGridView1.SelectedRow(0).Cells(1).Value.ToString()
ClipBoard.SetText(s)

#2


引用 楼主 OnlyVB 的回复:
有一个DataGridview表格数据,如何把第1、3列数据复制到剪切板?


2万行的数据慢如牛呀!

#3


引用 1 楼 caozhy 的回复:
Dim s As String = DataGridView1.SelectedRow(0).Cells(0).Value.ToString() + "," + DataGridView1.SelectedRow(0).Cells(1).Value.ToString()
ClipBoard.SetText(s)


2万行的数据慢如牛呀!

#4


你要复制到剪切板,还想怎样快?

#5


引用 4 楼 sp1234 的回复:
你要复制到剪切板,还想怎样快?


程序至少应该比手工快吧

#6


DataGridView1.Columns(1).Selected = True为啥不起作用?
而DataGridView1.Rows(5).Selected = True却可以。
难道不能选择整列?
如何选中第1列和第3列?

#7


引用 2 楼 OnlyVB 的回复:
Quote: 引用 楼主 OnlyVB 的回复:

有一个DataGridview表格数据,如何把第1、3列数据复制到剪切板?


2万行的数据慢如牛呀!


把两万行数据放入剪贴板,好疯狂的想法。

#8


引用 7 楼 caozhy 的回复:
把两万行数据放入剪贴板,好疯狂的想法。


主要是用来往其他软件中加载数据,作图用,2万个数据点还是少的。
目前的解决方法代码如下:

        Dim rowscount As Integer = DataGridView1.RowCount '数据行数
        Dim i As Integer
        For i = 0 To rowscount - 1
            DataGridView1.Rows(i).Cells(0).Selected = True
            DataGridView1.Rows(i).Cells(2).Selected = True
        Next
        Clipboard.SetDataObject(DataGridView1.GetClipboardContent) '复制到剪切板


谁有更好的办法没?

#9


引用 5 楼 OnlyVB 的回复:
Quote: 引用 4 楼 sp1234 的回复:

你要复制到剪切板,还想怎样快?


程序至少应该比手工快吧


嗯。你手工如何把两万行放入剪切板的?难道你的你手工这样操作,比这个程序还快?

#10


引用 8 楼 OnlyVB 的回复:
谁有更好的办法没?


如果要干什么事情,就直接干这个事情。否则如果你就是认准了“剪切板”,估计不会有什么别的“更好的办法”了。

比如说,这些数据本来就已经在内存里了,你下一步要搞什么事情就直接用你的c#代码去实现,非要折腾一下剪切板吗?

#11


手工,我指的是手工选中数据复制,软件只支持剪切板数据。
最终,通过一个隐含的DataGridView控件,得到完美解决。
谢谢各位的帮助,结贴。

#1


Dim s As String = DataGridView1.SelectedRow(0).Cells(0).Value.ToString() + "," + DataGridView1.SelectedRow(0).Cells(1).Value.ToString()
ClipBoard.SetText(s)

#2


引用 楼主 OnlyVB 的回复:
有一个DataGridview表格数据,如何把第1、3列数据复制到剪切板?


2万行的数据慢如牛呀!

#3


引用 1 楼 caozhy 的回复:
Dim s As String = DataGridView1.SelectedRow(0).Cells(0).Value.ToString() + "," + DataGridView1.SelectedRow(0).Cells(1).Value.ToString()
ClipBoard.SetText(s)


2万行的数据慢如牛呀!

#4


你要复制到剪切板,还想怎样快?

#5


引用 4 楼 sp1234 的回复:
你要复制到剪切板,还想怎样快?


程序至少应该比手工快吧

#6


DataGridView1.Columns(1).Selected = True为啥不起作用?
而DataGridView1.Rows(5).Selected = True却可以。
难道不能选择整列?
如何选中第1列和第3列?

#7


引用 2 楼 OnlyVB 的回复:
Quote: 引用 楼主 OnlyVB 的回复:

有一个DataGridview表格数据,如何把第1、3列数据复制到剪切板?


2万行的数据慢如牛呀!


把两万行数据放入剪贴板,好疯狂的想法。

#8


引用 7 楼 caozhy 的回复:
把两万行数据放入剪贴板,好疯狂的想法。


主要是用来往其他软件中加载数据,作图用,2万个数据点还是少的。
目前的解决方法代码如下:

        Dim rowscount As Integer = DataGridView1.RowCount '数据行数
        Dim i As Integer
        For i = 0 To rowscount - 1
            DataGridView1.Rows(i).Cells(0).Selected = True
            DataGridView1.Rows(i).Cells(2).Selected = True
        Next
        Clipboard.SetDataObject(DataGridView1.GetClipboardContent) '复制到剪切板


谁有更好的办法没?

#9


引用 5 楼 OnlyVB 的回复:
Quote: 引用 4 楼 sp1234 的回复:

你要复制到剪切板,还想怎样快?


程序至少应该比手工快吧


嗯。你手工如何把两万行放入剪切板的?难道你的你手工这样操作,比这个程序还快?

#10


引用 8 楼 OnlyVB 的回复:
谁有更好的办法没?


如果要干什么事情,就直接干这个事情。否则如果你就是认准了“剪切板”,估计不会有什么别的“更好的办法”了。

比如说,这些数据本来就已经在内存里了,你下一步要搞什么事情就直接用你的c#代码去实现,非要折腾一下剪切板吗?

#11


手工,我指的是手工选中数据复制,软件只支持剪切板数据。
最终,通过一个隐含的DataGridView控件,得到完美解决。
谢谢各位的帮助,结贴。