DataGridViewEx扩展之合计行,增加最后一行的汇总行,支持列的聚合函数,思想碰撞才能互相提高

ireenter 2012-02-01 09:33:04
下载地址 http://download.csdn.net/detail/ireenter/4038390
新增功能参见第10条之描述,最后更新日期2012.1.19. VS2010 C#全部源码及样例。
------------------------------------------

*调整导出及打印的格式与显示一致;合计行,详细参见第10条修正功能,全部源码及示例。

* 文 件 名:DataGridViewEx.cs

* 创 建 人:明振居士

* Email:nzj.163@163.com qq:342155124

* 创建时间:2010-06-01

* 最后修改时间:2012-1-19 增加第10条所示的功能;修改了列头超过26列的错误,导出excel为数组方式,速度更快,导出的单元格设置为文本格式。

* 标 题:用户自定义的DataGridView控件

* 功能描述:扩展DataGridView控件功能

* 扩展功能:

* 1、搜索Search(); 有两个同明方法,参数不同 F3为快捷键继续向下搜索

* 2、用TreeView HeadSource 来设置复杂的标题样式,如果某个节点对应的显示列隐藏,请将该节点Tag设置为hide,隐藏列的排列位置与绑定数据元列位置对应,树叶节点的顺序需要与结果集的列顺序一致

* 3、通过反射导出Excel,无需引用com组件,方法ExportExcel() ,不受列数的限制,表头同样可以导出,AutoFit属性设置导出excel后是否自动调整单元格宽度

* 导出内容支持自定义的:Title List<string> Header List<string> Footer,支持在设计时值的设定,窗口关闭时Excel资源自动彻底释放

* 4、可以自己任意设定那些列显示及不显示,通过调用方法SetColumnVisible()实现。

* 5、设置列标题SetHeader(),设置列永远可见AlwaysShowCols(),设置列暂时不可见HideCols()

* 注意,当使用了TreeView作为复杂Header时,不要使用本方法,Header显示的内容根据treeview内容而显示

* 6、列宽度及顺序的保存SaveGridView(),加载LoadGridView()

* 7、支持所见即所得的打印功能,举例如下

* private void button5_Click(object sender, EventArgs e)

{

DGVPrinter printer = new DGVPrinter();

printer.PrintPreviewDataGridView(DataGridViewEx1);

}

* 8、自定义合并行与列,行合并用 MergeRowColumn 属性,列合并用MergeColumnNames属性,都可以定义多个列

* 9、行标号的设置 bool ShowRowNumber;

* 10、增加最后一行的汇总行,支持列的聚合函数,参见http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.[removed]v=VS.100).aspx

* 假设对id列显示“合计”字符,avgPrice进行平均值,total列显示合计,则对ComputeColumns增加三行内容:id,合计:;avgPrice,Avg(avgPrice);total,Sum(total)

* 如果需要对值进行格式控制,请实现beforeShow事件

* 增加了导出和打印对应的支持,所见即所得的对齐方应用于式导出及打印。
...全文
533 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ireenter 2012-02-06
  • 打赏
  • 举报
回复
刷新刷新,自己顶顶。
ireenter 2012-02-02
  • 打赏
  • 举报
回复
大家都上班了没有呢?
熙风 2012-02-01
  • 打赏
  • 举报
回复
LZ真是好,,分享了不少成果,,
MJ_dangerous 2012-02-01
  • 打赏
  • 举报
回复
good.

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