java将数据库中查询到的数据导入到Excel表格
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表格的更多相关文章
- SpringMvc处理模型数据(也就是从数据库中查询出来的数据放到请求域中)
这讲的是从数据库中查询到的数据,存放到请求域中.然后页面上直接可以从请求域中获取值. 有4种方式: 1):ModelAndView 是作为一个对象. /** * 目标方法的返回值可以是 Model ...
- vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
文章目录 1.看实现的效果 2.前端vue页面核心代码 2.1. 表格代码(表格样式可以去elementui组件库直接调用相应的) 2.2.分页组件代码 2.3 .script中的代码 3.后端核心代 ...
- Java向数据库中一次性插入大量数据
String sql = “insert into username.tablename(id) values(?)”; PreparedStatement stmt = conn.prepareSt ...
- C#将数据导入到Excel表格中
public static DataTable GetExcelToDataTableBySheet(string FileFullPath, string SheetName){ ...
- JDBC方式从数据库中查询数据并显示
1.创建数据库表myuser DROP TABLE IF EXISTS `myuser`; CREATE TABLE `myuser` ( `) NOT NULL COMMENT '姓名', `id` ...
- MongoDB数据库中查询数据(下)
MongoDB数据库中查询数据(下) 在find中,options参数值为一个对象,用来设置查询数据时使用的选项,下面我们来对该参数值对象中可以使用的属性进行介绍: 1. fields; 该属性值为一 ...
- 在MongoDB数据库中查询数据(上)
在MongoDB数据库中查询数据(上) 在MongoDB数据库中,可以使用Collection对象的find方法从一个集合中查询多个数据文档,find方法使用方法如下所示: collection.fi ...
- flask再学习-思考之怎么从数据库中查询数据在页面展示!
看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...
- 使用JDBC从数据库中查询数据的方法
* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回 ...
随机推荐
- git知识总结-3.gitignore文件说明
1.前言 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表. 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等. 在这种情况下,我们可以创建一个名 ...
- oracle wallet使用与维护
oracle wallet使用与维护2015年05月26日 17:58:55 SilenceRiver 阅读数:1614oracle wallet使用与维护---oracle无密码登录分类: Orac ...
- 规范开发目录 及 webpack多环境打包文件配置
规范开发目录 普通项目 开发目录: ├── project-name ├── README.md ├── .gitignore ├── assets ├── ├── js ├── ├── css ├─ ...
- 8266编译错误 xtensa-lx106-elf/bin/ld: segmentled section `.text' will not fit in region `iram1_0_seg'
一种简单的解决办法 Okay, the solution was to copy the libgcc.a file from: esp-open-sdk/ESP8266_NONOS/lib/ to ...
- spring 启动找不到shiro中 自定义的realm对应的class问题
干巴巴盯着项目半天,启动了好多次,每次都是sping报错找不到shiro配置文件中自定义的realm对应的class文件,明明有的,就是找不到. 后来将eclipse对应的jdk1.7 更新为1.8 ...
- centOS6.5 mysql-community-server安装失败
卸载mysql,重新装 yum install mysql-server 图中没有放卸载的图 [root@cgrctenOS6 ~]# yum install mysql-community-serv ...
- Linux tar命令之--exclude参数 排除指定的文件或目录
https://my.oschina.net/u/3285916/blog/1632552 参数: --exclude 打包时排除不需要处理的文件或目录 说明: tar -zcf a.tar.gz 打 ...
- Flume-ng高可用集群负载安装与配置
1. 写在前面 flume-ng高可用长在大数据处理环节第一个出现,对于处理日志文件有很好的作用,本篇博客将详细介绍flume-ng的高可用负载均衡搭建 2. flume-ng高可用负载均衡描述 在一 ...
- mongodb导出数据到csv
mongo cws export.js > out.csv export.js // Date.prototype.getIOSDate = function () { return new D ...
- android调试工具 adb命令学习
查看Android版本号 adb shell getprop ro.build.version.release getprop ro.build.version.release 5.1 查看Andro ...