SpringBoot中使用 POI的示例代码

 更新时间:2023年08月21日 09:14:22   作者:大胖东  
这篇文章主要介绍了SpringBoot中使用POI的实例详解,包括引入poi的jar包和创建excel的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

POI简介

  Jakarta POI 是一套用于访问微软格式文档的Java API.
  组件HWPF用于操作Word的;
  组件HSSF用于操作Excel格式文件.

Excel的两种形式

demo.xls

  • demo.xls

为Excel2003的格式,其核心结构是复合文档类型的结构,存储数据量较小。在POI中使用HSSF对象操作。

  • demo.xlsx

为Excel2007的格式,其核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小,操作效率更高 。在POI中使用XSSF或SXSSF对象操作。

引入POI的jar包

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>RELEASE</version>
</dependency>
<!--POI-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.2</version>
</dependency>

前者用于引入HSSFWorkbook;后者用于引入XSSFWorkbook

创建Excel

1.创建workbook工作簿
Workbook wb = new XSSFWorkbook();
2.创建表单Sheet
Sheet sheet = wb.createSheet("test");
3.文件流
FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
4.写入文件
wb.write(fos);
5.关闭
fos.close();

创建单元格

 public static void main(String[] args) throws IOException {
//        1.创建workbook工作簿
     Workbook wb = new XSSFWorkbook();
//        2.创建表单Sheet
     Sheet sheet = wb.createSheet("test的sheet");
//        3.创建行对象,从0开始
     Row row = sheet.createRow(0);
//        4.创建单元格,从0开始
     Cell cell = row.createCell(0);
//        5.单元格写入数据
     cell.setCellValue("以往有人这样说过:“不要因为一件事的终止而感到悲伤,因为终点就是起点,它将为你开拓一个更广阔的世界。”……123");
//        6.XSSFCellStyle设置单元格样式
     CellStyle cellStyle = wb.createCellStyle();
     cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
     // 设置背景颜色
     cellStyle.setFillForegroundColor((short)3);
     cell.setCellStyle(cellStyle);
     Sheet sheet2 = wb.getSheet("test的sheet");
     Row row2 = sheet2.getRow(0);
     Cell cell2 = row2.getCell(0);
     String stringCellValue = cell2.getStringCellValue();
     System.out.println(stringCellValue);
//        7.文件流
     FileOutputStream fos = new FileOutputStream("E:\\test.xlsx");
//        8.写入文件
     wb.write(fos);
//        9.关闭
     wb.close();
     fos.close();
}

设置格式(样式) 创建单元格样式对象

CellStyle cellStyle = wb.createCellStyle();

居中

cellStyle.setAlignment(HorizontalAlignment.CENTER);

设置边框

cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);

设置字体颜色

Font font = workbook.createFont();
font.setColor(Font.COLOR_RED);		//红色
cellStyle.setFont(font);

合并单元格

//firstRow第一行
//lastRow最后一行
//firstCol第一列
//lastCol最后一列
CellRangeAddress cellRangeAddress = new CellRangeAddress(2, 2, 0, 11);
sheet.addMergedRegion(cellRangeAddress);//合并单元格

为合并的单元格+边框

//边框样式
//合并的单元格
//创建的表单Sheet
RegionUtil.setBorderTop(BorderStyle.THIN, cellRangeAddress, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, cellRangeAddress, sheet);
RegionUtil.setBorderBottom(BorderStyle.THIN, cellRangeAddress, sheet);
RegionUtil.setBorderLeft(BorderStyle.THIN, cellRangeAddress, sheet);

自动调整列宽

//列号
sheet.autoSizeColumn(1);

到此这篇关于SpringBoot中使用 POI的文章就介绍到这了,更多相关SpringBoot使用 POI内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用mongoTemplate实现多条件加分组查询方式

    使用mongoTemplate实现多条件加分组查询方式

    这篇文章主要介绍了使用mongoTemplate实现多条件加分组查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 浅谈静态变量、成员变量、局部变量三者的区别

    浅谈静态变量、成员变量、局部变量三者的区别

    下面小编就为大家带来一篇浅谈静态变量、成员变量、局部变量三者的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则

    在本文里我们给大家详细分享了关于java内部类的访问格式和规则知识点内容,有兴趣的朋友们学习下。
    2018-10-10
  • Struts2截取字符串代码介绍

    Struts2截取字符串代码介绍

    这篇文章主要介绍了Struts2截取字符串代码介绍,介绍了基本的截取方法,以及截取带html标签字符串的方法,需要的朋友可以了解下。
    2017-09-09
  • Java程序员必备的11大IntelliJ插件(附地址)

    Java程序员必备的11大IntelliJ插件(附地址)

    这篇文章主要介绍了Java程序员必备的11大IntelliJ插件(附地址),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • SpringBoot使用JPA实现查询部分字段

    SpringBoot使用JPA实现查询部分字段

    这篇文章主要介绍了SpringBoot使用JPA实现查询部分字段方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 浅谈springboot 属性定义

    浅谈springboot 属性定义

    本篇文章主要介绍了浅谈springboot 属性定义,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java高级面试题小结

    Java高级面试题小结

    本文主要介绍了一些在Java面试过程中的一些高级面试题,包括对部分名词的释义及代码解析,具有一定收藏价值,需要的朋友可以参考下
    2017-09-09
  • springboot返回前端中文乱码的解决

    springboot返回前端中文乱码的解决

    这篇文章主要介绍了springboot返回前端中文乱码的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • jedispool连redis高并发卡死的问题

    jedispool连redis高并发卡死的问题

    本篇文章主要介绍了jedispool连redis高并发卡死的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论