Winform-DataGridView 实现如Excel的粘贴复制
- void AddDataGridView(DataGridView gridView, string s)
- {
- s = s.Replace("/", @"\"); //避免因为版本造成的斜杠问题,这里做统一处理
- int RowCount = (s.Length - s.Replace("\r\n", "").Length) / 2 + 1; //最终计算结果,这次覆盖所要影响的行数 /r/n只占2个字节所以是除2
- int CellCount = (s.Length - s.Replace("\t", "").Length + RowCount) / RowCount; ; //~每行单元格数 /t的数量加行数=所有单元格数(第一个单元格会不计算)
- string[,] Strarr = new string[RowCount, CellCount]; //用于记录复制的单元格信息的二维数组
- for (int i = 0; i < RowCount; i++) //将单元格信息添加到数组中
- {
- string tem_s = s.Split(new string[] { "\r\n" }, StringSplitOptions.None)[i];
- for (int j = 0; j < CellCount; j++)
- {
- Strarr[i, j] = tem_s.Split(new string[] { "\t" }, StringSplitOptions.None)[j];
- }
- }
- //获取选择单元格 以第一个单元格为0点向第四象限扩展 SelectedCells是以用户选择顺序或者拖动方向决定的 是不规律的
- //为了保证和理性,这里所取的第一个单元格是左上角的单元格
- int arrayX = 0, arrayY = 0; //二维数组坐标系
- int startRow = gridView.Rows.Count, startColumn = gridView.ColumnCount; //起始的单元格坐标系
- foreach (DataGridViewCell cell in gridView.SelectedCells) //迭代比较,获取2轴数字均最小的坐标
- {
- startRow = cell.RowIndex < startRow ? cell.RowIndex : startRow;
- startColumn = cell.ColumnIndex < startColumn ? cell.ColumnIndex : startColumn;
- }
- for (int i = startRow; (arrayX < RowCount && i < gridView.Rows.Count); i++, arrayX++) //非空验证
- {
- arrayY = 0;
- DialogResult dr=new DialogResult();
- for (int j = startColumn; (arrayY < CellCount && j < gridView.ColumnCount); j++, arrayY++)
- {
- if (!string.IsNullOrEmpty(gridView.Rows[i].Cells[j].Value.ToString()))
- {
- dr = MessageBox.Show("继续操作会覆盖原内容!", "警告", MessageBoxButtons.OKCancel);
- if (dr == DialogResult.OK)
- break; //单元格非空时警示,确定操作退出循环继续赋值
- else
- return; //否则直接返回方法
- }
- }
- if (dr == DialogResult.OK) //如果做了选择 则退出
- break;
- }
- arrayX = arrayY = 0; //坐标系重置
- for (int i = startRow; (arrayX < RowCount && i < gridView.Rows.Count); i++, arrayX++) //数据赋值
- {
- arrayY = 0;
- for (int j = startColumn; (arrayY < CellCount && j < gridView.ColumnCount); j++, arrayY++)
- {
- gridView.Rows[i].Cells[j].Value = Strarr[arrayX, arrayY];
- }
- }
- }
如果不需要覆盖检查,代码会简短一些
Winform-DataGridView 实现如Excel的粘贴复制的更多相关文章
- winform DataGridView 导出到Excel表格 分类: WinForm 2014-07-04 10:48 177人阅读 评论(0) 收藏
public bool ExportDataGridview(DataGridView gridView) { if (gridView.Rows.Count ...
- Winform DataGridView直接导出Excel
/// <summary> /// 导出excel /// </summary> /// <param name="fileName">导出文件 ...
- [WinForm]dataGridView导出到EXCEL
方法一: SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Execl files (*.xls)|*.xls"; ...
- C# winform DataGridView 常见属性
C# winform DataGridView 属性说明① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判断新增行 ⑤ 行的用户删除操作的自定义 ⑥ 行.列的隐藏和删 ...
- 关于C# Winform DataGridView 设置DefaultCellStyle无效的原因与解决方案
上周在开发Winform 项目中,我曾遇到一个看似简单,但一直都没有解决的问题,那就是:设置winform DataGridView控件的行DefaultCellStyle,但却没有任何变化,我也曾求 ...
- 从 Excel 表格粘贴到 浏览器表格中
从 Excel 表格粘贴到 浏览器表格中 由于 Excel 用途广泛,所以在导入时用到很多. 但是更多人的喜欢使用复制粘贴. 在网上找了一圈有找到一个开源项目,可以将 Excel 粘贴到 HTML 中 ...
- 在Excel中粘贴时怎样跳过隐藏行
http://www.excel123.cn/Article/exceljichu/201203/932.html 有时在筛选后需要将其他区域中的连续行数据复制粘贴到筛选区域,以替换筛选后的数据.由于 ...
- js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中(转)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- DataGridView导出到Excel的三个方法
#region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </s ...
随机推荐
- jQuery插件开发(转)
jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ...
- Android课程---如何用网格视图做出手机桌面APP
activity_test.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmln ...
- 第一个python程序
一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...
- PAT (Basic Level) Practise 1040 有几个PAT(DP)
1040. 有几个PAT(25) 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 字符串APPAPT中包含了两个单 ...
- Mac 安装activate-power-mode atom
Mac 安装activate-power-mode atom 标签: atommac 2015-12-02 14:53 308人阅读 评论(0) 收藏 举报 分类: git(2) 版权声明:本文为 ...
- 别再为了iOS新系统设备而重新安装一个新版Xcode了.其实我们可以添加版本支持
众所周知,Xcode7.3的代码补全是有问题的 如导入自定义类之后,在代码中并不会补全相应的类名... 但Xcode7.2是没有这个问题的,但很多时候我们自己的设备都升级到了iOS9.3.X系统,导 ...
- Flink – window operator
参考, http://wuchong.me/blog/2016/05/25/flink-internals-window-mechanism/ http://wuchong.me/blog/201 ...
- 使用git@osc管理现有项目
首先安装git和powershell集成git工具 参考 http://www.cnblogs.com/kreo/p/4685988.html 打开windows powershell,进入项目目录, ...
- Java 枚举7常见种用法
DK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: ...
- fullpage 插件学习心得
fullpage.js 是一个基于jquery 的插件,它能够轻松的制作出高大上的全屏网站,主要功能有; 1.支持鼠标滚动 2.支持前进后退和键盘控制 3.多个回调函数 4.支持 CSS3 动画 5. ...