简单 WPF 复制/粘贴 Excel





5.00/5 (12投票s)
在 WPF 应用程序和 Excel 之间轻松复制和粘贴数据的简单方法。
引言
我开发了一种在 WPF 应用程序和 Excel 之间复制/粘贴数据的一种简单方法。这段代码与继承自 System.Windows.Controls.ItemsControls
的控件兼容 - 这些是具有 ItemsSource
属性的控件。这种类型的控件包括 DataGrid
、ListBox
、ListView
等。
它是 OpendSource
并且代码在 GitHub 上。
它的使用非常简单,我们将通过 nuget
安装该实用程序,并在 XAML 代码中设置控件的任何属性。
它的工作方式如下
必备组件
该实用程序已在 WPF 应用程序中进行了测试,我们不知道它是否可以在 (Silverlight, WP 或 WUP) 应用程序中运行。
需要 4.5.2 NET Framework 版本或更高版本。
安装
我们将从 nuget 安装
SetUp
安装完成后,我们将设置 WPF 窗口。 我们将在 XAML 中添加以下导入
xmlns:ml="clr-namespace:MoralesLarios.Utilities.Excel;assembly=MoralesLarios.Utilities"
我们将在 XAML 中的 ItemsControl
中添加以下属性
<DataGrid x:Name="dataGrid"
ml:ExcelActions.EnabledCopyExcel ="True" <!—- enabled copy/copiall excel -->
ml:ExcelActions.EnabledPasteExcel="True" <!—- enabled paste excel -->
/>
这段简单的代码实现了 DataGrid
控件和 Excel 之间的数据复制/粘贴。
考虑到其简单的形式,我们将使用键盘进行操作
- Ctrl + A -> 复制全部 -> 复制所有
DataGrid
行 - Ctrl + C -> 复制选中项 -> 复制
DataGrid
选定的行。 - Ctrl + P -> 粘贴 -> 将数据粘贴到
DataGrid
中。
其他附加属性
我们可以使用以下 AttachProperties
添加功能
ml:ExcelActions.EnabledCopyExcel ="True"
ml:ExcelActions.EnabledPasteExcel ="True"
ml:ExcelActions.ContainsHeader ="False"
ml:ExcelActions.CreateContextMenu ="True"
ml:ExcelActions.CancelWithErrors ="False"
ml:ExcelActions.PaintFlash ="True"
ml:ExcelActions.ColorFlash ="Yellow"
ml:ExcelActions.ShowErrorMessages ="True"
创建上下文菜单
启用或禁用在 ItemsControl
中显示上下文菜单。
ml:ExcelActions.CreateContextMenu="True"
其默认值为 True
。
包含标题
启用或禁用复制控件标题。
ml:ExcelActions.ContainsHeader="False"
其默认值为 True
。
绘制闪烁
显示或隐藏在控件中复制或粘贴时发生的颜色闪烁标记。
ml:ExcelActions.PaintFlash="True"
颜色闪烁
设置复制粘贴操作的闪烁颜色(仅当 PaintFlash
属性为 true
时可见)。
ml:ExcelActions.ColorFlash="Yellow"
其默认值为 Bruhes.Gray
。
显示错误消息
此属性指定是否在发生错误时显示错误消息。 例如,如果复制的数据与控件的数据源不兼容。
ml:ExcelActions.ShowErrorMessages="True"
其默认值为 True
。
正在进行中
取消带错误
当我们从 Excel 复制多行时,如果任何行不正确并且发生错误,此属性指定是粘贴正确的行还是不粘贴任何行。
True
-> 粘贴正确的行False
-> 什么也不粘贴
默认值为 True
。
建议
ItemsControl
的 ItemsSource
属性必须是 ObservableCollection
类型,因为这种类型可以正确刷新项目并通知删除和添加更改。
限制
在本版本中,在粘贴操作中,仅插入数据,不更新行,也不粘贴不完整类型。
如果有人需要,请告诉我,我会开发这部分内容。
历史
- 2017 年 2 月 23 日:初始版本