更多详细内容

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. html css 仿微信底部自己定义菜单

    近期几个月一直从事微信开发,从刚開始的懵懂渐渐成长了一点. 今天认为微信底部自己定义菜单,假设能在html的页面上也能显示就好了. 记得曾经看过某个网页有类似效果.查找了该网页的css.  ok如今h ...

  2. 64位win2008下IIS未开启32位支持导致DLL无法加载问题

    部署一个WEB项目,在本机.本地服务器都没有问题,但部署到远程服务器以后,提示有个DLL无法加载: Server Error in '/' Application. Could not load fi ...

  3. ios31--NSThread

    // // ViewController.m // 03-掌握-NSThread基本使用 #import "ViewController.h" #import "XMGT ...

  4. Java 系统工具类 —— System、Scanner、Runtime

    0. 静态成员变量 System.out:是 PrinterStream 型变量: public final class System { ... public final static InputS ...

  5. 4.7.5 Efficient Construction of LALR Parsing Tables

    4.7.5 Efficient Construction of LALR Parsing Tables There are several modifications we can make to A ...

  6. JSSDK使用步骤

    绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 备注:登录后可在“开发者中心”查看对应的接口权限. 引入js文件 在需要调用JS接口的页面引入如下JS文件,( ...

  7. 转贴:CSS伪类与CSS伪元素的区别及由来具体说明

    关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...

  8. 使用AngularJS创建应用的5个框架(转)

    原文地址:http://www.php100.com/html/dujia/2015/0206/8580.html 本文由PHP100中文网编译,转载请看文末的转载要求,谢谢合作! 如果你计划使用An ...

  9. 盘点国内网站常用的一些 CDN 公共库加速服务(转载)

    百度CND jQuery 地址:<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></scri ...

  10. bzoj 1755: [Usaco2005 qua]Bank Interest【模拟】

    原来强行转int可以避免四舍五入啊 #include<iostream> #include<cstdio> using namespace std; int r,y; doub ...