DataGridView复制粘贴(带有样式,背景颜色…)
我有一个C#Windows窗体应用程序与DataGridView。
复制和粘贴(ctrl-c在selectdatagrid中的数据和Excel中的ctrl-v后)工作得很好。
问题是样式(如背景颜色)没有粘贴在Excel中,只有单元格的值。 我需要更改我的datagridview某处的属性或实现自定义代码?
谢谢,
AFAIK影响剪贴板行为的唯一数据网格属性是“ClipBoardCopyMode”,而且几乎是“使用标题或不”。 除非我没有基础,如果你想要格式化,你将不得不把它放在剪贴板上。 但说实话,作为一个用户,我不想格式化。 当我复制一些东西的时候,它使我疯狂,然后必须重新格式化它们以匹配我目前使用的格式。 我宁愿粘贴数据,然后如果我想要显示的格式,那么做。 如果你要推出自己的build议,我会build议使用Excel剪贴板格式,以便您的用户可以“PasteSpecial”值,如果他们想。 这可能会给你一些想法: http : //www.codeguru.com/vb/gen/vb_misc/samples/article.php/c6393
我有同样的问题,并使用Control.DrawToBitmap
将位图添加到剪贴板。 首先使用DataObject,使用DataGridView中的“标准”剪贴板内容填充,然后添加位图,然后将数据对象推送到剪贴板,用户可以使用“粘贴特殊”function,并在位图或纯文本。 就像是:
Dim data as New DataObject() Dim html As DataObject = DGV.GetClipboardContent() data.SetData(DataFormats.Html, html.GetData(DataFormats.Html)) ' create some rectangle, probably using DataGridView.Bounds Dim bitmap As New System.Drawing.Bitmap(rectangle.Width, rectangle.Height) DGV.DrawToBitmap(bitmap, rectangle) data.SetData(DataFormats.Bitmap, bitmap)
也有可能创build一个RTF输出,但这是更多的工作,因为RTF代码是相当复杂的。 但是,有一些代码示例可以find。
而我只是偶然发现了这个使用XML输出的Excel和其他格式的例子 。
- 在Excel vb.net中启用编辑(没有给出一个或多个必需参数的值)
- 在VB.NET中格式化Excel
- 是否有可能从剪贴板粘贴Excel / CSV数据到C#中的DataGridView?
- 如何将c#datagridview导出到Excel中
- 导入一个特定的范围从xls文件到datagridview在c#
- 如何将今天的date与Exceldate列进行比较,以便在C#中显示当前input的数据
- 在MVC Web环境中,使用GridView生成表单分离的excel
- 从datagridview复制粘贴到excel时如何保持颜色?
- 从HRESULTexception:0x800A03EC错误粘贴特殊的datagridview-excel