java poi 添加列数据_java使用POI将数据导出放入Excel
本文主要是将数据库取出的数据按照自定义的行列格式导出到excel中,POI则是实现我们需求所用到的技术。
POI介绍
使用spring boot导入相关依赖
获取数据(自行处理)
完整代码实例:创建excel,将数据写入excel
1.POI介绍
要想使用POI对Excel进行操作,我们需要先了解一下Excel的两种版本:一种是97-2003版本扩展名是“.xls”;一种是2007版本扩展名是“.xlsx”。POI分别针对这两种版本需要导入的jar包不同,操作类也不同。
HSSF:操作的是.xls;XSSF:操作的是.xlsx。
不管哪种操作,基本思路都是一致,先要对应一个Excel文件,然后在对应文件中的某个sheet,接下来在操作某一行和这一行中的某一列。对应POI包:文件(webbook)、sheet(sheet)、行(row)和具体单元格(cell)。
2.通过spring boot导入依赖
为了使用java操控excel,需要将相关的jar引入,对于HSSF只需要导入POI.jar,而XSSF则需要导入四个jar,具体导入见下面代码
将代码块的依赖放入工程的pom.xml文件中就可以了。
工程不是spring boot的需要手动将下面jar导入。
org.apache.poi
poi
RELEASE
org.apache.xmlbeans
xmlbeans
2.6.0
dom4j
dom4j
1.6.1
org.apache.poi
poi
3.9
org.apache.poi
poi-ooxml
3.9
3完整代码实例:简单的创建excel,将数据写入excel
依赖导入成功之后,就可以开始进行excel的生成。详细步骤在代码注释中有说明。
/**
* 创建excel
* @param listresult 是需要写入excel中的数据,通过map中的k-v来将数据写入excel
* @return
*/
private XSSFWorkbook createUserListExcel(List> listresult){
// 1.创建HSSFWorkbook,一个HSSFWorkbook对应一个Excel文件
XSSFWorkbook wb = new XSSFWorkbook();
// 2.在workbook中添加一个sheet,对应Excel文件中的sheet
XSSFSheet sheet = wb.createSheet("sheet1");
// 3.设置表头,即每个列的列名
String[] titel = {"rowName1","rowName2","rowName3","rowName4"};
// 3.1创建第一行
XSSFRow row = sheet.createRow(0);
// 此处创建一个序号列
row.createCell(0).setCellValue("序号");
// 将列名写入
for (int i = 0; i < titel.length; i++) {
// 给列写入数据,创建单元格,写入数据
row.createCell(i+1).setCellValue(titel[i]);
}
// 写入正式数据
for (int i = 0; i < listresult.size(); i++) {
// 创建行
row = sheet.createRow(i+1);
// 序号
row.createCell(0).setCellValue(i+1);
// 医院名称
row.createCell(1).setCellValue(listresult.get(i).get("rowKey1").toString());
sheet.autoSizeColumn(1, true);
// 业务类型
row.createCell(2).setCellValue(listresult.get(i).get("rowKey2").toString());
// 异常信息
row.createCell(3).setCellValue(listresult.get(i).get("rowKey3").toString());
// 数量
row.createCell(4).setCellValue(listresult.get(i).get("rowKey4").toString());
}
/**
* 上面的操作已经是生成一个完整的文件了,只需要将生成的流转换成文件即可;
* 下面的设置宽度可有可无,对整体影响不大
*/
// 设置单元格宽度
int curColWidth = 0;
for (int i = 0; i <= titel.length; i++) {
// 列自适应宽度,对于中文半角不友好,如果列内包含中文需要对包含中文的重新设置。
sheet.autoSizeColumn(i, true);
// 为每一列设置一个最小值,方便中文显示
curColWidth = sheet.getColumnWidth(i);
if(curColWidth<2500){
sheet.setColumnWidth(i, 2500);
}
// 第3列文字较多,设置较大点。
sheet.setColumnWidth(3, 8000);
}
return wb;
}
/**
* 用户列表导出
* @param userForm
*/
private String downUserList(List> listresult){
// getTime()是一个返回当前时间的字符串,用于做文件名称
String name = getTime();
// csvFile是我的一个路径,自行设置就行
String ys = csvFile + "//" + name + ".xlsx";
// 1.生成Excel
XSSFWorkbook userListExcel = createUserListExcel(listresult);
try{
// 输出成文件
File file = new File(csvFile);
if(file.exists() || !file.isDirectory()) {
file.mkdirs();
}
// TODO 生成的wb对象传输
FileOutputStream outputStream = new FileOutputStream(new File(ys));
userListExcel.write(outputStream);
outputStream.close();
}catch(Exception e){
e.printStackTrace();
}
return name;
}
因为工作中多次用到了这个,所以简单的记录一下,如有问题,欢迎指正。
点击进入简书地址
点击进入csdn地址
java poi 添加列数据_java使用POI将数据导出放入Excel相关推荐
- POI动态字段导出Excel-导入Excel,解析加密数据再导出
一.POI动态字段导出Excel-导入Excel 1.直接导出Excel public static void main(String[] args) throws IOException { // ...
- SpringBoot将数据放入Excel里面通过浏览器直接下载到本地
SpringBoot将数据放入Excel里面通过浏览器直接下载到本地 说明 依赖 代码 效果 说明 以前做java方面的导出下载的时候,都是先把数据导出到linux服务器里面的某个目录,然后才是通过浏 ...
- java取网页数据_Java抓取网页数据(原来的页面+Javascript返回数据)
转载请注明出处. 有时候因为种种原因.我们须要採集某个站点的数据.但因为不同站点对数据的显示方式略有不同! 本文就用Java给大家演示怎样抓取站点的数据:(1)抓取原网页数据.(2)抓取网页Javas ...
- java导入excel数据_java使用POI批量导入excel数据的方法
一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...
- java excel 列数_JAVA使用POI获取Excel的列数与行数
前言 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑.Java程序由于其跨平台特性,不能直接操纵Excel.因此,本文探讨一下POI视线Java程序进 ...
- java hssfcell 单元格样式_Java使用poi进行对Excel的操作
Java使用poi进行对Excel的操作 废话不多说,直接进入正题 先看看目录结构 一.将Excel表中的数据通过List集合打印在就控制台 二.将数据库中的数据导入的Excel表中 上述两条在这里统 ...
- poi 获取excel列宽度_JAVA使用POI获取Excel的列数与行数
JAVA使用POI获取Excel的列数与行数 发布于 2020-8-19| 复制链接 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Ja ...
- java自动生成项目编号_java - Apache POI,在同一文档中创建项目符号点和编号列表 - 堆栈内存溢出...
我试图用apache poi创建一个既包含圆点又包含编号列表的文档. 我想得到这样的结果. 名单: 清单1项目0 清单1项目1 清单1项目2 列表后的段落. 清单2: 清单2项目0 清单2项目1 清单 ...
- JAVA怎么才能强制换行_Java利用POI生成Excel强制换行(转载)
使用POI创建一个简单的 myXls.xls 文件 常用的包为 org.apache.poi.hssf.usermodel.*; 例子: import java.io.*; import org.ap ...
最新文章
- pycharm中导出依赖包 在pycharm下边的Terminal打开命令行终端执行命令
- 机器学习奠基人Michael Jordan:下代技术是融合经济学,解读2项重要进展(含PPT)...
- 中小型研发团队架构实践:电商如何做企业总体架构?
- building commercial website using Microsoft tech stack
- mysql connector读后记
- 第八章指针实验成绩汇总
- django基础 第一章 环境搭建
- html 如何写退出程序,vb点击关闭窗口 单击退出程序的VB代码怎么写
- Mac大小写切换需长按capslock键解决办法
- 通俗的解释机器学习的预测原理
- 那些惊艳到你了的古诗词?
- scp 保留文件属组_SCP命令用法详解-hdparm工具参数详解-改变文件组命令chgrp和改变文件属主命令chown_169IT.COM...
- note3+android+5.1,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
- java 自幂数_JAVA 编程01:用JAVA语言实现所有自幂数的输出
- python快速排名seo代码_python打造seo必备工具-自动查询排名
- Java进阶_3 注解、APT
- 京东2017年4月7日笔试编程原题解析(站队、终结者C)
- 2021年中国旅游产业整体现状分析,疫情后市场恢复不及预期,相较疫情前仍有差距「图」
- 启明星辰携手联想云 共建企业云服务新生态
- Windows在局域网内无法访问Linux服务器上的web项目问题
热门文章
- CreateFont比CreateFontIndirect好用啊~
- 解决Vivado implementation拥塞的策略方法(一)
- mysql中vlookup函数_excel精确匹配vlookup用法(数据库属性匹配)
- 【安卓】——Autofill Framework(自动填写)用法详解
- Java使用Spire将网页保存为Word并去除Evaluation Warning水印方案
- 校验MD5值是什么意思?
- pikachu之sql注入
- 查看 Docker 容器的名字空间 .
- web课程设计网页规划与设计----公司官网带轮播图 (页面精美 1页)
- 高新技术企业避坑解读之“盲目跟风”