【发布时间】:2013-09-17 18:30:50
【问题描述】:
我想从 dataGridView 复制一个单元格区域,然后将该数据粘贴到 MS Excel 中。我可以复制数据并粘贴到 MS Word 或记事本中,但不能复制到 Excel 中。有很多从 Excel 复制并粘贴到 DataGridView 的示例,但反之则不然。
private void frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
{
this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
if (this.dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
try
{
DataObject d = dataGridView1.GetClipboardContent();
Clipboard.SetDataObject(d);
}
catch (System.Runtime.InteropServices.ExternalException)
{
MessageBox.Show("Could Not Copy To Clipboard");
}
}
}
}
有没有办法粘贴到excel中?我一直在努力寻找解决方案。
编辑
在使用dataGridViews尝试其他一些程序后出现,您可以在选择dataGridView中的一组单元格后默认复制并粘贴到excel或其他程序中。我现在无法确定是否是 DGV 中不受支持的数据或我在属性管理器中更改的 DGV 属性,或者我只需要关闭并重新打开 excel,因为出现了一些错误。
【问题讨论】:
-
粘贴时会发生什么?无数据、错误数据、格式错误的数据?您在剪贴板上实际获得的通常是格式化的文本。也许格式与 Excel 所期望的不匹配。您可能必须向后工作,自己格式化文本,然后手动将其放在剪贴板上。
-
忘了说,不会粘贴任何数据。我可以将数据粘贴到 word 和记事本中。
-
好吧,我在尝试了其他一些带有 DataGridViews 的程序后才意识到,它们可以被复制并粘贴到 excel 中,而无需添加任何代码来专门这样做。因此,为什么关于这个主题的问题或答案如此之少。我认为这可能是我在 DataGridView 属性管理器上更改的一些设置。