c# xls 复制一行_C# 实现复制Excel内容到DataGridview中

private void copydata(stringdata1) {string clipboardText = Clipboard.GetText(); //获取剪贴板中的内容

if (data1.Trim().Length < 1) { return; }try{int colnum = 0;int rownum = 0;for (int i = 0; i < clipboardText.Length; i++)

{if (clipboardText.Substring(i, 1).Equals("\t"))

{

colnum++;

}if (clipboardText.Substring(i, 1).Equals("\n"))

{

rownum++;

}

}//粘贴板上的数据来源于EXCEL时,每行末尾都有\n,来源于DataGridView是,最后一行末尾没有\n

if (clipboardText.Substring(clipboardText.Length - 1, 1) == "\n")

{

rownum--;

}

colnum= colnum / (rownum + 1);object[,] data; //定义object类型的二维数组

data = new object[rownum + 1, colnum + 1]; //根据剪贴板的行列数实例化数组

string rowStr = "";//对数组各元素赋值

for (int i = 0; i <= rownum; i++)

{for (int j = 0; j <= colnum; j++)

{//一行中的其它列

if (j !=colnum)

{

rowStr= clipboardText.Substring(0, clipboardText.IndexOf("\t"));

clipboardText= clipboardText.Substring(clipboardText.IndexOf("\t") + 1);

}//一行中的最后一列

if (j == colnum && clipboardText.IndexOf("\r") != -1)

{

rowStr= clipboardText.Substring(0, clipboardText.IndexOf("\r"));

}//最后一行的最后一列

if (j == colnum && clipboardText.IndexOf("\r") == -1)

{

rowStr= clipboardText.Substring(0);

}

data[i, j]=rowStr;

}//截取下一行及以后的数据

clipboardText = clipboardText.Substring(clipboardText.IndexOf("\n") + 1);

}

clipboardText=Clipboard.GetText();int start, end = -1, index, rowStart = 0, columnStart = 0;

rowStart=r;//选中单元格的行号

columnStart=Icol;//选中单元格的列号for (int i = 0; i <=rownum; i++)

{

#region 如果datagridview中行数不够,就自动增加行

if ((i + rowStart) > dataGridView3.Rows.Count - 1)

{

//添加新行

DataRow row= dsMainFilter1.Tables[0].NewRow();

str= SYSVARS.vars.userId + System.DateTime.Now.ToString("yyyyMMddHHmmss").ToString().Trim() + dsMainFilter1.Tables[0].Rows.Count.ToString();//以时间标识代码不同的单据号

dsMainFilter1.Tables[0].Rows.Add(row);

}#endregion

for (int j = 0; j <= colnum; j++)//将值赋值过去---如果datagridview中没有自动增加列

{

#region 需要判断单元格是不是只读的,是只读的就不用不赋值

bool iszd = this.dataGridView3.Rows[i + rowStart].Cells[j +columnStart].ReadOnly;if (iszd == true)

{continue;

}#endregion

string sjz = "";try{

sjz=data[i, j].ToString();

}catch { sjz = ""; }if (sjz.Trim().Length < 1) { continue; }//直接复制this.dataGridView3.Rows[i + rowStart].Cells[j + columnStart].Value =sjz;

}

}

}catch{ }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值