1.Maven需要的依赖

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-examples -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-examples</artifactId>
<version>3.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-excelant -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.14</version>
</dependency>

2.导入示例

 /**
* 黑名单查询
* @param blackListBean
* @return
*/
@RequestMapping(value = "/blackList", method = RequestMethod.POST)
@ResponseBody
public BaseReturnModel blackList(
@RequestBody BlackListBean blackListBean
) {
BaseReturnModel baseReturnModel = new BaseReturnModel();
List<BlackListBean> resultList = null;
int total = 0;
try {
if (blackListBean.getDownLoad() == null) {
int start = (blackListBean.getPagination() - 1) * blackListBean.getRownum(); // 分页处理 //rownum页数
blackListBean.setStart(start);
}
if (blackListBean.getUserIds() != null && !"".equals(blackListBean.getUserIds())) {
blackListBean.setIdUsers(blackListBean.getUserIds().split(","));
}
resultList = blackListSerivce.selectBlackList(blackListBean);
total = blackListSerivce.selectResult(blackListBean); } catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
baseReturnModel.setCode(200);// 状态
baseReturnModel.setMess("系统错误");
}
if (blackListBean.getDownLoad() != null) {
if (resultList.size() > 0) {
//创建一个表格
SXSSFWorkbook workbook = new SXSSFWorkbook();
//创建一个工作表
SXSSFSheet sheet = workbook.createSheet("sheet1");
//设置表头行
SXSSFRow xssfRow = sheet.createRow(0);
//设置单元格格式居中
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
//添加表头内容
SXSSFCell headCell = xssfRow.createCell(0);
headCell.setCellValue("站点ID");
headCell.setCellStyle(cellStyle);
// 单元格列宽 0代表列位置
sheet.setColumnWidth(0, 5500);
sheet.setColumnWidth(1, 5500);
sheet.setColumnWidth(2, 5500);
sheet.setColumnWidth(3, 5500);
sheet.setColumnWidth(4, 5500); //设置每列的参数
headCell = xssfRow.createCell(1);
headCell.setCellValue("站点名称");
headCell.setCellStyle(cellStyle); headCell = xssfRow.createCell(2);
headCell.setCellValue("黑名单手机号/单号");
headCell.setCellStyle(cellStyle); headCell = xssfRow.createCell(3);
headCell.setCellValue("理由");
headCell.setCellStyle(cellStyle); headCell = xssfRow.createCell(4);
headCell.setCellValue("时间");
headCell.setCellStyle(cellStyle); int b = 1;
String s = JSON.toJSONString(resultList);
SimpleDateFormat sdf = new SimpleDateFormat
("yyyy-MM-dd HH:mm:ss");
List<BlackListBean> list = JSON.parseArray(s, BlackListBean.class);
for (BlackListBean obj : list) {
xssfRow = sheet.createRow(b++); //时间戳转换
Long aLong = new Long(obj.getCreateTime());
Date date = new Date(aLong); //创建单元格,并添加值
SXSSFCell cell = xssfRow.createCell(0);
cell.setCellValue(obj.getIdUser());
cell.setCellStyle(cellStyle); cell = xssfRow.createCell(1);
cell.setCellValue(obj.getName());
cell.setCellStyle(cellStyle); cell = xssfRow.createCell(2);
cell.setCellValue(obj.getMobile());
cell.setCellStyle(cellStyle); cell = xssfRow.createCell(3);
cell.setCellValue(obj.getNote());
cell.setCellStyle(cellStyle); cell = xssfRow.createCell(4);
cell.setCellValue(sdf.format(date));
cell.setCellStyle(cellStyle);
}
//保存文件
String imgpath = "/usr/local/tomcat/apache-tomcat-8.5.32/webapps/excel/";
File file = new File(imgpath);
if (!file.exists()) {
file.mkdirs();
}
try {
String imgFilePath = imgpath + "blackList" + ".xlsx";
OutputStream outputStream = new FileOutputStream(imgFilePath);
baseReturnModel.setObj("/excel/" + "blackList" + ".xlsx");
baseReturnModel.setCode(200);
baseReturnModel.setMess("正在下载"); try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
baseReturnModel.setCode(500);
baseReturnModel.setMess("写入失败");
baseReturnModel.setObj("");
} try {
outputStream.close();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} } catch (FileNotFoundException e) {
e.printStackTrace();
baseReturnModel.setCode(500);
baseReturnModel.setMess("下载失败");
}
return baseReturnModel;
} else {
baseReturnModel.setCode(500);
baseReturnModel.setMess("没有可提供下载得内容");
return baseReturnModel;
}
}
baseReturnModel.setCode(200);// 状态
baseReturnModel.setMess("成功");
baseReturnModel.setObj(resultList);
baseReturnModel.setTotal(total);
return baseReturnModel;
}

