Java从Excel读取xlsx格式数据
Excel 是办公软件套装中经常使用的一款电子表格软件,其中 xlsx 是 Excel 2007 或更高版本中使用的默认文件格式。在工作中,我们需要使用 Java 读取 xlsx 数据进行后续处理。这里我们就来介绍一下 Java 读取 xlsx 数据的方法。
创建 xlsx 文件
在开始操作之前,我们需要先创建一个 xlsx 文件,这里我们以学生成绩单为例,创建一个包含学生成绩信息的 xlsx 文件。首先我们打开 Excel 2007 或更高版本,创建一个新的工作簿(即 File -> New -> Workbook)。在第一个工作表中,创建一个表格,注意表头及表格数据类型,如下:
学生姓名 | 语文成绩 | 数学成绩 | 英语成绩 |
---|---|---|---|
张三 | 89 | 93 | 87 |
李四 | 92 | 91 | 96 |
王五 | 87 | 88 | 84 |
完成上述表格之后,保存为一个 xlsx 文件。
导入依赖库
我们需要导入 Apache POI 依赖库来实现 Java 读取 xlsx 数据,记得在导入代码后要刷新。在 Maven 项目的 pom.xml 文件中添加以下依赖:
<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>
读取 xlsx 数据
在依赖库导入后,我们可以开始编写代码来读取 xlsx 文件中的数据。以下代码演示了如何读取上述学生成绩单文件中的数据:
import java.io.File;
import java.io.FileInputStream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadExcel {
public static void main(String[] args) {
try {
FileInputStream file = new FileInputStream(new File("学生成绩单.xlsx"));
// 通过构造函数创建 XSSFWorkbook 对象实例
XSSFWorkbook workbook = new XSSFWorkbook(file);
// 获得第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一个单元格
for (Cell cell : row) {
// 根据元素类型输出
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
default:
break;
}
}
System.out.println();
}
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在代码中,我们首先通过 FileInputStream 对象获取到 xlsx 文件的输入流,再通过 XSSFWorkbook 对象实例将其读入内存中。我们通过 getSheetAt 方法获取到工作表实例(这里是第一个工作表),再通过 for 循环遍历表格中的每一行数据,最后通过 switch 语句判断单元格数据的类型,输出相应的数据值。
注意事项
在程序中进行文件读取时,需要特别注意以下事项:
文件路径:要读取文件,需要指定文件的路径。文件路径一般是以项目根目录为初始路径,即你把xlsx文件放在根目录下就不用加任何前缀只需要写文件的文件名称.xlsx就行。
上述图片文件路径就应该是src/main/java/Test3/FirstQuestion/excel.xlsx,项目根目录Test不用写。
文件编码:如果要读取文本文件,需要注意文件编码格式。常见的编码格式有UTF-8、GB2312等等。读取文件时需指定正确的编码格式,否则有可能会出现乱码。
数据类型:在读取不同的数据类型时,需要注意数据类型的格式与文件中的格式是否一致。如果不一致,需要进行数据类型转换,否则可能会出现数据读取错误。
读取位置:要读取文件中的数据,需要准确地指定读取的位置。这个位置可以是文件的指定行、指定列、指定字符位置等等,此时需要使用正确的读取方法来指定位置,如使用Row row = sheet.getRow(i)读取行数据,使用row.getCell(0).get...指定读取位置等等。
文件读取完毕后,需要对文件进行关闭操作,以释放资源。
总之,在进行文件读取时,需要准确地指定文件路径、编码格式和读取位置,以及选择正确的数据类型和读取方法,才能够正常读取文件中的数据。
结束语
以上就是使用 Java 读取 xlsx 数据的方法及示例程序,希望对大家有所帮助。总的来说,读取 xlsx 数据一般分为三个步骤:创建 xlsx 文件,导入依赖库,读取 xlsx 数据。我们需要注意依赖库版本与文件路径的问题,在代码中调用相关 API 实现具体的操作。
Comments | NOTHING