Excel的内容赋值粘贴到DatagridView有办法么

asdghosdffff 2010-07-31 06:17:43
如题
把excel表里选择并复制的内容
粘贴到DataGridView中
研究好几天了 没思路啊
...全文
309 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
asdghosdffff 2010-08-01
  • 打赏
  • 举报
回复
回复9楼
当然可以 只是不知道如何操作才能赋值到datagridview
DevinXie 2010-08-01
  • 打赏
  • 举报
回复
关注一下.不过,非得copy paste么,实在不行,就一行一行读写吧
asdghosdffff 2010-08-01
  • 打赏
  • 举报
回复
回复12楼
我也知道需要通过操作剪贴板里的字符串
现在的问题就是怎么来操作,我试过判断换行符 和 制表符
可都没有成功

有人愿意一起研究研究吗?
asdghosdffff 2010-08-01
  • 打赏
  • 举报
回复
看了那篇帖子
自己研究了一下
已经可以了
谢谢大家给我的帮助
真的很感谢
gxingmin 2010-08-01
  • 打赏
  • 举报
回复
复制到剪贴板上,然后根据剪贴板上到内容,根据空格分组,然后写到datagridview控件里
asdghosdffff 2010-08-01
  • 打赏
  • 举报
回复
如图这样的表格,复制之后剪贴板的内容我粘贴到word里是这样的


水猿兵团五哥 2010-08-01
  • 打赏
  • 举报
回复

Dim con As New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=excel路径")
Try
con.Open()
Dim cmd As New OleDb.OleDbCommand("select * from [sheet1]", con)
Dim rs As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(cmd)
Dim DT As New DataTable
Try
rs.Fill(DT)
datagridview1.datasource=dt
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical)
connection.Close()
Exit Sub
End Try
水猿兵团五哥 2010-08-01
  • 打赏
  • 举报
回复
别把excel说的那么神秘,把excel当成一个数据库去操作
然后呢,把excel里的数据读取到datatable里,下面你再去
设置数据源给datagridview不就OK了?
wooyoncs 2010-08-01
  • 打赏
  • 举报
回复
前些日子做程序,也遇到要用这个的,我是一列一列单独复制来实现的(因为我的程序中只可能复制某一列)。

If Not DataGridView1.IsCurrentCellInEditMode Then
If DataGridView1.Focused Then
If DataGridView1.CurrentCell.RowIndex <> DataGridView1.RowCount - 1 Then
Dim str() As String = Clipboard.GetDataObject.GetData(DataFormats.Text, True).ToString.Split(Chr(13) & Chr(10))
Dim xh As Int16
For xh = DataGridView1.CurrentCell.RowIndex To DataGridView1.RowCount - 1
If xh - DataGridView1.CurrentCell.RowIndex < str.Length - 1 Then
DataGridView1.Item(DataGridView1.CurrentCell.ColumnIndex, xh).Value = str(xh - DataGridView1.CurrentCell.RowIndex).Replace(Chr(13), "").Replace(Chr(10), "")
Else
Exit For
End If
Next
End If
End If
Else
MsgBox("当前单元格正在编辑,不能进行复制、粘贴操作!")
End If
Return True
asdghosdffff 2010-08-01
  • 打赏
  • 举报
回复
回复14楼
从特定的位置读写 我已经做出来了
不过那样比较麻烦
还是复制粘贴使用比较方便
所以很需要一个方法来复制粘贴
有人帮帮我吗
lkhoji 2010-07-31
  • 打赏
  • 举报
回复
不知道先把提取出的内容复制到字符串或TextBox行吗
asdghosdffff 2010-07-31
  • 打赏
  • 举报
回复
获取剪贴板用My.Computer.Clipboard这个类不是也行么
这个跟range有什么区别呢?


现在关键是怎么操作剪贴板里的内容,赋值到数组
jhonsonzhang 2010-07-31
  • 打赏
  • 举报
回复
我没时间来帮你写了,帮你提供一个思路,你自己试试,定义一个操作excel的类,然后定义一个range,然后用range.paste的方法得到剪贴板的内容,然后定义一个数组,提取range里面的内容就是,组后关掉自己类调用的excel就是。
asdghosdffff 2010-07-31
  • 打赏
  • 举报
回复
剪贴板的内容可以提取出来
只是不知道怎么赋值给变量
我想给赋值给一个二维数组
不知怎么操作剪贴板里内容

有兴趣的朋友能帮我看看么.
jhonsonzhang 2010-07-31
  • 打赏
  • 举报
回复
range.Value = "";
这儿出的问题
wuyq11 2010-07-31
  • 打赏
  • 举报
回复
Excel.Range range = xlSheet.get_Range("A1", Type.Missing);
range.Value = "";
System.Windows.Forms.Clipboard.SetDataObject(range.Value.ToString());
string pasteText = Clipboard.GetText();
http://topic.csdn.net/u/20091028/22/e0789d92-5d77-4b57-bbbd-aa3eeb5ed3bb.html
jhonsonzhang 2010-07-31
  • 打赏
  • 举报
回复
1.有在interop.excel操作的类
直接在过程或方法里面把内容设置到clipboard,clipboard.settext
2.无
是由用户在excel里面操作,然后在自己frm里面提取
直接定义变量提取clipboard内容就是了。
lkhoji 2010-07-31
  • 打赏
  • 举报
回复
编程提取剪贴板中单元格内容粘贴试试。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