zoukankan      html  css  js  c++  java
  • 数据导出为Excel(未完)

    更多详细内容

    view页面:

    function Download()
    {
    
    //多个查询条件
    dateStart = $("#j_dataTimeStart").datebox("getValue");
    dateEnd = $("#j_dataTimeEnd").datebox("getValue");
    name = $("#j_name").val();
    sex = $('#j_sex').val();
    
    window.location.href = "/Main/DownLoadExcel?dateStart=" + dateStart + "&dateEnd=" + dateEnd + "&name=" + name + "&sex=" + sex;
    }

    Controller

      1 #region 09-获取导出数据
      2 /// <summary>
      3 /// 09-获取导出数据
      4 /// </summary>
      5 /// <param name="student">用来接收用户信息(涵盖多条件)</param>
      6 /// <param name="dateStart">筛选的起始时间</param>
      7 /// <param name="dateEnd">筛选的结束时间</param>
      8 /// <returns></returns>
      9 public List<student> GetStudentList(student student, string dateStart, string dateEnd)
     10 {
     11 try
     12 {
     13 //1.获取数据源
     14 var data = db.Set<student>().Where(u => true);
     15 
     16 //2.过滤查询
     17 //2.1对学生姓名进行查询
     18 if (!String.IsNullOrEmpty(student.name))
     19 {
     20 data = data.Where(u => u.name.Contains(student.name));
     21 }
     22 //2.2对学生性别进行查询
     23 if (!String.IsNullOrEmpty(student.sex))
     24 {
     25 data = data.Where(u => u.sex == student.sex);
     26 }
     27 //2.3对学生年龄进行查询
     28 if (!String.IsNullOrEmpty(student.age))
     29 {
     30 data = data.Where(u => u.age.Contains(student.age));
     31 }
     32 //2.4对学生记录时间段进行查询
     33 if ((!String.IsNullOrEmpty(dateStart)) && (!String.IsNullOrEmpty(dateEnd)))
     34 {
     35 DateTime dateS = Convert.ToDateTime(dateStart);//开始时间
     36 DateTime dateE = Convert.ToDateTime(dateEnd);//结束时间
     37 data = data.Where(u => u.dataTime >= dateS && u.dataTime <= dateE);
     38 }
     39 //3.返回结果数据
     40 var list = data.OrderByDescending(u => u.dataTime).ToList();
     41 return list;
     42 }
     43 catch (Exception ex)
     44 {
     45 FileOperateHelp.WriteFile("E:/ErrorLog333.txt", ex.Message);
     46 }
     47 return new List<student>();
     48 }
     49 #endregion
     50 
     51 #region 10-导出学生信息方法
     52 public void ExportStudentExcel(List<student> studentList, out string pathFileName)
     53 {
     54 #region 创建存放Excel的文件夹、文件
     55 //创建存放Excel的文件夹
     56 string path = Server.MapPath("~/Upload/Excel/BackFee/");
     57 string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx";
     58 pathFileName = path + fileName;
     59 
     60 //如果上传目录不存在就创建
     61 if (!Directory.Exists(path))
     62 {
     63 Directory.CreateDirectory(path);
     64 }
     65 
     66 FileInfo newFile = new FileInfo(pathFileName);
     67 if (newFile.Exists)
     68 {
     69 newFile.Delete();
     70 newFile = new FileInfo(pathFileName);
     71 }
     72 #endregion
     73 
     74 //创建工作簿和工作表
     75 using (ExcelPackage package = new ExcelPackage(newFile))
     76 {
     77 ExcelWorksheet workSheet = package.Workbook.Worksheets.Add("sheet1");
     78 
     79 #region 添加表头
     80 /*添加表头*/
     81 workSheet.InsertRow(1, 1);
     82 using (var range = workSheet.Cells[1, 1, 1, 5])
     83 {
     84 range.Merge = true;//合并单元格
     85 range.Style.Font.SetFromFont(new Font("Britannic Bold", 18, FontStyle.Regular));//为字体设置样式
     86 range.Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;//水平居中
     87 range.Style.Fill.PatternType = ExcelFillStyle.Solid;
     88 range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(184, 204, 228));//设置背景色
     89 range.Style.Font.Color.SetColor(Color.Black);//字体颜色
     90 range.Value = "学生信息统计表";
     91 }
     92 #endregion
     93 
     94 #region 设置列宽
     95 //设置列宽
     96 workSheet.Column(1).Width = 20;
     97 workSheet.Column(2).Width = 20;
     98 workSheet.Column(3).Width = 20;
     99 workSheet.Column(4).Width = 20;
    100 workSheet.Column(5).Width = 20;
    101 workSheet.Column(6).Width = 20;
    102 workSheet.Column(7).Width = 20;
    103 workSheet.Column(8).Width = 25;
    104 #endregion
    105 
    106 #region 设置标题
    107 /*设置标题*/
    108 workSheet.Cells[2, 1].Value = "学生姓名";
    109 workSheet.Cells[2, 2].Value = "性别";
    110 workSheet.Cells[2, 3].Value = "年龄";
    111 workSheet.Cells[2, 4].Value = "自我介绍";
    112 workSheet.Cells[2, 5].Value = "填写时间";
    113 #endregion
    114 
    115 using (var range = workSheet.Cells[2, 1, 2, 5])
    116 {
    117 range.Style.Font.Bold = true;//设置字体为粗体
    118 range.Style.Fill.PatternType = ExcelFillStyle.Solid;
    119 range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);//设置背景颜色
    120 range.Style.Font.Color.SetColor(Color.White);//设置字体颜色
    121 //range.AutoFilter = true;
    122 }
    123 
    124 #region 设置单元格内容
    125 /*设置单元格内容*/
    126 int row = 3;
    127 foreach (student item in studentList)
    128 {
    129 
    130 workSheet.Cells[row, 1].Value = item.name;
    131 workSheet.Cells[row, 2].Value = item.sex;
    132 workSheet.Cells[row, 3].Value = item.age;
    133 workSheet.Cells[row, 4].Value = item.content;
    134 workSheet.Cells[row, 5].Value = item.dataTime.ToString();
    135 workSheet.Cells[row, 6].Style.Numberformat.Format = "yyyy-MM-dd";
    136 workSheet.Cells[row, 1, row, 10].Style.WrapText = true;//自动换行
    137 row++;
    138 }
    139 #endregion
    140 
    141 workSheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中
    142 //workSheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中
    143 package.Save();
    144 }
    145 } 
    146 #endregion
    View Code
     1  #region 08-导出学生信息
     2         /// <summary>
     3         ///08-导出学生信息
     4         /// 【下载到本地】
     5         /// </summary>
     6         /// <param name="student">用来接收用户信息(涵盖多条件)</param>
     7         /// <param name="dateStart">筛选的起始时间</param>
     8         /// <param name="dateEnd">筛选的结束时间</param>
     9         /// <returns></returns>
    10         public FileResult DownLoadExcel(student student, string dateStart, string dateEnd)
    11         {
    12             List<student> studentList = GetStudentList(student, dateStart, dateEnd);
    13             string pathFileName = string.Empty;
    14             ExportStudentExcel(studentList, out pathFileName);
    15             string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx";
    16 
    17             return File(pathFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
    18         }
    19         #endregion
    导出学生信息
     1 #region 09-获取导出数据
     2         /// <summary>
     3         /// 09-获取导出数据
     4         /// </summary>
     5         /// <param name="student">用来接收用户信息(涵盖多条件)</param>
     6         /// <param name="dateStart">筛选的起始时间</param>
     7         /// <param name="dateEnd">筛选的结束时间</param>
     8         /// <returns></returns>
     9         public List<student> GetStudentList(student student, string dateStart, string dateEnd)
    10         {
    11             try
    12             {
    13                 //1.获取数据源
    14                 var data = db.Set<student>().Where(u => true);
    15 
    16                 //2.过滤查询
    17                 //2.1对学生姓名进行查询
    18                 if (!String.IsNullOrEmpty(student.name))
    19                 {
    20                     data = data.Where(u => u.name.Contains(student.name));
    21                 }
    22                 //2.2对学生性别进行查询
    23                 if (!String.IsNullOrEmpty(student.sex))
    24                 {
    25                     data = data.Where(u => u.sex == student.sex);
    26                 }
    27                 //2.3对学生年龄进行查询
    28                 if (!String.IsNullOrEmpty(student.age))
    29                 {
    30                     data = data.Where(u => u.age.Contains(student.age));
    31                 }
    32                 //2.4对学生记录时间段进行查询
    33                 if ((!String.IsNullOrEmpty(dateStart)) && (!String.IsNullOrEmpty(dateEnd)))
    34                 {
    35                     DateTime dateS = Convert.ToDateTime(dateStart);//开始时间
    36                     DateTime dateE = Convert.ToDateTime(dateEnd);//结束时间
    37                     data = data.Where(u => u.dataTime >= dateS && u.dataTime <= dateE);
    38                 }
    39                 //3.返回结果数据
    40                 var list = data.OrderByDescending(u => u.dataTime).ToList();
    41                 return list;
    42             }
    43             catch (Exception ex)
    44             {
    45                 FileOperateHelp.WriteFile("E:/ErrorLog333.txt", ex.Message);
    46             }
    47             return new List<student>();
    48         }
    49         #endregion
    获取导出数据
     1 #region 10-导出学生信息方法
     2         public void ExportStudentExcel(List<student> studentList, out string pathFileName)
     3         {
     4             #region 创建存放Excel的文件夹、文件
     5             //创建存放Excel的文件夹
     6             string path = Server.MapPath("~/Upload/Excel/BackFee/");
     7             string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx";
     8             pathFileName = path + fileName;
     9 
    10             //如果上传目录不存在就创建
    11             if (!Directory.Exists(path))
    12             {
    13                 Directory.CreateDirectory(path);
    14             }
    15 
    16             FileInfo newFile = new FileInfo(pathFileName);
    17             if (newFile.Exists)
    18             {
    19                 newFile.Delete();
    20                 newFile = new FileInfo(pathFileName);
    21             }
    22             #endregion
    23 
    24             //创建工作簿和工作表
    25             using (ExcelPackage package = new ExcelPackage(newFile))
    26             {
    27                 ExcelWorksheet workSheet = package.Workbook.Worksheets.Add("sheet1");
    28 
    29                 #region 添加表头
    30                 /*添加表头*/
    31                 workSheet.InsertRow(1, 1);
    32                 using (var range = workSheet.Cells[1, 1, 1, 5])
    33                 {
    34                     range.Merge = true;//合并单元格
    35                     range.Style.Font.SetFromFont(new Font("Britannic Bold", 18, FontStyle.Regular));//为字体设置样式
    36                     range.Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;//水平居中
    37                     range.Style.Fill.PatternType = ExcelFillStyle.Solid;
    38                     range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(184, 204, 228));//设置背景色
    39                     range.Style.Font.Color.SetColor(Color.Black);//字体颜色
    40                     range.Value = "学生信息统计表";
    41                 }
    42                 #endregion
    43 
    44                 #region 设置列宽
    45                 //设置列宽
    46                 workSheet.Column(1).Width = 20;
    47                 workSheet.Column(2).Width = 20;
    48                 workSheet.Column(3).Width = 20;
    49                 workSheet.Column(4).Width = 20;
    50                 workSheet.Column(5).Width = 20;
    51                 workSheet.Column(6).Width = 20;
    52                 workSheet.Column(7).Width = 20;
    53                 workSheet.Column(8).Width = 25;
    54                 #endregion
    55 
    56                 #region 设置标题
    57                 /*设置标题*/
    58                 workSheet.Cells[2, 1].Value = "学生姓名";
    59                 workSheet.Cells[2, 2].Value = "性别";
    60                 workSheet.Cells[2, 3].Value = "年龄";
    61                 workSheet.Cells[2, 4].Value = "自我介绍";
    62                 workSheet.Cells[2, 5].Value = "填写时间";
    63                 #endregion
    64 
    65                 using (var range = workSheet.Cells[2, 1, 2, 5])
    66                 {
    67                     range.Style.Font.Bold = true;//设置字体为粗体
    68                     range.Style.Fill.PatternType = ExcelFillStyle.Solid;
    69                     range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);//设置背景颜色
    70                     range.Style.Font.Color.SetColor(Color.White);//设置字体颜色
    71                     //range.AutoFilter = true;
    72                 }
    73 
    74                 #region 设置单元格内容
    75                 /*设置单元格内容*/
    76                 int row = 3;
    77                 foreach (student item in studentList)
    78                 {
    79                   
    80                     workSheet.Cells[row, 1].Value = item.name;
    81                     workSheet.Cells[row, 2].Value = item.sex;
    82                     workSheet.Cells[row, 3].Value = item.age;
    83                     workSheet.Cells[row, 4].Value = item.content;
    84                     workSheet.Cells[row, 5].Value = item.dataTime.ToString();
    85                     workSheet.Cells[row, 6].Style.Numberformat.Format = "yyyy-MM-dd";
    86                     workSheet.Cells[row, 1, row, 10].Style.WrapText = true;//自动换行
    87                     row++;
    88                 }
    89                 #endregion
    90 
    91                 workSheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中
    92                 //workSheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中
    93                 package.Save();
    94             }
    95         } 
    96         #endregion
    导出学生信息方法

     <下拉框>

    ExcelRange range = worksheet.Cells[idxRow, idxCell];
    string strData = "北京,上海,广州";
    string[] Data = strData.Split(',');
    var val = worksheet.DataValidations.AddListValidation(range.Address);
    for (int idxV = 0; idxV < Data.Length; idxV++)
    {
    val.Formula.Values.Add(Data[idxV]);
    }

    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/9234392.html
Copyright © 2011-2022 走看看