zoukankan      html  css  js  c++  java
  • .Net开发复习与总结

    1.文件操作
      1.1递归目录,查找所有文件

      

     1 #region 递归目录路径
     2         private List<string> GetDirs(string path)
     3         {
     4             string[] dirs = Directory.GetDirectories(path);
     5             List<string> result = new List<string>();
     6             foreach(string dir in dirs)
     7             {
     8                 result.Add(dir);
     9             }
    10             if (dirs.Length > 0)
    11             {
    12                 foreach (string dir in dirs)
    13                 {
    14                    result.AddRange(GetDirs(dir));
    15                 }
    16             }
    17             return result;
    18         }
    19         #endregion
    20         
    21         //调用
    22              List<string> strdirs = GetDirs(path);
    23                 List<string> strfiles = new List<string>();
    24                 foreach (string dir in strdirs)
    25                 {
    26                     foreach (string file in Directory.GetFiles(dir,"*汇总*.xls"))
    27                     {
    28                         strfiles.Add(file);
    29                     }
    30                 }

      1.2 获取文件目录与文件名:

    1  #region 获取文件路径设置
    2         private List<string> GetFileSet(string par_path)
    3         {
    4             List<string> result = new List<string>();
    5             result.Add(Path.GetDirectoryName(par_path));
    6             result.Add(Path.GetFileNameWithoutExtension(par_path));
    7             return result;
    8         }
    9         #endregion

    2.导入导出Excel与数据统计:

      1 using System;
      2 using System.Data;
      3 using System.Text;
      4 using System.Windows.Forms;
      5 using System.IO;
      6 using NPOI.HSSF.UserModel;
      7 using NPOI.SS.UserModel;
      8 using System.Collections.Generic;
      9 
     10  #region 处理数据
     11         private void BI(string mespath, string scorepath)
     12         {
     13             try
     14             {
     15                 List<string> fnames = GetFileSet(scorepath);
     16 
     17                 DataTable msg_table = new DataTable();
     18                 DataTable score_table = new DataTable();
     19                 //数据处理
     20                 //读取考生信息表
     21                 using (FileStream fs = File.OpenRead(mespath))
     22                 {
     23                     HSSFWorkbook msg_xls = new HSSFWorkbook(fs);
     24                     for (int i = 0; i < msg_xls.NumberOfSheets; i++)
     25                     {
     26                         ISheet sheet = msg_xls.GetSheetAt(i);
     27                         for (int j = 0; j <= sheet.LastRowNum; j++)
     28                         {
     29                             IRow row = sheet.GetRow(j);
     30                             if (j > 0)
     31                             {
     32                                 if (row != null)
     33                                 {
     34                                     DataRow t_row = msg_table.NewRow();
     35                                     for (int k = 0; k <= row.LastCellNum; k++)
     36                                     {
     37                                         ICell cell = row.GetCell(k);
     38                                         if (cell != null)
     39                                         {
     40                                             t_row[k] = cell.ToString().Trim();
     41                                         }
     42                                     }
     43                                     msg_table.Rows.Add(t_row);
     44                                 }
     45                             }
     46                             else
     47                             {
     48                                 if (row != null)
     49                                 {
     50                                     //表定义
     51                                     for (int k = 0; k <= row.LastCellNum; k++)
     52                                     {
     53                                         ICell cell = row.GetCell(k);
     54                                         if (cell != null)
     55                                         {
     56                                             msg_table.Columns.Add(new DataColumn(cell.StringCellValue, typeof(string)));
     57                                         }
     58                                     }
     59                                 }
     60                             }
     61                         }
     62                     }
     63                 }
     64                 //读取考生成绩表
     65                 using (FileStream fs = File.OpenRead(scorepath))
     66                 {
     67                     HSSFWorkbook msg_xls = new HSSFWorkbook(fs);
     68                     for (int i = 0; i < msg_xls.NumberOfSheets; i++)
     69                     {
     70                         ISheet sheet = msg_xls.GetSheetAt(i);
     71                         for (int j = 0; j <= sheet.LastRowNum; j++)
     72                         {
     73                             IRow row = sheet.GetRow(j);
     74                             if (j > 0)
     75                             {
     76                                 if (row != null)
     77                                 {
     78                                     DataRow t_row = score_table.NewRow();
     79                                     for (int k = 0; k <= row.LastCellNum; k++)
     80                                     {
     81                                         ICell cell = row.GetCell(k);
     82                                         if (cell != null)
     83                                         {
     84                                             t_row[k] = cell.ToString().Trim();
     85                                         }
     86                                     }
     87                                     score_table.Rows.Add(t_row);
     88                                 }
     89                             }
     90                             else
     91                             {
     92                                 if (row != null)
     93                                 {
     94                                     //表定义
     95                                     for (int k = 0; k <= row.LastCellNum; k++)
     96                                     {
     97                                         ICell cell = row.GetCell(k);
     98                                         if (cell != null)
     99                                         {
    100                                             score_table.Columns.Add(new DataColumn(cell.StringCellValue.Trim(), typeof(string)));
    101                                         }
    102                                     }
    103                                 }
    104                             }
    105                         }
    106                     }
    107                 }
    108                 DataTable res_table = new DataTable();
    109                 res_table.Columns.Add(new DataColumn("考号", typeof(string)));
    110                 res_table.Columns.Add(new DataColumn("姓名", typeof(string)));
    111                 res_table.Columns.Add(new DataColumn("身份证号码", typeof(string)));
    112                 res_table.Columns.Add(new DataColumn("执业类别", typeof(string)));
    113                 res_table.Columns.Add(new DataColumn("执业证书编号", typeof(string)));
    114                 res_table.Columns.Add(new DataColumn("资格证编号", typeof(string)));
    115                 res_table.Columns.Add(new DataColumn("总分", typeof(float)));
    116 
    117 
    118                 //进行数据统计
    119                 float failcount = 0;  //不及格人数
    120                 List<student_modele> failtable = new List<student_modele>(); //不及格名单
    121                 student_modele failstudent = null;
    122                 //进行数据处理
    123                 DataRow res_row = null;
    124                 for (int n = 0; n < score_table.Rows.Count; n++)
    125                 {
    126                     res_row = res_table.NewRow();
    127                     res_row["考号"] = score_table.Columns.Contains("考号") ? score_table.Rows[n]["考号"] : "";
    128                     res_row["姓名"] = score_table.Columns.Contains("姓名") ? score_table.Rows[n]["姓名"] : "";
    129                     res_row["身份证号码"] = score_table.Columns.Contains("身份证号码") ? score_table.Rows[n]["身份证号码"] : "";
    130                     res_row["执业类别"] = score_table.Columns.Contains("执业类别") ? score_table.Rows[n]["执业类别"] : "";
    131                     res_row["执业证书编号"] = score_table.Columns.Contains("执业证书编号") ? score_table.Rows[n]["执业证书编号"] : "";
    132                     res_row["资格证编号"] = score_table.Columns.Contains("资格证编号") ? score_table.Rows[n]["资格证编号"] : "";
    133                     res_row["总分"] = score_table.Columns.Contains("总分") ? score_table.Rows[n]["总分"] : 0;
    134 
    135                     if ((float)res_row["总分"] < 60)
    136                     {
    137                         failcount++;
    138                         failstudent = new student_modele();
    139                         failstudent.Num = res_row["考号"].ToString();
    140                         failstudent.Name = res_row["姓名"].ToString();
    141                         failstudent.PeopleNum = res_row["身份证号码"].ToString();
    142                         failstudent.Type = res_row["执业类别"].ToString();
    143                         failstudent.TypeNum = res_row["执业证书编号"].ToString();
    144                         failstudent.SeniorityNum = res_row["资格证编号"].ToString();
    145                         failstudent.Score=(float) res_row["总分"];
    146                         failtable.Add(failstudent);
    147                     }
    148                     res_table.Rows.Add(res_row);
    149                 }
    150                 this.Total_kryptonTextBox.Text += fnames[1] + "统计:
    ";
    151                 float per = 1 - failcount / res_table.Rows.Count;
    152                 this.Total_kryptonTextBox.Text += "合格率:"+per.ToString("p") + "
    ";
    153                 if (failcount > 0)
    154                 {
    155                     this.Total_kryptonTextBox.Text += "不合格名单:
    ";
    156                     for (int n = 0; n < failtable.Count; n++)
    157                     {
    158                         this.Total_kryptonTextBox.Text += failtable[n].Num + "
    ";
    159                     }
    160                 }
    161                 this.Total_kryptonTextBox.Text += "--------------------------------------------------------------------------
    ";
    162                     //导出Excel
    163                     using (FileStream fs = new FileStream(fnames[0] + "\" + fnames[1] + "_汇总.xls", FileMode.Create))
    164                     {
    165                         HSSFWorkbook result_xls = new HSSFWorkbook();
    166                         ISheet sheet = result_xls.CreateSheet(fnames[1]);
    167                         //创建行
    168                         IRow row = sheet.CreateRow(0);
    169                         for (int n = 0; n < res_table.Columns.Count; n++)
    170                         {
    171                             //单元格设置
    172                             ICell cell = row.CreateCell(n);
    173                             cell.SetCellValue(res_table.Columns[n].ColumnName);
    174                         }
    175                         //设置表头样式
    176                         var titlestyle = result_xls.CreateCellStyle();
    177                         titlestyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
    178                         //设置excel列宽
    179                         sheet.SetColumnWidth(0, 15 * 256);
    180                         sheet.GetRow(0).GetCell(0).CellStyle = titlestyle;
    181 
    182                         sheet.SetColumnWidth(1, 10 * 256);
    183                         sheet.GetRow(0).GetCell(1).CellStyle = titlestyle;
    184 
    185                         sheet.SetColumnWidth(2, 15 * 256);
    186                         sheet.GetRow(0).GetCell(2).CellStyle = titlestyle;
    187 
    188                         sheet.SetColumnWidth(3, 15 * 256);
    189                         sheet.GetRow(0).GetCell(3).CellStyle = titlestyle;
    190 
    191                         sheet.SetColumnWidth(4, 15 * 256);
    192                         sheet.GetRow(0).GetCell(4).CellStyle = titlestyle;
    193 
    194                         sheet.SetColumnWidth(5, 15 * 256);
    195                         sheet.GetRow(0).GetCell(5).CellStyle = titlestyle;
    196 
    197                         sheet.SetColumnWidth(6, 8 * 256);
    198                         sheet.GetRow(0).GetCell(6).CellStyle = titlestyle;
    199 
    200                         var style1 = result_xls.CreateCellStyle();
    201                         style1.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Right;
    202 
    203                         DataRow t_row = null;
    204                         for (int n = 0; n < res_table.Rows.Count; n++)
    205                         {
    206                             t_row = res_table.Rows[n];
    207                             row = sheet.CreateRow(n + 1);
    208                             for (int p = 0; p < t_row.ItemArray.Length; p++)
    209                             {
    210                                 ICell cell = row.CreateCell(p);
    211                                 cell.SetCellValue(t_row.ItemArray[p].ToString());
    212                                 switch (p)
    213                                 {
    214                                     case 0:
    215                                         cell.CellStyle = style1;
    216                                         break;
    217                                     case 1:
    218                                         cell.CellStyle = titlestyle;
    219                                         break;
    220                                     case 2:
    221                                         cell.CellStyle = style1;
    222                                         break;
    223                                     case 3:
    224                                         cell.CellStyle = titlestyle;
    225                                         break;
    226                                     case 4:
    227                                         cell.CellStyle = style1;
    228                                         break;
    229                                     case 5:
    230                                         cell.CellStyle = style1;
    231                                         break;
    232                                     case 6:
    233                                         cell.CellStyle = titlestyle;
    234                                         break;
    235                                 }
    236                             }
    237                         }
    238                         result_xls.Write(fs);
    239                     }
    240             }
    241             catch 
    242             {
    243                 errorlogs.Append("发生错误:成绩文件为:"+scorepath+"
    ");
    244             }
    245         }
    246         #endregion

    3.数据模型:

     1  #region 统计数据模型
     2      class student_modele
     3     {
     4         private string num = string.Empty;          //考号
     5         private string name = string.Empty;         //姓名
     6         private string peoplenum = string.Empty;    //身份证号
     7         private string type = string.Empty;         //职业类别
     8         private string typenum = string.Empty;      //职业证书编号
     9         private string senioritynum = string.Empty; //资格证编号
    10         private float score = 0;                    //总分
    11 
    12         public string Num
    13         {
    14             get { return num; }
    15             set { this.num=value;}
    16         }
    17 
    18         public string Name
    19         {
    20             get { return name; }
    21             set { this.name = value; }
    22         }
    23 
    24         public string PeopleNum
    25         {
    26             get { return peoplenum; }
    27             set {this.peoplenum=value;}
    28         }
    29 
    30         public string Type
    31         {
    32             get { return type; }
    33             set { this.type = value; }
    34         }
    35 
    36         public string TypeNum
    37         {
    38             get { return typenum; }
    39             set { this.typenum = value; }
    40         }
    41 
    42         public string SeniorityNum
    43         {
    44             get { return senioritynum; }
    45             set { this.senioritynum = value; }
    46         }
    47 
    48         public float Score
    49         {
    50             get { return score; }
    51             set { this.score = value; }
    52         }
    53     }
    54     #endregion
  • 相关阅读:
    前台Json格式中时间的格式转换
    存储过程
    自定义注解
    递归(累加)
    java操作符
    Markdown语法参考
    for表达式的循环执行顺序
    java形参与作用域
    java引用类型数组的创建方式
    学习总结之Log4NET
  • 原文地址:https://www.cnblogs.com/fangbaiyi/p/4530284.html
Copyright © 2011-2022 走看看