/**
* 导出 用get请求
* @param response
* @param
* @throws IOException
*/
@RequestMapping(value = "/download")
public void download(HttpServletResponse response,HttpServletRequest request) throws IOException { int quality = UtilReq.parseInt(request.getParameter("quality"), -1);
String status = UtilReq.parseString(request.getParameter("status"),"");
String mobile = UtilReq.parseString(request.getParameter("mobile"),"");
long agentUid = UtilReq.parseLong(request.getParameter("agentUid"),0l);
HSSFWorkbook workbook = aritstService.download(quality,status,mobile,agentUid); //设置要导出的文件的名字
String fileName="";
Date now = new Date(); fileName = "艺人数据" + UtilDate.formatDate2Str(now,"yyyy年MM月dd日HH时mm分ss秒") + ".xls"; fileName = new String(fileName.getBytes("gbk"), "iso-8859-1");
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
response.flushBuffer();
workbook.write(response.getOutputStream());
}
 /**
* 导出
* @param quality
* @param status
* @param mobile
* @param agentUid
* @return
*/
public HSSFWorkbook download(int quality, String status, String mobile, long agentUid) {
//创建
HSSFWorkbook wb = new HSSFWorkbook();
//headers表示excel表中第一行的表头
String[] headers = {"姓名","邀请码","所属经纪人","经纪人手机号", "总收入金额", "接单数", "成单数","满意度","优质艺人"};
//创建一个只有头信息的空表
HSSFSheet sheet = null;
sheet = wb.createSheet("艺人数据"); //headers表示excel表中第一行的表头
HSSFRow row = sheet.createRow(0); //在excel表中添加表头
for(int i=0;i<headers.length;i++){
HSSFCell cell = row.createCell(i);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
} //查询艺人列表,根据筛选条件
List<Integer> statusList = null;
if ("".equals(status)){
status = "1,2";
}
if (StringUtils.isNotEmpty(status)) {
statusList = new ArrayList<>();
String[] statuss = status.split(",");
for (String statu : statuss) {
statusList.add(Integer.parseInt(statu));
}
}
//需要导出的数据
List<Aritst> aritsts = aritstDao.selectArtistByAgentAndMobile(statusList, mobile, agentUid,quality, null,null,null); int rowNum = 1;
if (null != aritsts) {
//在表中存放查询到的数据放入对应的列
for (Aritst aritst : aritsts) {
HSSFRow row1 = sheet.createRow(rowNum);
//"姓名","邀请码","所属经纪人","经纪人手机号", "总收入金额", "接单号", "成单数","满意度","是否优质艺人" row1.createCell(0).setCellValue(aritst.getNickname());
row1.createCell(1).setCellValue(aritst.getInviteCode());
row1.createCell(2).setCellValue(aritst.getAgent());
row1.createCell(3).setCellValue(aritst.getAgentMobile());
row1.createCell(4).setCellValue(aritst.getRevenue());
row1.createCell(5).setCellValue(aritst.getConnectionnum());
row1.createCell(6).setCellValue(aritst.getServernum());
row1.createCell(7).setCellValue(aritst.getSatisfiedRate());
row1.createCell(8).setCellValue(aritst.getQuality()==1?"是":"否");
rowNum++;
}
}
return wb;
}

Java导出Excel文件的更多相关文章

  1. Java导出excel文件(使用jxl)

    首先要导入jxl的jar包,可以去maven仓库下载:https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl 通过模拟实现创建 ...

  2. java 导出Excel文件

    最近在做一个文件导出功能,发现大部分博客上通过引用各种的util工具包,其实说白了还是利用apache的poi,在项目中直接导入poi包就可以.直面其原理,随个人喜好封装. 1.首先准备一些poi的j ...

  3. Java导出Excel文件的两种方法

    将数据以Excel表格的形式导出:首先下载poi的jar包,导入项目中,或者使用maven仓库管理,在pom文件添加:<dependency>    <groupId>org. ...

  4. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  5. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  6. java POI导出Excel文件数据库的数据

    在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...

  7. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

    问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下 ...

  8. jxl导出Excel文件

    一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...

  9. java导出excel表格

    java导出excel表格: 1.导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifac ...

随机推荐

  1. 自动贩卖机VS无人门店:谁是真正的零售新风口?

    ​ ​原本在线上不断发力,让实体店几乎凋敝的电商,却忽然对线下兴趣大增.阿里疯狂入股.收购线下商超:京东要在全国范围内开设百万家便利店,仅在农村就将开设50万家--这一股浪潮,或将直接改变整个百货零售 ...

  2. 这几个IDEA高级调试技巧,用完就是香

    一个项目启动两次 测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可 1.点击Edit Configurations 2.勾选Allow parallel run 3. ...

  3. http协议入门---转载

    http协议入门 ##(一). HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 最早 ...

  4. LeetCode--链表1-单链表

    LeetCode--链表1-单链表 单链表模板 初始化 头部插入 尾部插入 删除节点 Index插入 Index返回对应的节点指针和val值 class MyLinkedList { private: ...

  5. 利用动态资源分配优化Spark应用资源利用率

    背景 在某地市开展项目的时候,发现数据采集,数据探索,预处理,数据统计,训练预测都需要很多资源,现场资源不够用. 目前该项目的资源3台旧的服务器,每台的资源 内存为128G,cores 为24 (co ...

  6. Asp.Net Core EndPoint 终点路由工作原理解读

    一.背景 在本打算写一篇关于Identityserver4 的文章时候,确发现自己对EndPoint -终结点路由还不是很了解,故暂时先放弃了IdentityServer4 的研究和编写:所以才产生了 ...

  7. Linux centos7.0 配置防火墙及开放端口

    现在防火墙有两种服务1.service firewalld 2.service iptables 一.就firewalld来说查看开放的端口  netstat  -anp 查询防火墙状态  servi ...

  8. czC#01

    1. .net简介: .net分为.net平台及.net Framework 2..NET作用 2.转义与@ 3.类型转换 1) 隐式转换 2)显式类型转换 (待转换的目标类型)原始值

  9. 广告行业中那些趣事系列6:BERT线上化ALBERT优化原理及项目实践(附github)

    摘要:BERT因为效果好和适用范围广两大优点,所以在NLP领域具有里程碑意义.实际项目中主要使用BERT来做文本分类任务,其实就是给文本打标签.因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小, ...

  10. a++与++a的陷阱与盲区

    故事发生在2019.7.15的3.pm,正在复习数据结构题目,写了一句如下指令(以下函数运行在win10的dev编译器下面) #include<bits/stdc++.h> using n ...