导出思路:
第一步:引用NPOI插件到项目中(放在bin目录下面 引入要用浏览的方式)
第二步:筛选导出数据(表格数据查询)
第三步:获取工作簿,工作表,
第四步:构建表头(这里表头需要人为构建)导出数据
第五步:保存导出的Excel文件。(使用IO流)
导出分两种
(1)在已有的模板上导出数据;(前提:必须要提前构建好模板)
(2)直接导出数据(自己构建表头和数据)
第二步:(1)在控制器写一个查询方法 参数(分页,时间段)
把要导出的数据通过linq查询出来 分割时间段,获取总数,进行分页,返回数据!
视图页面:加载模块 渲染日历,表格
渲染日历: laydate.render({
elem: '#ID’,
type: “date”,
range: true,
trigger: ‘click’//解决Laydate绑定input元素一闪而过的问题
});
//表格的初始化——模板
tabARData = layuiTable.render({
elem: “#id”, //table的ID HTML元素的ID
//url: “SelectTicketById”,//数据接口 方法的路径 --由于需要进行条件查询,url这里不用指定
data: [],//多条件查询,先初始化空数据
cols: [
[
{ title: ‘序号’, type: ‘numbers’ }, //序号列,title设定标题名称
{ title: ‘’, field: ‘’, align: ‘center’, width: 170 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 200 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 100 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 100 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 100 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 150 },
{ title: ‘’, field: ‘’, align: ‘center’, width: 100 },
{ title: ‘’, field: ‘’, align: ‘center’ },
]
],
page: {
limit: 10, //指定每页显示的条数
limits: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], //每页条数的选择项
}, //开启分页
});
//调用查询方法
searchARData();——另外调用一个方法重载时调用数据请求
//预览(条件筛选数据)
function searchARData() {
var startEndDate = $("#id").val();
tabARData.reload({
url: ‘