更多详细内容

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

 #region 09-获取导出数据
/// <summary>
/// 09-获取导出数据
/// </summary>
/// <param name="student">用来接收用户信息(涵盖多条件)</param>
/// <param name="dateStart">筛选的起始时间</param>
/// <param name="dateEnd">筛选的结束时间</param>
/// <returns></returns>
public List<student> GetStudentList(student student, string dateStart, string dateEnd)
{
try
{
//1.获取数据源
var data = db.Set<student>().Where(u => true); //2.过滤查询
//2.1对学生姓名进行查询
if (!String.IsNullOrEmpty(student.name))
{
data = data.Where(u => u.name.Contains(student.name));
}
//2.2对学生性别进行查询
if (!String.IsNullOrEmpty(student.sex))
{
data = data.Where(u => u.sex == student.sex);
}
//2.3对学生年龄进行查询
if (!String.IsNullOrEmpty(student.age))
{
data = data.Where(u => u.age.Contains(student.age));
}
//2.4对学生记录时间段进行查询
if ((!String.IsNullOrEmpty(dateStart)) && (!String.IsNullOrEmpty(dateEnd)))
{
DateTime dateS = Convert.ToDateTime(dateStart);//开始时间
DateTime dateE = Convert.ToDateTime(dateEnd);//结束时间
data = data.Where(u => u.dataTime >= dateS && u.dataTime <= dateE);
}
//3.返回结果数据
var list = data.OrderByDescending(u => u.dataTime).ToList();
return list;
}
catch (Exception ex)
{
FileOperateHelp.WriteFile("E:/ErrorLog333.txt", ex.Message);
}
return new List<student>();
}
#endregion #region 10-导出学生信息方法
public void ExportStudentExcel(List<student> studentList, out string pathFileName)
{
#region 创建存放Excel的文件夹、文件
//创建存放Excel的文件夹
string path = Server.MapPath("~/Upload/Excel/BackFee/");
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx";
pathFileName = path + fileName; //如果上传目录不存在就创建
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
} FileInfo newFile = new FileInfo(pathFileName);
if (newFile.Exists)
{
newFile.Delete();
newFile = new FileInfo(pathFileName);
}
#endregion //创建工作簿和工作表
using (ExcelPackage package = new ExcelPackage(newFile))
{
ExcelWorksheet workSheet = package.Workbook.Worksheets.Add("sheet1"); #region 添加表头
/*添加表头*/
workSheet.InsertRow(, );
using (var range = workSheet.Cells[, , , ])
{
range.Merge = true;//合并单元格
range.Style.Font.SetFromFont(new Font("Britannic Bold", , FontStyle.Regular));//为字体设置样式
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;//水平居中
range.Style.Fill.PatternType = ExcelFillStyle.Solid;
range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(, , ));//设置背景色
range.Style.Font.Color.SetColor(Color.Black);//字体颜色
range.Value = "学生信息统计表";
}
#endregion #region 设置列宽
//设置列宽
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
#endregion #region 设置标题
/*设置标题*/
workSheet.Cells[, ].Value = "学生姓名";
workSheet.Cells[, ].Value = "性别";
workSheet.Cells[, ].Value = "年龄";
workSheet.Cells[, ].Value = "自我介绍";
workSheet.Cells[, ].Value = "填写时间";
#endregion using (var range = workSheet.Cells[, , , ])
{
range.Style.Font.Bold = true;//设置字体为粗体
range.Style.Fill.PatternType = ExcelFillStyle.Solid;
range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);//设置背景颜色
range.Style.Font.Color.SetColor(Color.White);//设置字体颜色
//range.AutoFilter = true;
} #region 设置单元格内容
/*设置单元格内容*/
int row = ;
foreach (student item in studentList)
{ workSheet.Cells[row, ].Value = item.name;
workSheet.Cells[row, ].Value = item.sex;
workSheet.Cells[row, ].Value = item.age;
workSheet.Cells[row, ].Value = item.content;
workSheet.Cells[row, ].Value = item.dataTime.ToString();
workSheet.Cells[row, ].Style.Numberformat.Format = "yyyy-MM-dd";
workSheet.Cells[row, , row, ].Style.WrapText = true;//自动换行
row++;
}
#endregion workSheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中
//workSheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中
package.Save();
}
}
#endregion
  #region 08-导出学生信息