java将数据库中查询到的数据导入到Excel表格的更多相关文章

  1. SpringMvc处理模型数据(也就是从数据库中查询出来的数据放到请求域中)

    这讲的是从数据库中查询到的数据,存放到请求域中.然后页面上直接可以从请求域中获取值. 有4种方式: 1):ModelAndView   是作为一个对象. /** * 目标方法的返回值可以是 Model ...

  2. vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)

    文章目录 1.看实现的效果 2.前端vue页面核心代码 2.1. 表格代码(表格样式可以去elementui组件库直接调用相应的) 2.2.分页组件代码 2.3 .script中的代码 3.后端核心代 ...

  3. Java向数据库中一次性插入大量数据

    String sql = “insert into username.tablename(id) values(?)”; PreparedStatement stmt = conn.prepareSt ...

  4. C#将数据导入到Excel表格中

    public static DataTable GetExcelToDataTableBySheet(string FileFullPath, string SheetName){           ...

  5. JDBC方式从数据库中查询数据并显示

    1.创建数据库表myuser DROP TABLE IF EXISTS `myuser`; CREATE TABLE `myuser` ( `) NOT NULL COMMENT '姓名', `id` ...

  6. MongoDB数据库中查询数据(下)

    MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...

  7. 在MongoDB数据库中查询数据(上)

    在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...

  8. flask再学习-思考之怎么从数据库中查询数据在页面展示!

    看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...

  9. 使用JDBC从数据库中查询数据的方法

    * ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...

随机推荐

  1. flask学习(一)

    特点: 短小精悍,可扩展性强 依赖wsgi:werkzurg werkzurg示例: from werkzeug.wrappers import Request, Response from werk ...

  2. python获取设备主机名和IP地址

    import socket def print_machine_info(): host_name = socket.gethostname() ip_address = socket.gethost ...

  3. layui table 内容为select隐藏问题

    <style> .layui-table-cell,.layui-form,.layui-table-box,.layui-table-body{ overflow: visible; } ...

  4. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  5. docker镜像常用操作

  6. 关于kafka生产者相关监控指标的理解(未解决)

    关于生产者相关的监控指标含义的理解,希望大神帮忙进行确定下.     这边找了官网,看了网上各样的资料,但都无法帮我理解监控项目相关含义.     相关的监控项目是从jconsole获取的,并接入到了 ...

  7. html中div使用CSS实现水平/垂直居中的多种方式

    CSS中的居中,在工作中,会经常遇到.它可以分为水平居中和垂直居中,以下是几种实现居中的方式. git 查看源码 配合在线预览,效果更佳 以下例子中,涉及到的CSS属性值. .parent-frame ...

  8. CF1093

    题解: D: 比较显然这个图得是二分图才行 然后每个二分图上的方案是$(2^a+2^b) (a,b是两种颜色的个数)$ E: 我tm就不该先写bitset的 正解和bitset都很好想 因为是个排列, ...

  9. pip命令

    安装包 pip install django   #最新版本 pip install django==1.11.7 #指定版本 pip install django>=1.11.7 #最小版本 ...

  10. 动态网页获取ajax,post方法,url里面不直接显示参数

    记录一下,爬去ajax数据时,需要注意一下是post方法还是get方法,get方法就正常做就行了,但是post方法的话,需要这样,如下 a = requests.request('post',url) ...