数据导出为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
#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(未完)的更多相关文章
- C#大量数据导出到Excel(转)
工作过程中经常会用到将数据导出到Excel中,一般情况下需要导出的数据都是几百几千条或者上万条,这都没有什么问题,但有时候会遇到特殊的需求,客户要求把几十万条甚至上百万条的数据导出到Excel中,这就 ...
- DataTable数据导出到Excel,并发送到客户端进行下载
本代码实现思路是:页面显示和导出分开,导出的数据和用于页面显示的是同一查询数据方式,所以也是同样的数据,只是在导出数据时从数据库重新捞了一次数据.此导出数据方式会先将数据保存到Excel中,然后将创建 ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
- 将C1Chart数据导出到Excel
大多数情况下,当我们说将图表导出到Excel时,意思是将Chart当成图片导出到Excel中.如果是这样,你可以参考帮助文档中保存和导出C1Chart章节. 不过,也有另一种情况,当你想把图表中的数据 ...
- vb.net-三种将datagridview数据导出为excel文件的函数
第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll office.dll #Region "导出excel函数 ...
- 数据导出至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; ...
- 数据导出到Excel中
自己修改后的一个数据导出到Excel的方法,粘出来与大家共享. 只需要将 System.Web.HttpContext.Current.Response.Charset = ...
- asp.net将数据导出到excel
本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...
- 将datagrid中数据导出到excel中 -------<<工作日志2014-6-6>>
前台datagrid数据绑定 #region 导出到excel中 /// <summary> /// 2014-6-6 /// </summary> / ...
随机推荐
- SSH-struts2的异常处理
在学习j2se的时候学习过利用java的exception类去处理异常.在struts2框架中也提供了对于异常的处理.简单说就是当Action发生异常时.能够在struts2.xml文件里进行配置,将 ...
- Android一些网站介绍
1.开源镜像: Android SDK在线更新镜像服务器 中国科学院开源协会镜像站地址: IPV4/IPV6: http://mirrors.opencas.cn 端口:80 IPV4/IPV6: h ...
- JavaScript全局属性/函数
JavaScript 全局属性和方法可用于创建Javascript对象. JavaScript 全局属性 属性 描述 Infinity 代表正的无穷大的数值. NaN 指示某个值是不是数字值. und ...
- NTFS文件系统的单个文件最大到底有多大?
于NTFS文件系统的单个文件最大到底有多大? 闲来无事突然想到这个问题,到网上搜索了一下也没有一个固定的解释. 于是到微软官方知识库去寻找答案: 注意:基础硬件限制可能会对任何文件系统施加额外的分区大 ...
- 【148】DevExpress相关控件使用
---------------------------------------------------------------------------------------------------- ...
- 用nginx进行同一个服务器下多域名的负载均衡配置
用nginx进行同一个服务器下多域名的负载均衡配置 Nginx进行http负载均衡的模块是upstream Upstream可以进行多个配置,这样的话可以灵活的配置站点,但是注意的是upstream后 ...
- E20171102-E
segment n. 环节; 部分,段落; [计算机] (字符等的) 分段; [动物学] 节片; distinct adj. 明显的,清楚的; 卓越的,不寻常的; 有区别的; 确切的;
- E20170528-ts
partial adj. 部分的; 偏爱的; 偏袒的; 钟爱的; form n. 表格; 方式; 形状,形式; 外形 annotate vt. 注解,注释; n. 注释者; annotat ...
- XML消息解析_php
初识php——微信消息处理 <?php $test = new weixin(); $test->Message(); class weixin{ public function Mess ...
- 【转】20道Spring Boot面试题
面试了少量人,简历上都说自己熟习 Spring Boot, 或者者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总 ...