POI通用导出Excel(.xls,.xlsx)的方法

yizhihongxing

当我们需要将数据导出为Excel文件时,利用Apache POI这个强大的Java API可以快速简便地完成。以下是POI通用导出Excel(.xls,.xlsx)的方法攻略。

引入依赖

首先需要在Maven中引入POI的依赖:

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

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

创建工作簿和工作表

通过POI的API创建工作簿和工作表:

Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿或new HSSFWorkbook() //创建XLS格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表

创建标题行和数据行

常规的Excel文件包括标题行和数据行。通过POI的API可以创建这些行:

Row headerRow = sheet.createRow(0); //创建标题行
Cell headerCell = headerRow.createCell(0); //创建单元格
headerCell.setCellValue("姓名"); //设置单元格的值
//创建其他标题单元格,以此类推

Row dataRow = sheet.createRow(1); //创建数据行
Cell dataCell1 = dataRow.createCell(0); //创建单元格
dataCell1.setCellValue("张三"); //设置单元格的值
//创建其他数据单元格,以此类推

设置样式和格式

可以通过POI的API设置单元格的样式和格式:

Cell cell = row.createCell(0);
cell.setCellValue("文本");

//设置单元格的样式
CellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
cell.setCellStyle(style);

//设置单元格的格式
DataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat("0.00"));

导出Excel文件

最后,将工作簿写入文件中即可导出Excel文件:

FileOutputStream fos = new FileOutputStream("example.xlsx"); //创建输出流
workbook.write(fos); //写入工作簿到输出流
workbook.close(); //关闭工作簿

以下是两个示例:

示例1:导出一个简单的Excel文件

我们将导出一个只有一个工作表的Excel文件,其中包含姓名、年龄和地址三列,共计三行数据。

Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表

//创建标题行
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");

Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");

Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("地址");

//创建数据行
Row dataRow1 = sheet.createRow(1);
Cell dataCell11 = dataRow1.createCell(0);
dataCell11.setCellValue("张三");

Cell dataCell12 = dataRow1.createCell(1);
dataCell12.setCellValue(18);

Cell dataCell13 = dataRow1.createCell(2);
dataCell13.setCellValue("北京市海淀区");

Row dataRow2 = sheet.createRow(2);
Cell dataCell21 = dataRow2.createCell(0);
dataCell21.setCellValue("李四");

Cell dataCell22 = dataRow2.createCell(1);
dataCell22.setCellValue(20);

Cell dataCell23 = dataRow2.createCell(2);
dataCell23.setCellValue("上海市浦东区");

//导出Excel文件
FileOutputStream fos = new FileOutputStream("example.xlsx");
workbook.write(fos);
workbook.close();

示例2:导出一个带样式和格式的Excel文件

我们将导出一个带样式和格式的Excel文件,其中左侧的列数据显示为左对齐,右侧的列数据显示为右对齐,并且年龄列的数据显示为带2位小数的数字。

Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表

//创建标题行
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");

Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");

//设置标题样式
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setAlignment(HorizontalAlignment.CENTER);
headerCell1.setCellStyle(headerStyle);
headerCell2.setCellStyle(headerStyle);

//创建数据行
Row dataRow1 = sheet.createRow(1);
Cell dataCell11 = dataRow1.createCell(0);
dataCell11.setCellValue("张三");

Cell dataCell12 = dataRow1.createCell(1);
dataCell12.setCellValue(18);

//设置数据样式
CellStyle leftStyle = workbook.createCellStyle();
leftStyle.setAlignment(HorizontalAlignment.LEFT);
dataCell11.setCellStyle(leftStyle);

CellStyle rightStyle = workbook.createCellStyle();
rightStyle.setAlignment(HorizontalAlignment.RIGHT);
DataFormat format = workbook.createDataFormat();
rightStyle.setDataFormat(format.getFormat("0.00"));
dataCell12.setCellStyle(rightStyle);

//导出Excel文件
FileOutputStream fos = new FileOutputStream("example.xlsx");
workbook.write(fos);
workbook.close();

