从excel复制到DataGridView c#
我正在尝试将多个excel行复制到我的datagridview,然后发送到我的DB。 我使用Ctrl+C复制excel行,然后尝试使用程序中的按钮单击事件粘贴它们,但出现错误: 我的代码如下:从excel复制到DataGridView c#,c#,datagridview,copy-paste,C#,Datagridview,Copy Paste,我正在尝试将多个excel行复制到我的datagridview,然后发送到我的DB。 我使用Ctrl+C复制excel行,然后尝试使用程序中的按钮单击事件粘贴它们,但出现错误: 我的代码如下: private void btnPaste_Click(object sender, EventArgs e) { try { dgvPM.Focus(); dgvPM.CurrentCell = dgvPM[1,1];
private void btnPaste_Click(object sender, EventArgs e)
{
try
{
dgvPM.Focus();
dgvPM.CurrentCell = dgvPM[1,1];
string s = Clipboard.GetText();
string[] lines = s.Replace("\n", "").Split('\r');
string[] fields;
int row = 0;
int column = 0;
foreach (string l in lines)
{
fields = l.Split('\t');
foreach (string f in fields)
dgvPM[column++, row].Value = f;
row++;
column = 0;
}
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
catch(System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我不知道我还能如何完成这项任务。
任何帮助都将不胜感激
更新:
以下是我的datagridview的外观:
我正在粘贴的excel数据示例:
我也遇到过同样的情况,你的代码对我帮助很大。这是我的,基于你的:
private void button1_Click(object sender, EventArgs e)
{
string s = Clipboard.GetText();
string[] lines = s.Replace("\n", "").Split('\r');
dgPositions.Rows.Add(lines.Length-1);
string[] fields;
int row = 0;
int col = 0;
foreach (string item in lines)
{
fields = item.Split('\t');
foreach (string f in fields)
{
Console.WriteLine(f);
dgPositions[col, row].Value = f ;
col++;
}
row++;
col = 0;
}
}
问题是一样的。。我需要从excel复制到datagridview。
我假设DataGridView中的一列包含数字,而您试图添加无法转换的字符串值。不,我甚至尝试过将excel行格式化为完全符合DataGridView的格式,但仍然会弹出此对话框。您能否从剪贴板发布示例数据,以及DataGridView的设计器部分?使用您提供的代码并假设剪贴板内容包含以制表符分隔的字符串…您可能会遇到的一个错误是,如果剪贴板中包含的字符串的列或行比网格中的多。这将抛出索引超出范围错误。另一个可能是格式问题,如果列正在查找一个数字并得到其他内容,则可能引发数据错误。错误是什么?