我有什么方法可以进行datagridview控件,以便用户可以使用Ctrl+C
和Ctrl+V
从Excel中复制和粘贴多个单元格?
答案 0 :(得分:1)
如果您通过调用Clipboard.GetText()
获得简单 Excel内容,则会返回一个字符串。
在其中,行将由Linefeeds
(\ r \ n)和Tabs
(\ t)之间的字段分隔。
请看下面的代码,这将为您提供一些工作......:
// Before you press the button copy some excel cells!
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
dataGridView1.Columns.Add("one", "one");
dataGridView1.Columns.Add("two", "two");
dataGridView1.Columns.Add("three", "three");
dataGridView1.Columns.Add("four", "four");
dataGridView1.Columns.Add("five", "five");
dataGridView1.Rows.Add(5);
dataGridView1.Focus();
dataGridView1.CurrentCell = dataGridView1[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)
dataGridView1[column++, row].Value = f;
row++;
column = 0;
}
}
使用Control-V进行粘贴比较棘手,从按钮开始!
它将涉及捕获Control-V并对其进行处理;这可能有点难以调试,但是..