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导出的更多相关文章

  1. 转:POI操作Excel导出

    package com.rd.lh.util.excel; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; ...

  2. Apache POI实现excel导出

    链接:http://poi.apache.org/ Excel数据导出步骤: 使用poi 完成账户数据的导出功能 导入poi  jar包并添加到classpath中 1.查询数据 2.定义导出头 St ...

  3. POI之Excel导出

    1,在maven的pom文件中添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId& ...

  4. poi实现Excel导出

    最近做了一个导出Excel的小功能,以前没接触过,现在分享下自己的代码,想让各位帮忙看看有啥地方可以优化,也方便自己以后查阅... 首先是excelAction的代码: /** * excelActi ...

  5. poi excel导出,下载

    poi.jar包 public void downExcel(HttpServletResponse response,Page<ShopApply> page) throws Excep ...

  6. 使用POI实现数据导出Excel表格

    package cn.sh.bzt.kwj.action; import java.io.IOException; import java.io.OutputStream; import java.t ...

  7. Java中使用poi导入、导出Excel

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  8. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  9. POI通过模板导出EXCEL文件

    一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...

  10. 纳税服务系统【用户模块之使用POI导入excel、导出excel】

    前言 再次回到我们的用户模块上,我们发现还有两个功能没有完成: 对于将网页中的数据导入或导出到excel文件中,我们是完全没有学习过的.但是呢,在Java中操作excel是相对常用的,因此也有组件供我 ...

随机推荐

  1. 实验2.ARP实验

    # 实验2.ARP实验 本实验用于验证arp以及arp表,arp缓存的使用,测试ping包时arp表的更新机制. 实验组 PC1 10.68.57.10 255.255.255.0 00-00-00- ...

  2. .NET 个人博客-发送邮件优化🧐

    个人博客-发送邮件优化 前言 之前的发送邮件就弄了个方法,比如回复评论会给评论的人发送邮件,留言回复也是,而且2者的代码有很多一样的地方,比较冗余.然后也是抽空优化一下,思路也是比较常用的工厂+策略模 ...

  3. NXP i.MX 6ULL工业核心板规格书( ARM Cortex-A7,主频792MHz)

    1 核心板简介 创龙科技SOM-TLIMX6U是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的低成本工业级核心板,主频792MHz,通过邮票孔连接方式引出Eth ...

  4. 如何让 3D 数字孪生场景闪闪发光

    今日图扑软件功能分享:我们将探讨 HT 系统如何通过分组管理灯光.裁切体和流光,以提高场景光影效果的精准度和整体可控性. HT 中的灯光.裁切体.流光是会影响它所在区域一定范围内的其他节点的表现,如 ...

  5. 洛谷P2845

    蓝题搜索,模拟上的细节稍微有点麻烦 #include<iostream> #include<utility> #include<vector> #include&l ...

  6. django如何将查询结果的栏位和数值自动遍历出来

    在Django中,MT003HModel.objects.all() 返回的是一个 QuerySet 对象,你可以使用迭代器来遍历其中的每个对象,然后访问对象的属性来获取栏位和数值. 以下是一个简单的 ...

  7. vb.net 实现excel导入的时候滚动显示导入的数据

    如果你想在 Excel 导入过程中滚动显示导入的数据,可以使用逐行读取 Excel 数据并在滚动窗口中显示. 在 VB.NET 中,你可以使用 Excel.Range 对象逐行读取 Excel 数据, ...

  8. [oeasy]python0122_日韩字符_日文假名_JIS_Shift_韩国谚文

    日文假名和韩国谚文 回忆上次内容 上次回顾了非ascii的拉丁字符编码的进化过程 0-127 是 ascii 的领域   世界各地编码分布 拉丁字符扩展 ascii 共 16 种 由iso组织制定 从 ...

  9. WPF使用AppBar实现窗口停靠,适配缩放、全屏响应和多窗口并列(附封装好即开即用的附加属性)

    在吕毅大佬的文章中已经详细介绍了什么是AppBar: WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) - walterlv 即让窗口固定在屏幕某一边 ...

  10. PHP进阶

    只是简要说明起原理和用法,具体可以百度 abstract 抽象类 抽象类是指在 class 前加了 abstract 关键字且存在抽象方法,不带{},如public function test() i ...