/// <summary>
///08-导出学生信息
/// 【下载到本地】
/// </summary>
/// <param name="student">用来接收用户信息(涵盖多条件)</param>
/// <param name="dateStart">筛选的起始时间</param>
/// <param name="dateEnd">筛选的结束时间</param>
/// <returns></returns>
public FileResult DownLoadExcel(student student, string dateStart, string dateEnd)
{
List<student> studentList = GetStudentList(student, dateStart, dateEnd);
string pathFileName = string.Empty;
ExportStudentExcel(studentList, out pathFileName);
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx"; return File(pathFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
#endregion

导出学生信息

 #region 09-获取导出数据
/// <summary>
/// 09-获取导出数据
/// </summary>
/// <param name="student">用来接收用户信息(涵盖多条件)</param>
/// <param name="dateStart">筛选的起始时间</param>
/// <param name="dateEnd">筛选的结束时间</param>
/// <returns></returns>
public List<student> GetStudentList(student student, string dateStart, string dateEnd)
{
try
{
//1.获取数据源
var data = db.Set<student>().Where(u => true); //2.过滤查询
//2.1对学生姓名进行查询
if (!String.IsNullOrEmpty(student.name))
{
data = data.Where(u => u.name.Contains(student.name));
}
//2.2对学生性别进行查询
if (!String.IsNullOrEmpty(student.sex))
{
data = data.Where(u => u.sex == student.sex);
}
//2.3对学生年龄进行查询
if (!String.IsNullOrEmpty(student.age))
{
data = data.Where(u => u.age.Contains(student.age));
}
//2.4对学生记录时间段进行查询
if ((!String.IsNullOrEmpty(dateStart)) && (!String.IsNullOrEmpty(dateEnd)))
{
DateTime dateS = Convert.ToDateTime(dateStart);//开始时间
DateTime dateE = Convert.ToDateTime(dateEnd);//结束时间
data = data.Where(u => u.dataTime >= dateS && u.dataTime <= dateE);
}
//3.返回结果数据
var list = data.OrderByDescending(u => u.dataTime).ToList();
return list;
}
catch (Exception ex)
{
FileOperateHelp.WriteFile("E:/ErrorLog333.txt", ex.Message);
}
return new List<student>();
}
#endregion

获取导出数据

 #region 10-导出学生信息方法
public void ExportStudentExcel(List<student> studentList, out string pathFileName)
{
#region 创建存放Excel的文件夹、文件
//创建存放Excel的文件夹
string path = Server.MapPath("~/Upload/Excel/BackFee/");
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".xlsx";
pathFileName = path + fileName; //如果上传目录不存在就创建
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
} FileInfo newFile = new FileInfo(pathFileName);
if (newFile.Exists)
{
newFile.Delete();
newFile = new FileInfo(pathFileName);
}
#endregion //创建工作簿和工作表
using (ExcelPackage package = new ExcelPackage(newFile))
{
ExcelWorksheet workSheet = package.Workbook.Worksheets.Add("sheet1"); #region 添加表头
/*添加表头*/
workSheet.InsertRow(, );
using (var range = workSheet.Cells[, , , ])
{
range.Merge = true;//合并单元格
range.Style.Font.SetFromFont(new Font("Britannic Bold", , FontStyle.Regular));//为字体设置样式
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous;//水平居中
range.Style.Fill.PatternType = ExcelFillStyle.Solid;
range.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(, , ));//设置背景色
range.Style.Font.Color.SetColor(Color.Black);//字体颜色
range.Value = "学生信息统计表";
}
#endregion #region 设置列宽
//设置列宽
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
workSheet.Column().Width = ;
#endregion #region 设置标题
/*设置标题*/
workSheet.Cells[, ].Value = "学生姓名";
workSheet.Cells[, ].Value = "性别";
workSheet.Cells[, ].Value = "年龄";
workSheet.Cells[, ].Value = "自我介绍";
workSheet.Cells[, ].Value = "填写时间";
#endregion using (var range = workSheet.Cells[, , , ])
{
range.Style.Font.Bold = true;//设置字体为粗体
range.Style.Fill.PatternType = ExcelFillStyle.Solid;
range.Style.Fill.BackgroundColor.SetColor(Color.DarkBlue);//设置背景颜色
range.Style.Font.Color.SetColor(Color.White);//设置字体颜色
//range.AutoFilter = true;
} #region 设置单元格内容
/*设置单元格内容*/
int row = ;
foreach (student item in studentList)
{ workSheet.Cells[row, ].Value = item.name;
workSheet.Cells[row, ].Value = item.sex;
workSheet.Cells[row, ].Value = item.age;
workSheet.Cells[row, ].Value = item.content;
workSheet.Cells[row, ].Value = item.dataTime.ToString();
workSheet.Cells[row, ].Style.Numberformat.Format = "yyyy-MM-dd";
workSheet.Cells[row, , row, ].Style.WrapText = true;//自动换行
row++;
}
#endregion workSheet.Cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;//水平居中
//workSheet.Cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;//垂直居中
package.Save();
}
}
#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]);
}

