poi的excel导出
poi的excel导出
这个导出依赖于模板文件,可便捷设置表头样式。 也可以不使用模板,直接创建。
1.引入poi依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2.准备模板文件

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.运行后效果图

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();
总结
获取某行或者某列时候,尽量用创建方式,除非确定行和列都能被获取到(行列不做操作、修改格式的情况下内容是空,会报空指针)
poi的excel导出的更多相关文章
- 转:POI操作Excel导出
package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...
- Apache POI实现excel导出
链接:http://poi.apache.org/ Excel数据导出步骤: 使用poi 完成账户数据的导出功能 导入poi jar包并添加到classpath中 1.查询数据 2.定义导出头 St ...
- POI之Excel导出
1,在maven的pom文件中添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId& ...
- poi实现Excel导出
最近做了一个导出Excel的小功能,以前没接触过,现在分享下自己的代码,想让各位帮忙看看有啥地方可以优化,也方便自己以后查阅... 首先是excelAction的代码: /** * excelActi ...
- poi excel导出,下载
poi.jar包 public void downExcel(HttpServletResponse response,Page<ShopApply> page) throws Excep ...
- 使用POI实现数据导出Excel表格
package cn.sh.bzt.kwj.action; import java.io.IOException; import java.io.OutputStream; import java.t ...
- Java中使用poi导入、导出Excel
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- Java使用POI实现数据导出excel报表
Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...
- POI通过模板导出EXCEL文件
一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...
- 纳税服务系统【用户模块之使用POI导入excel、导出excel】
前言 再次回到我们的用户模块上,我们发现还有两个功能没有完成: 对于将网页中的数据导入或导出到excel文件中,我们是完全没有学习过的.但是呢,在Java中操作excel是相对常用的,因此也有组件供我 ...
随机推荐
- 实验2.ARP实验
# 实验2.ARP实验 本实验用于验证arp以及arp表,arp缓存的使用,测试ping包时arp表的更新机制. 实验组 PC1 10.68.57.10 255.255.255.0 00-00-00- ...
- .NET 个人博客-发送邮件优化🧐
个人博客-发送邮件优化 前言 之前的发送邮件就弄了个方法,比如回复评论会给评论的人发送邮件,留言回复也是,而且2者的代码有很多一样的地方,比较冗余.然后也是抽空优化一下,思路也是比较常用的工厂+策略模 ...
- NXP i.MX 6ULL工业核心板规格书( ARM Cortex-A7,主频792MHz)
1 核心板简介 创龙科技SOM-TLIMX6U是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的低成本工业级核心板,主频792MHz,通过邮票孔连接方式引出Eth ...
- 如何让 3D 数字孪生场景闪闪发光
今日图扑软件功能分享:我们将探讨 HT 系统如何通过分组管理灯光.裁切体和流光,以提高场景光影效果的精准度和整体可控性. HT 中的灯光.裁切体.流光是会影响它所在区域一定范围内的其他节点的表现,如 ...
- 洛谷P2845
蓝题搜索,模拟上的细节稍微有点麻烦 #include<iostream> #include<utility> #include<vector> #include&l ...
- django如何将查询结果的栏位和数值自动遍历出来
在Django中,MT003HModel.objects.all() 返回的是一个 QuerySet 对象,你可以使用迭代器来遍历其中的每个对象,然后访问对象的属性来获取栏位和数值. 以下是一个简单的 ...
- vb.net 实现excel导入的时候滚动显示导入的数据
如果你想在 Excel 导入过程中滚动显示导入的数据,可以使用逐行读取 Excel 数据并在滚动窗口中显示. 在 VB.NET 中,你可以使用 Excel.Range 对象逐行读取 Excel 数据, ...
- [oeasy]python0122_日韩字符_日文假名_JIS_Shift_韩国谚文
日文假名和韩国谚文 回忆上次内容 上次回顾了非ascii的拉丁字符编码的进化过程 0-127 是 ascii 的领域 世界各地编码分布 拉丁字符扩展 ascii 共 16 种 由iso组织制定 从 ...
- WPF使用AppBar实现窗口停靠,适配缩放、全屏响应和多窗口并列(附封装好即开即用的附加属性)
在吕毅大佬的文章中已经详细介绍了什么是AppBar: WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) - walterlv 即让窗口固定在屏幕某一边 ...
- PHP进阶
只是简要说明起原理和用法,具体可以百度 abstract 抽象类 抽象类是指在 class 前加了 abstract 关键字且存在抽象方法,不带{},如public function test() i ...