以上就是关于POI通用导出Excel(.xls,.xlsx)的方法攻略的完整讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:POI通用导出Excel(.xls,.xlsx)的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java实现外卖订餐系统

    Java实现外卖订餐系统攻略 1. 系统功能需求 外卖订餐系统通常包含以下功能: 用户注册、登录、修改资料功能 餐厅注册、登录、修改资料、添加、删除菜品功能 用户浏览菜品、加入购物车、下单、支付功能 餐厅处理订单、退款、发货功能 用户对订单进行评论、评分功能 管理员管理餐厅、菜品、订单等功能 2. 系统设计思路 基于以上功能需求,我们可以采用以下技术和方法来…

    Java 2023年5月19日
    00
  • 解决maven maven.compiler.source和maven.compiler.target的坑

    当使用 Maven 进行 Java 项目的构建时,有时候我们需要指定编译时使用的 JDK 版本,这时就需要通过设置 maven.compiler.source 和 maven.compiler.target 属性来实现。 但是在使用过程中,由于不同 JDK 版本之间的兼容性问题,可能会出现一些奇怪的编译错误,如“类或接口已过时”、“方法不存在”等,这时我们就…

    Java 2023年6月2日
    00
  • Java的MyBatis框架项目搭建与hellow world示例

    下面是关于Java的MyBatis框架项目搭建与hellow world示例的完整攻略: 1. MyBatis框架项目搭建 1.1 安装MyBatis 首先你需要安装MyBatis的Jar包以及相关依赖,你可以在Maven中央仓库中查找MyBatis的版本并下载对应版本的Jar包。 1.2 配置MyBatis 在项目中添加配置文件mybatis-config…

    Java 2023年5月20日
    00
  • SpringBoot入门之集成JSP的示例代码

    下面我就来详细讲解“SpringBoot入门之集成JSP的示例代码”的完整攻略。 1. 引言 Spring Boot 是一款基于 Spring 快速构建 Web 应用程序的框架,它内置了很多开箱即用的插件和工具,提供了一些默认的配置和约定,使得新手可以非常容易的上手和使用 Spring Boot。本文将会介绍如何使用 Spring Boot 集成 JSP,示…

    Java 2023年5月19日
    00
  • 基于Java中的数值和集合详解

    基于Java中的数值和集合详解 本文将介绍 Java 中的数值类型和集合类的基本知识,同时提供几个示例,帮助读者更好地理解这些概念。 数值类型 Java 中的基本数据类型包括整型(int 和 long)、浮点型(float 和 double)、字符型(char)和布尔型(boolean)。这些类型在计算机编程中非常常见,因此应当掌握。 整型 整型分为 int…

    Java 2023年5月26日
    00
  • Java 实现定时任务的三种方法

    以下是对“Java 实现定时任务的三种方法”的详细讲解: Java 实现定时任务的三种方法 在实际开发中,经常会遇到需要在固定时间或间隔时间内执行任务的情况,这时候需要使用定时任务来完成。Java 提供了很多种方式来实现定时任务,本文将介绍三种比较常用的方法。 一、使用 Timer/TimerTask 类实现定时任务 1.1 Timer/TimerTask …

    Java 2023年5月18日
    00
  • Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功能(时间支持在配置文件中配置)

    Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功能 在Spring Boot应用程序中使用缓存可以提高应用程序的性能和可扩展性。在缓存的过期时间到达时,应用程序将重新获取数据,并创建一个新的缓存项。在本文中,我们将探讨如何在Spring Boot应用程序中使用Redis来缓存数据,以及如何设置有效时间和自动刷新缓存功能。 设置依赖 首…

    Java 2023年5月31日
    00
  • 详解SpringCloud-OpenFeign组件的使用

    Spring Cloud OpenFeign是一个基于Netflix Feign的声明式Web服务客户端,它使得编写Web服务客户端变得更加容易。在本文中,我们将详细讲解Spring Cloud OpenFeign组件的使用。 增加依赖 首先,我们需要在pom.xml中增加Spring Cloud OpenFeign的依赖。下面是一个示例: <depe…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部