数据导出为Excel(未完)的更多相关文章

  1. C#大量数据导出到Excel(转)

    工作过程中经常会用到将数据导出到Excel中,一般情况下需要导出的数据都是几百几千条或者上万条,这都没有什么问题,但有时候会遇到特殊的需求,客户要求把几十万条甚至上百万条的数据导出到Excel中,这就 ...

  2. DataTable数据导出到Excel,并发送到客户端进行下载

    本代码实现思路是:页面显示和导出分开,导出的数据和用于页面显示的是同一查询数据方式,所以也是同样的数据,只是在导出数据时从数据库重新捞了一次数据.此导出数据方式会先将数据保存到Excel中,然后将创建 ...

  3. 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!

    一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...

  4. 学习笔记 DataGridView数据导出为Excel

    DataGridView数据导出为Excel   怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...

  5. 将C1Chart数据导出到Excel

    大多数情况下,当我们说将图表导出到Excel时,意思是将Chart当成图片导出到Excel中.如果是这样,你可以参考帮助文档中保存和导出C1Chart章节. 不过,也有另一种情况,当你想把图表中的数据 ...

  6. vb.net-三种将datagridview数据导出为excel文件的函数

    第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll  office.dll #Region "导出excel函数 ...

  7. 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

    using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...

  8. 数据导出到Excel中

    自己修改后的一个数据导出到Excel的方法,粘出来与大家共享. 只需要将             System.Web.HttpContext.Current.Response.Charset =   ...

  9. asp.net将数据导出到excel

    本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...

  10. 将datagrid中数据导出到excel中 -------<<工作日志2014-6-6>>

    前台datagrid数据绑定 #region 导出到excel中    /// <summary>    /// 2014-6-6    /// </summary>    / ...

随机推荐

  1. JavaScriptSerializer 序列号datatime时少了8小时

    有人说主要的因素是在于JSON格式不直接支持日期和时间. 简单一点处理办法是ToLocalTime()一下:dt = dt.ToLocalTime(); 参考http://blog.csdn.net/ ...

  2. 2016/2/22 1、Window.document对象

    1.Window.document对象 一.找到元素: docunment.getElementById("id"):根据id找,最多找一个:     var a =docunme ...

  3. mysqld 与 python 邮件监控脚本 内存消耗对比

    top - 21:38:40 up 1 day, 10:38, 5 users, load average: 0.00, 0.01, 0.17Tasks: 88 total, 1 running, 8 ...

  4. 【Android】Android输入子系统【转】

    本文转载自:https://www.cnblogs.com/lcw/p/3506110.html Linux输入子系统回顾 1:为什么要回顾linux输入子系统?这个问题后面自然就知道了 1.linu ...

  5. 10.6 Graph Test

    一套图论的练习题,各个方面都有挺好的 第一第二题有一定难度(来源POI),第三第四题比较水 但我并没考好 T1 特工 szp T2 洞穴 zaw T3 最短路 line T4 最小差异值 dvalue

  6. POJ2069 最小球覆盖 几何法和退火法

    对这种问题不熟悉的读者 可以先去看一看最小圆覆盖的问题 ZOJ1450 现在我们来看最小球覆盖问题POJ2069 题目很裸,给30个点 求能覆盖所有点的最小球的半径. 先给出以下几个事实: 1.对于一 ...

  7. bzoj4506: [Usaco2016 Jan]Fort Moo(暴力)

    4506: [Usaco2016 Jan]Fort Moo Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 145  Solved: 104[Submi ...

  8. TestNG设置用例循环执行

    曾经做过一需求,需要单个集成测试用例循环执行N次,或许你会说for循环就可以了,这当然是可以的.那有没有逼格更高点的方法,当然也是有的.下面我们就说下使用TestNG注解功能实现用例的循环执行. 1. ...

  9. RecycleView的简单应用

    recycleView在界面展示上类似于ListView,但不同于ListView的是它展示的每一个item类型可以不一样:    RecycleAdapter类: public class Recy ...

  10. daily_journal_3 the game of thrones

    昨晚追完了最爱的美剧(the game of thrones),哇,看到结局有点崩溃.果然还是美帝淫民开放,各种乱伦,在七夕收到的万点暴击就祝天下有情人就像剧中一样终是血亲. 昨天算是完成了git的复 ...