社区
C#
帖子详情
如何在datagridview里直接从文件复制多条数据粘贴
laolaixuebiancheng
2011-03-22 04:04:44
请教各位了
比如从EXCEL表格里面复制多条数据,在datagridview里面直接粘贴就存入数据库,其他数据用默认值,也可以选定这些数据后再次复制粘贴,比如先修改的是货物的名称列,再复制价格列,然后一起存入数据库
...全文
471
10
打赏
收藏
如何在datagridview里直接从文件复制多条数据粘贴
请教各位了 比如从EXCEL表格里面复制多条数据,在datagridview里面直接粘贴就存入数据库,其他数据用默认值,也可以选定这些数据后再次复制粘贴,比如先修改的是货物的名称列,再复制价格列,然后一起存入数据库
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laolaixuebiancheng
2011-04-02
打赏
举报
回复
现在我将这段代码改了一下,直接存入数据库,调用此函数后,清除绑定的数据,重新绑定新数据,但出现新问题,就是最后一条数据刷新后不显示,再次刷新才显示,怎么解决
laolaixuebiancheng
2011-03-23
打赏
举报
回复
找到一个有用的,大家看看吧
public static void DataGirdViewCellPaste(DataGridView DBGrid)
{
try
{
// 获取剪切板的内容,并按行分割
string pasteText = "";
pasteText = Clipboard.GetText();
if (string.IsNullOrEmpty(pasteText))
return;
if (pasteText == "pasteText")
{
return;
}
int tnum = 0;
int nnum = 0;
//获得当前剪贴板内容的行、列数
for (int i = 0; i < pasteText.Length; i++)
{
if (pasteText.Substring(i, 1) == "\t")
{
tnum++;
}
if (pasteText.Substring(i, 1) == "\n")
{
nnum++;
}
}
Object[,] data;
//粘贴板上的数据来自于EXCEL时,每行末都有\n,在DATAGRIDVIEW内复制时,最后一行末没有\n
if (pasteText.Substring(pasteText.Length - 1, 1) == "\n")
{
nnum = nnum - 1;
}
tnum = tnum / (nnum + 1);
data = new object[nnum + 1, tnum + 1];//定义一个二维数组
String rowstr;
rowstr = "";
//MessageBox.Show(pasteText.IndexOf("B").ToString());
//对数组赋值
for (int i = 0; i < (nnum + 1); i++)
{
for (int colIndex = 0; colIndex < (tnum + 1); colIndex++)
{
//一行中的最后一列
if (colIndex == tnum && pasteText.IndexOf("\r") != -1)
{
rowstr = pasteText.Substring(0, pasteText.IndexOf("\r"));
}
//最后一行的最后一列
if (colIndex == tnum && pasteText.IndexOf("\r") == -1)
{
rowstr = pasteText.Substring(0);
}
//其他行列
if (colIndex != tnum)
{
rowstr = pasteText.Substring(0, pasteText.IndexOf("\t"));
pasteText = pasteText.Substring(pasteText.IndexOf("\t") + 1);
}
data[i, colIndex] = rowstr;
}
//截取下一行数据
pasteText = pasteText.Substring(pasteText.IndexOf("\n") + 1);
}
//获取当前选中单元格所在的列序号
int curntindex = DBGrid.CurrentRow.Cells.IndexOf(DBGrid.CurrentCell);
//获取获取当前选中单元格所在的行序号
int rowindex = DBGrid.CurrentRow.Index;
//MessageBox.Show(curntindex.ToString ());
for (int j = 0; j < (nnum + 1); j++)
{
for (int colIndex = 0; colIndex < (tnum + 1); colIndex++)
{
if (!DBGrid.Columns[colIndex + curntindex].Visible)
{
continue;
}
if (!DBGrid.Rows[j + rowindex].Cells[colIndex + curntindex].ReadOnly)
{
DBGrid.Rows[j + rowindex].Cells[colIndex + curntindex].Value = data[j, colIndex];
}
}
}
Clipboard.Clear();
}
catch
{
Clipboard.Clear();
//MessageBox.Show("粘贴区域大小不一致");
return;
}
}
laolaixuebiancheng
2011-03-23
打赏
举报
回复
如果没有有效的回复我该把分给谁?
laolaixuebiancheng
2011-03-23
打赏
举报
回复
重写控件也需要搞清楚原理啊,没有高手来吗
Just4life
2011-03-22
打赏
举报
回复
如果你要这个样子的话,只能自己重写控件了
laolaixuebiancheng
2011-03-22
打赏
举报
回复
而且关键是从剪贴板粘贴的用户体验要好得多,读取EXCEL数据你要给人家设置很多对话框让人家选择很麻烦,不如直接CTRL+c CTRL+V来得爽快,还有,不是 EXCEL数据呢,是access数据或者其他软件或者网页上的呢?所以还是直接CTRL+c CTRL+V好
laolaixuebiancheng
2011-03-22
打赏
举报
回复
直接从execl读数到datagridview里有一个麻烦就是原始数据需要整理,如果从剪贴板加入内容我可以加前缀的,excel的数据往往是针对一个类型的,我在加入的时候前缀就是这个类型就完整了,况且EXCEL表格的内容很多不是我真正需要的我会直接删除然后复制我需要的内容添加到数据库,所以我还是倾向于从剪贴板粘贴,最好是复制几列数据一起粘贴,那么如何进行有效的验证呢?过程和步骤如何?
风之影子
2011-03-22
打赏
举报
回复
方法一:直接从execl读数到datagridview里,比你手工复制来的更具完整性。
方法二:判断剪切版中的内容,在粘贴时进行有效性验证。
免费
DataGridView
打印及.NET轻松打印控件6.01版(VB打印,C#打印,图表打印,Excel导入导出,多表头显示与打印)
与6.0版相比,控件6.01版的主要更改如下: 1、解决6.0版在XP及Windows ...19、5.7版控件增加了使用开源的NPOI从Excel文件(支持2003与2007格式)中导入
数据
到
DataGridView
的功能,以及
DataGridView
的
复制
与
粘贴
功能。
免费
DataGridView
打印及.NET轻松打印控件5.7版(VB打印,C#打印,Excel导入导出,多表头显示与打印)
26、5.7版控件增加了使用开源的NPOI从Excel文件中导入
数据
到
DataGridView
的功能,以及
DataGridView
的
复制
与
粘贴
功能。 我将持续改进该控件,并将不断推出控件的新版本,要查看或下载控件的升级版本,请登陆网站:...
C#程序开发范例宝典(第2版).part08
实例082 从
DataGridView
控件拖放
数据
至TreeView控件 113 实例083 在
DataGridView
控件中实现合并单元格 116 实例084 在
DataGridView
控件中显示图片 118 实例085 为
DataGridView
控件实现复选功能 120 实例086 禁用...
C#程序开发范例宝典(第2版).part13
实例082 从
DataGridView
控件拖放
数据
至TreeView控件 113 实例083 在
DataGridView
控件中实现合并单元格 116 实例084 在
DataGridView
控件中显示图片 118 实例085 为
DataGridView
控件实现复选功能 120 实例086 禁用...
C#程序开发范例宝典(第2版).part02
实例082 从
DataGridView
控件拖放
数据
至TreeView控件 113 实例083 在
DataGridView
控件中实现合并单元格 116 实例084 在
DataGridView
控件中显示图片 118 实例085 为
DataGridView
控件实现复选功能 120 实例086 禁用...
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章