导出
先在控制器中创建一个新方法,查询到数据
public ActionResult
SelectARDate(LayuiTablePage layuiTablePage, string startEndDate){}
查询总行数int totalRow = query.Count();
分页查询数据List listData =
query.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
然后在筛选要导出的数据 同样也是创建一个新方法,写查询语句。
//1-检查模板文件是否存在
//Server.MapPath 将相对的路径转为实际的物理路径
string
templatePath = Server.MapPath("~/Document/ARDataTemplate.xls");
//判断模板是否存在
if (!System.IO.File.Exists(templatePath))
//如果不存在,就返回失败信息
return Content("导出失败,请联系网站管理员");
}
可以设置导出后的Excel的表格样式。
最后在js中导出Excel
导入
首先,打开导入的模态窗体,要先重置表单,下载导入的模板文件
创建一个Excel模板,用来创输数据,模板判断导入的数据是否是Excel的表格,通过页面传输过来的数据,开始封装数据,首先开始获取模板路径,然后判断模板是否存在,再获取文件名称,最后返回页面。
然后将导入的Excel表格的数据保存到session中,封装页面传过来的数据表格,获取一个全局变量,然后获取读取的文件,把文件装换为二进制数组,二进制数组转成,二进制数组转换成转成内存流,利用NPOI把内存流中的数据读取成Excel表格,然后把session中的ImportExcel移除避免残留以前数据,判断页面传过来的文件是否为Excel表格,获取文件的后缀,然后将内存流装换成工作表,再查询判断工作簿中是否有工作表,判断表格中是否有数据,获取标题行,获取表格的基本数据,然后读取一下Excel表格中的数据,声明变量,记录数据,然后保存数据,查询出数据的表格内容,创建对象保存数据,然后返回页面。