HTML5技术

记录Winform开发过程中遇到的情况 - 神雕爱大侠

字号+ 作者:H5之家 来源:H5之家 2017-03-18 10:03 我要评论( )

前两天开发了个Winform操作Excel和数据库的一个小程序,把Winform的一些东西又给捡了起来,当中又学到了一些新的东西, 特来写出来留作纪念。 一、CSKIN 美化框架的使用 刚开始做的时候,发现Winform的界面是有点丑了,但又不想换成WPF,所以就找到了这个框

  前两天开发了个Winform操作Excel和数据库的一个小程序,把Winform的一些东西又给捡了起来,当中又学到了一些新的东西,特来写出来留作纪念。

  一、CSKIN美化框架的使用

  刚开始做的时候,发现Winform的界面是有点丑了,但又不想换成WPF,所以就找到了这个框架,挺好用的,下载一个dll,

引用到项目里就好了。具体步骤:

  ①在其官网下载压缩包,,其内容文件如下。

  

  ②在VS的工具箱里新建个组,然后直接把下载中的一个dll文件给拖进去(这里我引用的是CSkin 4.0下的CSkin.dll),

就算引用完成,之后这个组里就会有这个框架里所带的控件。它的使用方法和winform里的控件都一样,这一点还是挺方便的。

  

 

    
  具体的使用方法见使用教程,里面说的很清楚。,边一张图便是美化过后的界面。

  

   

  

  

 

二、Aspose.Cells,DataTable,DataGridView的使用。

  这次因为有一个功能是显示Excel的内容到DataGridView上,虽然知道操作Excel有很多方法,但是用着感觉都不是太好。这次找到了一个操作Excel比较好的插件【Aspose.Cells】。听说是兼容性比较好,什么wps,office 07,13的都没问题,而且代码写得也比较少。 下面是一段Excel导出到DataTable的代码。

获取excel的内容到Datatable param name static DataTable GetImportExcelDataTable(string fileName) { Workbook workbook = new Workbook(fileName); Worksheet sheet ; Cells cells = sheet.Cells; //将表中的信息转到datatable DataTable table = cells.ExportDataTable(1,0,cells.MaxRow,6); return RemoveEmpty( table); } 去除DataTable中整行都是空的数据 param name static DataTable RemoveEmpty(DataTable dt) { List<DataRow> removelist = new List<DataRow>(); for (int i = 0; i < dt.Rows.Count; i++) { bool IsNull = true; for (int j = 0; j < dt.Columns.Count; j++) { .ToString().Trim())) { IsNull = false; } } if (IsNull) { removelist.); } } for (int i = 0; i < removelist.Count; i++) { dt.Rows.Remove(removelist); } return dt; }

View Code

   之后,要将datatable里的内容绑定到DataGridView上,我要改变显示的列名,我去设置DataGridView的上的内容,试了很长时间,也没成功,最后发现想要改变列名,的设置DataTable上的列名,之后再绑定到DataGridView。

OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel|*.xls;*.xlsx"; if (file.ShowDialog() == DialogResult.OK) { string excelName = file.FileName; DataTable table = ExcelHelper.GetImportExcelDataTable(excelName); .ColumnName = "酒店名称"; .ColumnName = "酒店编号"; .ColumnName = "员工姓名"; .ColumnName = "手机号"; .ColumnName = "状态"; .ColumnName = "邮箱"; dataGridView1.DataSource = table; dataGridView1.Columns.FillWeight = 40; //这个是设置列宽的 }

  还有一个是给DataGridView设置编号,这个也是有必要的,先找到RowPostPaint这个事件,之后在事件里写方法,之后DataGridView就能存在编号。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 没有功能需求设计文档?对不起,拒绝开发! - CharlieChu

    没有功能需求设计文档?对不起,拒绝开发! - CharlieChu

    2017-03-16 13:04

  • Ionic2 开发笔记(1)ionic2 +angular2搭建 - 早上~得~喝粥

    Ionic2 开发笔记(1)ionic2 +angular2搭建 - 早上~得~喝粥

    2017-03-13 16:00

  • 使用Visual Studio 2017作为Linux C++开发工具 - 星夜落尘

    使用Visual Studio 2017作为Linux C++开发工具 - 星夜落尘

    2017-03-12 14:01

  • 推荐15个很优秀的跨平台的移动开发工具 - 梦想天空(山边小溪)

    推荐15个很优秀的跨平台的移动开发工具 - 梦想天空(山边小溪)

    2017-03-12 13:02

网友点评
s