关于导出Excel表中存在部门或用户数据权限问题
/**
* 导出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表中存在部门或用户数据权限问题的更多相关文章
- exp导出一个表中符合查询条件的数据
原文地址:exp导出一个表中符合查询条件的数据 作者:charsi 导出一个表中的部分数据,使用QUERY参数,如下导出select * from test where object_id>50 ...
- PHP将数据导出Excel表中(投机型)
1.简介 如何利用最简单粗糙暴力的方法将数据写入Excel文件中呢? 因为ms word和excel的文档都支持html文本格式,因此我们可以基于这个原理采用html文本格式进行数据的输出. 在htm ...
- 选择性导出excel表中内容
package com.huawei.utils; import java.io.FileNotFoundException;import java.io.FileOutputStream;impor ...
- Jmeter----读取excel表中的数据
Jmeter 读取excel数据使用的方法是使用CSV Data Set Config参数化,之后使用BeanShell Sampler来读取excel表中的数据 第一步.查看所需的接口都要哪些字段和 ...
- ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作
1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...
- C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation
C# asp.net中导出Excel表时总出现"只能在执行 Render() 的过程中调用 RegisterForEventValidation 后台添加以下方法:/// <summa ...
- thinkphp导入导出excel表单数据
在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...
- 【ITOO 1】将List数据导出Excel表
需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...
- ASP.NET导出excel表方法汇总
asp.net里导出excel表方法汇总 1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...
随机推荐
- 生成唯一的ID
public class UniqueId { public static String getUUId(){ ; int hashCodeV = UUID.randomUUID().toString ...
- 275 原型与原型链:显式原型prototype ,隐式原型__proto__,隐式原型链,原型链_属性问题,给原型对象添加属性/方法
1.所有函数都有一个特别的属性 prototype : 显式原型属性 [普通构造函数的实例对象没有prototype 属性,构造函数有__proto__属性,原型对象有__proto__属性 ] 2. ...
- idea代码神器:根据表生成代码
Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大. 1.安装(EasyCode) 我这里的 ...
- 设计模式01 创建型模式 - 原型模式(Protype Pattern)
参考 1. 设计模式:原型模式 | 博客园 2. Java clone深拷贝.浅拷贝 | CSDN 3. Cloneable接口和Object的clone()方法 | 博客园 原型模式(Prototy ...
- JavaScript图形实例:圆内螺线
数学中有各式各样富含诗意的曲线,螺旋线就是其中比较特别的一类.螺旋线这个名词来源于希腊文,它的原意是“旋卷”或“缠卷”.例如,平面螺旋线便是以一个固定点开始向外逐圈旋绕而形成的曲线. 阿基米德螺线和黄 ...
- js数组去重解决方案
js数组去重是前端面试中经常被问的题目,考察了面试者对js的掌握,解决问题的思路,以及是否具有专研精神.曾经一位前端界大神告诉我,解决问题的方式有很多种,解决问题时多问问自己还有没有其他的方法,探求最 ...
- 找出crontab表达式内符合的下一次出发时间点(经典!!!)
参考: https://blog.csdn.net/crazycoder2010/article/details/7905848
- 3_03_MSSQL课程_Ado.Net_数据导入
数据库数据导出和导入 思路: --思路: 1.找到文件 2.读取文件 3.第一行 忽略 4.insert using System; using System.Collections.Generic; ...
- UniGUI之ServerModule常用设置(07)
主要有两个设置,它是一个单独的, 这意味着它只在每个应用程序中创建一次. 它主要用于配置各种服务器设置.不能将组件放在ServerModule上. 如前所述, ServerModule 是一个单一的, ...
- Windows 网络显示监视器软件_spacedesk
将各种设备拓展为 Windows 第二屏幕 官方网站 https://spacedesk.net/ 使用教程参阅: https://blog.csdn.net/sinat_21902709/artic ...