/**
* 导出Controller
*/
@RequiresPermissions("xxx:weeklightlimit:download")
@RequestMapping("/DownLoad")

//注意:关于权限问题必须将@RequestParam Map<String, Object> params放在HttpServletResponse response前,否则系统会报错:("msg":"数据权限接口,只能是Map类型参数,且不能为NULL","code":500})
public R DownLoad(@RequestParam Map<String, Object> params,HttpServletResponse response){
LimitService.downLoadList(params,response);
return R.ok();
}

//接口实现类

@DataFilter(subDept=true,user=false,tableAlias="a",deptId="dept_id",userId="user_id")
@Override
public void downLoadList(Map<String, Object> params,HttpServletResponse response) {
try {
String title="参数信息.xlsx";
XSSFWorkbook workbook = new XSSFWorkbook();
response.setCharacterEncoding("utf-8");
//以下设置格式
response.setHeader("conent-type", "application/octet-stream");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("charset", "utf-8");
response.setHeader("content-disposition","attachment;filename="+new String(title.getBytes("gbk"), "ISO8859-1"));
/*--------------------------------------------------------------------------------*/
OutputStream os = response.getOutputStream();
XSSFSheet sheet=workbook.createSheet("text");
//创建第一行标题行

XSSFRow row=sheet.createRow(0);//创建标题行
XSSFCell num=row.createCell(0);
num.setCellValue("参数");
XSSFCell  num001=row.createCell(1);
num001.setCellValue("参数1");
XSSFCell  num002=row.createCell(2);
num002.setCellValue("参数2");
XSSFCell  num003=row.createCell(3);
num003.setCellValue("参数三");

SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/*----------------------------------------------------------------------------------*/
//开始获取需要导入到excel中的数据
//根据x名查询DetailEntity表中所有信息
Page<XxxEntity> pagination =(Page<XxxEntity>)new Query<XxxEntity>().getPage(params);
//根据x名查询DetailEntity表中所有信息
List<XxxEntity> list = (List<XxxEntity>) baseMapper.getWeekLightLimit(pagination,params);
int dataIndex=1;//取行索引
for(XxxEntityweek xxxEntity:list)
{

XSSFRow datarow=sheet.createRow(dataIndex);//创建数据的第一行
XSSFCell idDate=datarow.createCell(0);
idDate.setCellValue(xxxEntity.getId());

XSSFCell deptIdDate=datarow.createCell(1);
deptIdDate.setCellValue(xxxEntity.getDeptId());

XSSFCell oltpwrDate=datarow.createCell(2);
oltpwrDate.setCellValue(xxxEntity.getOltpwr());

XSSFCell ontpwrDate=datarow.createCell(3);
ontpwrDate.setCellValue(xxxEntity.getOntpwr());

dataIndex++;
}
workbook.write(os);
os.flush();
os.close();
workbook.close();
}
catch (Exception e) {
System.out.println(e);
}

}

//注意:当添加DataFilter过滤器注解时,只能拦截到baseMapper接口的方法,同时注意在sql语句添加条件判断语句:

<where>

<if test="params.sql_filter!=null">
and ${params.sql_filter}
</if>
</where>

获取到的参数(接受到的参数)也必须有params.来引用;例如:

<choose>
<when test="params.sidx !='' and params.order!= null">
ORDER BY a.${params.sidx} ${params.order}
</when>
<otherwise>
ORDER BY a.id asc
</otherwise>
</choose>

//根据x名查询DetailEntity表中所有信息
Page<XxxEntity> pagination =(Page<XxxEntity>)new Query<XxxEntity>().getPage(params); 
//根据x名查询DetailEntity表中所有信息
List<XxxEntity> list = (List<XxxEntity>) baseMapper.getWeekLightLimit(pagination,params);

关于导出Excel表中存在部门或用户数据权限问题的更多相关文章

  1. exp导出一个表中符合查询条件的数据

    原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50 ...

  2. PHP将数据导出Excel表中(投机型)

    1.简介 如何利用最简单粗糙暴力的方法将数据写入Excel文件中呢? 因为ms word和excel的文档都支持html文本格式,因此我们可以基于这个原理采用html文本格式进行数据的输出. 在htm ...

  3. 选择性导出excel表中内容

    package com.huawei.utils; import java.io.FileNotFoundException;import java.io.FileOutputStream;impor ...

  4. Jmeter----读取excel表中的数据

    Jmeter 读取excel数据使用的方法是使用CSV Data Set Config参数化,之后使用BeanShell Sampler来读取excel表中的数据 第一步.查看所需的接口都要哪些字段和 ...

  5. ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作

    1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...

  6. C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation

    C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...

  7. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

  8. 【ITOO 1】将List数据导出Excel表

    需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...

  9. ASP.NET导出excel表方法汇总

    asp.net里导出excel表方法汇总  1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...

随机推荐

  1. leetcode 0209

    目录 ✅ 500. 键盘行 描述 解答 ✅ 905. 按奇偶排序数组 描述 解答 py sorted 参数详解 ✅ 559. N叉树的最大深度 描述 解答 java dfs-like method(r ...

  2. iOS 根据域名查询 IP 地址

    在 iOS 开发中,如果需要知道网站的 IP 地址: #include <netdb.h> #include <arpa/inet.h> NSString *webSiteSt ...

  3. springMVC 的拦截器理解

    请复制以下链接看,我只是搬运工 http://blog.csdn.net/yerenyuan_pku/article/details/72567761 http://blog.csdn.net/u01 ...

  4. php面试题之PHP核心技术

    一.PHP核心技术 更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu.com 1.写出一个能创建多级目录的PHP函数(新浪网技术部) <?php /** * 创建多级目录 * ...

  5. 软件架构,WEB - MVC,MVP,MVVM

    参考 https://www.zhihu.com/question/20148405/answer/107071448 http://www.cnblogs.com/indream/p/3602348 ...

  6. Flask - 底层原理和基本流程

    一. flask依赖wsgi,实现wsgi的模块:wsgiref(django),werkzeug(flask),uwsgi 1. werkzeug示例 from werkzeug.wrappers ...

  7. Vue日常报错

    报错信息: Error: Cannot find module 'webpack/bin/config-yargs' at Function.Module._resolveFilename (inte ...

  8. python开发接口

    享一段代码,开发了3个接口:            1.上传文件            2.查看所有文件            3.下载文件 使用python开发,需要安装flask模块,使用pip ...

  9. 【转载】Eclipse vs IDEA快捷键对比大全(win系统)

    花了几天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错! 以下为我整理了一下开发过程中经常用的一些Eclipse快捷键与IDEA的对比,方便像我一样使用Eclipse多年但想尝试些改 ...

  10. Mate Linux 桌面的什么受GNOME 2 粉丝喜欢 ?

    导读 如果你以前听过这个传闻:当 GNOME3 第一次发布时,很多 GNOME 用户还没有准备好放弃 GNOME 2. Mate(以马黛茶yerba mate植物命名)项目的开始是为了延续 GNOME ...