在此示例中,我们演示如何从Excel文件读取数据。在此示例中,我们限制为仅读取字符串数据。读取数据后,迭代Excel文件的每一行和单元格,我们将内容显示到程序控制台。
package org.nhooo.example.poi; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ExcelReadExample { public static void main(String[] args) { //Excel文件名。您可以创建一个完整的文件名 // 路径信息。 String filename = "data.xls"; // 创建一个ArrayList来存储从Excel工作表读取的数据。 List<List<HSSFCell>> sheetData = new ArrayList<>(); try (FileInputStream fis = new FileInputStream(filename)) { // 从文件系统创建一个excel工作簿。 HSSFWorkbook workbook = new HSSFWorkbook(fis); // 获取工作簿上的第一张纸。 HSSFSheet sheet = workbook.getSheetAt(0); // 当我们有一个工作表对象时,我们可以迭代 //每张纸的行和每行的单元格上。我们存储 // 在ArrayList上读取数据,以便我们可以打印 // 控制台的Excel内容。 Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); Iterator cells = row.cellIterator(); List<HSSFCell> data = new ArrayList<>(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); data.add(cell); } sheetData.add(data); } } catch (IOException e) { e.printStackTrace(); } showExcelData(sheetData); } private static void showExcelData(List<List<HSSFCell>> sheetData) { // 迭代数据并将其打印到控制台。 for (List<HSSFCell> data : sheetData) { for (HSSFCell cell : data) { System.out.println(cell); } } } }
我们上面的程序打印出以下几行:
AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD EEEEEEEEEE FFFFFFFFFF GGGGGGGGGG HHHHHHHHHH IIIIIIIIII JJJJJJJJJJ
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=org/apache/poi/poi/4.1.0/poi-4.1.0.jar --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency>