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

当我们需要将数据导出为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日

相关文章

  • JavaWeb利用struts实现文件下载时改变文件名称

    下面是Java Web利用Struts实现文件下载时改变文件名称的完整攻略: 文件下载功能的实现 在Struts框架中实现文件下载的功能需要: 在action中编写下载文件的方法。 在struts.xml配置文件中添加对应的action和result。 在前端页面中添加下载链接。 代码演示: 1. 在action中编写下载文件的方法 public class…

    Java 2023年5月20日
    00
  • 基于Java SpringBoot的前后端分离信息管理系统的设计和实现

    基于Java SpringBoot的前后端分离信息管理系统的设计和实现攻略 一、背景介绍 随着互联网时代的到来,信息管理成为重要的需求。而采用前端和后端分离的开发方式可以提高开发效率和减轻后端压力。本文将介绍基于Java SpringBoot的前后端分离信息管理系统的设计和实现攻略。 二、技术栈 后端:Java SpringBoot、MyBatis、Swag…

    Java 2023年6月3日
    00
  • .net socket客户端实例代码分享

    在这里我将详细介绍“.net socket客户端实例代码分享”的完整攻略,并提供两条示例代码。 什么是.net socket客户端? .net socket客户端是一种基于Socket技术的网络编程模型,使用.net framework中的Socket类来建立与服务器的连接,进行数据传输等操作。它常用于需要高效、快速、灵活地进行网络通讯的应用场景。 .net…

    Java 2023年5月19日
    00
  • java 将 list 字符串用逗号隔开拼接字符串的多种方法

    下面是详细讲解“java 将 list 字符串用逗号隔开拼接字符串的多种方法”的完整攻略: 1. 使用 StringJoiner 在 Java 8 中新增了 StringJoiner 类,可以方便地将集合中的元素用指定的分隔符拼接成字符串。示例代码如下: List<String> list = new ArrayList<>(); l…

    Java 2023年5月27日
    00
  • 分享7款开源Java反编译工具

    这里是分享7款开源Java反编译工具的攻略。 1. 简介 反编译是指将已编译的二进制文件转换为可读懂的源代码文件的过程,而Java反编译工具就是用来对Java类文件进行反编译。开源的Java反编译工具越来越多,本文将介绍七款比较知名的Java反编译工具。 2. JD-GUI JD-GUI是一个免费的开源反编译工具,能够将.class文件反编译为Java源代码…

    Java 2023年5月19日
    00
  • Java自定义一个变长数组的思路与代码

    首先我们来讲一下如何自定义一个变长数组。 思路 实现一个变长数组需要将数据存储在连续的内存空间中,并能够对数组的大小进行动态调整。具体实现中,我们需要考虑以下几点: 数组的存储:数组需要存储在内存空间中,可以使用Java中的数组或对象来存储。 数组的大小:数组大小的动态调整可以通过重新分配内存空间实现。 数组的操作:支持向数组中插入、删除、修改元素,以及获取…

    Java 2023年5月26日
    00
  • 一文带你了解Java万物之基之Object类

    一文带你了解Java万物之基之Object类 Java语言中的每个类都是继承自基类Object,因此Object类是所有类的父类。这篇文章将会介绍Object类的常用方法和示例说明。 常用方法 equals Object类的equals方法用于比较两个对象是否相等。Object类的equals方法使用的是比较对象的地址值,即两个对象的地址是否相同,若相同则返…

    Java 2023年5月26日
    00
  • Java实现文件的加密解密功能示例

    下面是实现文件加密解密功能的完整攻略。 简介 文件加密解密是普遍应用于信息安全领域的技术。Java是一种流行、跨平台的编程语言,在文件加密解密方面提供了许多解决方案。Java可以通过对文件进行加密,实现数据安全传输,或者对文件进行解密,实现数据安全的读取和使用。 实现步骤 Java实现文件的加密和解密功能的基本思路是:先将文件读取到内存中,然后对内存中的数据…

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