poi的excel导出

POI下JAVA导出基于模板Excel 最近做了一个比较麻烦的功能,导出一个复杂格式的EXCEL,因为使用POI已经很长时间了,导出很方便,导入的话格式并不是很支持,所以想到了使用基于模板,JAVA导出Excel 如何读取Excel模板然后把动态数据写入到模板以生成特定格式的Excel,同样的思路,先来考虑下会涉及到 阅读详情

poi的excel导出

这个导出依赖于模板文件,可便捷设置表头样式。 也可以不使用模板,直接创建。

1.引入poi依赖

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>

2.准备模板文件

image

3.编写导出代码

测试代码直接导出到本地,如需要在浏览器中导出将输出流交给浏览器即可

public class GenerateExcel {
public static void main(String[] args) throws IOException {
GenerateExcelXlsx();
}
static void GenerateExcelXlsx() throws IOException {
List<Student> students = new Student().stuAll();
InputStream inputStream = GenerateExcel.class.getClassLoader().getResourceAsStream("static/测试填充excel.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
// 获取第一个sheet
Sheet sheet = workbook.getSheetAt(0);
int index = 2;
for (Student item : students) {
Row row = sheet.createRow(index);
row.createCell(0).setCellValue(item.getName());
row.createCell(1).setCellValue(item.getSex().toString());
row.createCell(2).setCellValue(item.getAge());
index += 1;
}
FileOutputStream outputStream = new FileOutputStream("C:\\Users\\pyb\\Desktop\\a.xlsx");
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
static class Student{
private String name;
private Integer age;
private Character sex;
public Student() {
}
public Student(String name, Character sex, Integer age) {
this.name = name;
this.sex = sex;
this.age = age;
}
List<Student> stuAll(){
ArrayList<Student> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Student student = new Student("张三" + i, '男' ,18 );
list.add(student);
}
return list;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public Character getSex() {
return sex;
}
}
}

4.运行后效果图

image

5.不依赖模板直接导出

这种方式表头内容需要自己手动写,

public class GenerateExcel {
public static void main(String[] args) throws IOException {
GenerateExcelXlsx2();
}
static void GenerateExcelXlsx2() throws IOException {
List<Student> students = new Student().stuAll();
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个sheet,这里面形参是内部名称,不可见
Sheet sheet = workbook.createSheet();
// 设置为第几个sheet,并设置用户可见名称
workbook.setSheetName(0,"测试sheet");
int index = 0;
for (Student item : students) {
Row row = sheet.createRow(index);
row.createCell(0).setCellValue(item.getName());
row.createCell(1).setCellValue(item.getSex().toString());
row.createCell(2).setCellValue(item.getAge());
index += 1;
}
FileOutputStream outputStream = new FileOutputStream("C:\\Users\\pyb\\Desktop\\b.xlsx");
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}
static class Student{
private String name;
private Integer age;
private Character sex;
public Student() {
}
public Student(String name, Character sex, Integer age) {
this.name = name;
this.sex = sex;
this.age = age;
}
List<Student> stuAll(){
ArrayList<Student> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
Student student = new Student("张三" + i, '男' ,18 );
list.add(student);
}
return list;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
public Character getSex() {
return sex;
}
}
}

应用模板表格中的格式

一般应用与固定位置填充完毕的计算,动态的没测试过

数据塞入完毕后加入以下代码

// 计算公式
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateAll();

总结

获取某行或者某列时候,尽量用创建方式,除非确定行和列都能被获取到(行列不做操作、修改格式的情况下内容是空,会报空指针)

原创作者: pyb999 转载于: https://www.cnblogs.com/pyb999/p/18371870
POIExcel模版导出数据 导出Excel是软件开发中的经典功能之一,大大小小的项目中都有它的存在。之前做的导出Excel只是将显示在表单上的所有数据(表头已经固定),直接将整个表单导出。但这种方式太不灵活,如果有几十个不同业务的地方,就需要写几十个导出Excel代码片段,因为标题头是不同的,需要根据每种业务的不同进行相应的设置。        为了更加灵活方便的导出Excel,往往采用第三方的工具。现在主流的的操作Exc 阅读详情

相关推荐

Apache POI导入和导出Excel文件.

Apache POI导入和导出Excel文件

Java POI实现Excel导入导出

Java文件导出POI简介版本依赖excel常用类easyExcel POI 简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。 版本依赖 当前使用的poi版本为 4.1.2,使用新版本后基础操作没啥改变,但是样式设置和之前有一些变化。引入了两个jar,其中poi是操作03版及之前excel

lgb1997的博客 3545

java基于poi使用excel模板导出

java基于poi使用excel模板导出

Java使用POI导出Excel

项目开发中往往需要使用到Excel的导入和导出,导入就是从Excel中导入到DB中,而导出就是从DB中查询数据然后使用POI写到Excel上。POI不仅仅可以操作Excel,他的定位是Microsoft Of操作读和写,Microsoft Office其中包含了很多常用的办公文件,例如:Excel、ppt、word、Visio等等…

怪咖@的博客 1万+

POI通过模板导出excel(包含表头合并处理)

最近接触到比较多poi相关的需求,总结一下通过模板导出以及表头合并的一些复杂情况处理

21届Java攻城狮&Python民兵 8251

POIexcel固定模板导出

POIexcel固定模板导出一、简介二、excel模板三、项目中maven依赖四、Excel模板操作代码五、Controller层excel模板导出接口代码六、导出excel 一、简介 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。 二、excel模板 三、

weixin_44499403的博客 3840

poi 看这一篇就够了!!!】使用poi导出定制excle表格

使用poi自定义生成excel表格并实现下载

Khan的博客 1820

poi实现Excel文件导出【SpringBoot篇】

在系统中,数据库的excel文件导出是一项及为基础的功能。此篇文章将通过实例利用poi实现excel文件导出

CO_LA_的博客 8836

poi导出excel

JavaPOI导出Excel有三种形式,他们分别是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook。 HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls; XSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx; SXSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx; 第一种:HSSFWorkbook poi导出excel最常用的方式;但是此种方式的局限

mettle_heng的博客 9504

Java导出excelpoi导出和csv导出excel

最近在做一个文史类统计项目,许多地方需要用到导出excel报表。之前用的是公司的poi导出,最后听群友说csv的导出会比poi快很多。但是csv文件是以“,”分割文件的。如果数据中逗号比较多就会导致数据混乱。 ①POI导出 1.导入poi依赖或者导入jar包E:\百度\poi-3.9.jar <dependency> <groupId>o...

Java代码查询出树级结构的最底层结构 1835

POI按照模板导出Excel

此代码包括poi导出excel的所有jar,自定义Excel模板后,将数据导入其中

使用poi根据导入模板生成excel

java项目根据现有的excel模板生成新的excel表并 导入数据

POI Excel导入导出(上)

常见的Excel操作工具有JXL、POI等。JXL只能对Excel进行操作,属于比较老的框架,而且只支持到Excel95-2000版本,现在已经停止更新和维护,这里不做过多介绍。POI是Apache的项目,可以对微软/WPS的Word、Excel、PPT甚至OutLook进行操作。说这句话目的只有一个,就是告诉大家POI不仅仅只能处理Excel,Word、PPT这些办公组件也同样适用。但实际开发中处理Excel的场景几乎占了95%以上,所以我们只介绍POI处理Excel的部分。

smart_an的专栏 1208

Poi实现Excel导出

Poi实现Excel导出1. 导出Excel文件1.1 场景11.2 场景21.3 场景31.4 场景41.5 场景51.6 场景61.7 场景71.8 场景82. 公共方法2.1 下载EXCEL文件2.2 封装数据行2.3 封装标题行2.4 获取文件下载路径2.5 删除下载目录临时文件2.6 生成excel公共方法2.7 生成多个excel文件多个sheet表2.8 生成一个excel文件多个sheet表2.9 生成多个excel文件一个sheet表2.10 生成一个excel文件一个sheet表2.

学习技术的路上不断沉淀自己 1786

POI实现Excel导出

POI实现Excel导出 下面简单给大家介绍poi导出配置 1.首先导入依赖 &lt;!--poi--&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&lt;/artifactId&gt; &lt;version&...

LYQ2332826438的博客 1604

poi导出excel写入公式_poi导出excel公式

poi导出excel文件并提示下载_计算机软件及应用_IT/计算机_专业资料。java,poi导出excel文件并提示下载 一、导入 jar 包: poi-3.0.1-FINAL-20070705.jar; poi-3.0......POI导出EXCEL经典实现POI导出EXCEL经典实现隐藏>> POI 导出 EXCEL 经典实现 在 web 开发中,有一个经典的功能,就是数据的导入...

weixin_39840733的博客 780

POI 导出数据到 Excel

转载自:https://www.cnblogs.com/duanrantao/p/8683022.html 一、首先是导入poi所需要的jar包,我是用的是maven,添加jar包依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a...

lizhengyu891231的博客 471

POI导出excel

业主有个需求说是能把数据导出excel来看,这里我用到了poi。 其中poi是一套用于访问微软格式文档的Java API。poi有很多组件组成,其中有用于操作excel格式文件的HSSF和用于操作Word的HWPF。 下面我们介绍poi中的HSSF的各组件和相关实例。 HSSF(用于操作excel的组件): HSSFWorkbook excel的文件对像。就是我们桌面右键新建exc...

U2133048的博客 320
上一篇: 替换在list中的字符串 python
下一篇: Java 原生异步编程与Spring 异步编程 详解
刘天昭
博客等级 码龄10年 30粉丝 76原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值