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 返回 ...
随机推荐
- linux下动态链接库(.so)的显式调用和隐式调用
进入主题前,先看看两点预备知识. 一.显式调用和隐式调用的区别 我们知道,动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态库的程序的体积要 ...
- 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m
Windows服务中程序发布之后会如下错误: 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“Syste ...
- js 获取 时间戳的三种方法
new Date() *1 自动数据类型转换为数字 new Date().getTime() Date.now();
- 四, 判断语句; 循环; 使用dict和set
1) 练习 小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数: 低于18.5:过轻 18.5-25:正常 25-28:过重 28- ...
- MUI上传图片之选择相册和相机上传
1.因为项目中有三处地方需要上传,所以html中存在三处地方.身份证正反面为上传一张,发票限制上传9张. <div class="action1"> <!--展示 ...
- 【原创】用python连接thrift Server 去执行sql的问题总汇
场景:python和现有产品的结合和应用——python的前瞻性调研 环境:centos7 0.首先确保安装了python和pyhive,下面是连接代码: #!/usr/bin/env python ...
- python 对Excel表格的读取
import xlrd flbrd = "D:\\考勤系统.xlsx" ws = xlrd.open_workbook(flbrd) # 获取所有sheet名字:ws.sheet_ ...
- CISPA Scyther tools
1.Scyther软件作者网站的整理 Scyther工具的网站主页:https://people.cispa.io/cas.cremers/index.html 首先 对Scyther软件的资料进行整 ...
- Qt之excel 操作使用说明
学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...
- nginx 平滑更新
1.更新nginx源 #centos6的nginx源 #centos7的话吧url 的6改为7就行了 vim /etc/yum.repos.d/nginx.repo [nginx] name=ngin ...