Java 如何读取Excel格式xls、xlsx数据工具类

Java如何读取Excel格式xls、xlsx数据

在Java中,我们可以使用POI库来操作Excel文件,这个库支持读取和写入Excel文件。下面我们将通过两个示例来讲解如何读取Excel格式xls、xlsx数据。

示例1:读取Excel文件中的数据

  1. 首先我们需要引入相关依赖。在pom.xml文件中添加以下配置:
<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>
</dependencies>
  1. 然后我们需要创建一个工作簿对象,读取Excel文件并获取其中的数据。以下是完整代码:
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel {

    public static void main(String[] args) {
        List<List<String>> data = new ArrayList<List<String>>();
        try {
            InputStream is = new FileInputStream("test.xlsx");
            Workbook workbook = new XSSFWorkbook(is);
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                List<String> rowData = new ArrayList<String>();
                for (Cell cell : row) {
                    rowData.add(cell.getStringCellValue());
                }
                data.add(rowData);
            }
            workbook.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(data);
    }

}
  1. 以上代码中,我们首先创建一个空的List变量来保存Excel中的数据。然后我们通过FileInputStream从磁盘中读取Excel文件,构建一个Workbook对象。接着我们从Workbook对象中获取第一张Sheet,遍历每一行,在每一行中读取每一列的单元格中的数据,并将其添加到List中。最后,我们打印出保存了Excel中数据的List变量的值。

示例2:读取Excel文件中的指定单元格

在这个示例中,我们将介绍如何读取Excel文件中的指定单元格。以下是完整代码:

import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcelCell {

    public static void main(String[] args) {
        try {
            InputStream is = new FileInputStream("test.xlsx");
            Workbook workbook = new XSSFWorkbook(is);
            Sheet sheet = workbook.getSheetAt(0);
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);
            String value = cell.getStringCellValue();
            System.out.println(value);
            workbook.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

以上代码中,我们首先创建一个空的List变量来保存Excel中的数据。然后我们通过FileInputStream从磁盘中读取Excel文件,构建一个Workbook对象。接着我们从Workbook对象中获取第一张Sheet,并获取第一行和第一列中的单元格。最后,我们打印出第一行第一列的单元格中的数据。

总结

读取Excel文件的过程需要通过POI的API来完成,包括创建工作簿对象、获取Sheet对象、获取Row对象、获取Cell对象以及读取单元格中的数据等。通过以上两个示例的实现,可以让我们更好地理解如何在Java中读取Excel文件中的数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 如何读取Excel格式xls、xlsx数据工具类 - Python技术站

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

相关文章

  • Sprint Boot @Email使用方法详解

    @Email是Spring Boot中的一个注解,用于标记一个字段或方法参数的值必须是一个合法的电子邮件地址。在本文中,我们将详细介绍@Email注解的作用和使用方法,并提供两个示例。 @Email注解的作用 @Email注解用于标记一个字段或方法参数的值必须是一个合法的电子邮件地址。当使用@Email注解标记一个字段或方法参数时,如果该字段或方法参数的值不…

    Java 2023年5月5日
    00
  • Redis数据库中实现分布式锁的方法

    下面是详细讲解 Redis 数据库中实现分布式锁的方法的完整攻略。 什么是分布式锁? 分布式锁是指多个进程或者不同的机器在进行分布式系统协同工作时,为了避免数据同时被多个进程或机器访问而导致数据不一致或者错误的问题而采用的同步机制。 在 Redis 中实现分布式锁是非常常见和实用的场景,下面将主要阐述 Redis 实现分布式锁的方法。 实现 Redis 分布…

    Java 2023年5月19日
    00
  • Java 逻辑控制详解分析

    Java 逻辑控制详解分析 概述 逻辑控制是程序设计中最基本的概念之一,它能够控制程序的流程、分支、循环等,以达到特定的目的。在 Java 编程语言中,逻辑控制主要包括条件语句、循环语句、跳转语句等。本文将从这三个方面详细介绍 Java 逻辑控制的使用方法。 条件语句 条件语句主要包括 if 和 switch 两种语句,它们都是通过判断条件来决定程序的执行流…

    Java 2023年5月23日
    00
  • maven配置阿里云仓库的实现方法

    下面是关于”Maven配置阿里云仓库的实现方法”的完整攻略: 为什么需要配置阿里云仓库 Maven是一个可扩展的构建工具,它自带默认仓库地址,但是默认仓库的下载速度非常慢,因此我们可以使用其他仓库镜像来提高下载速度。阿里云提供了Maven的镜像仓库,使用阿里云仓库可大大提高Maven包的下载速度。 阿里云仓库配置方法 在maven/conf/settings…

    Java 2023年5月20日
    00
  • SpringBoot多数据源的两种实现方式实例

    下面我就为你详细讲解一下“SpringBoot多数据源的两种实现方式实例”的完整攻略。 SpringBoot多数据源的两种实现方式实例 为什么需要多数据源 在实际开发中,我们可能会遇到这样的情况:业务系统需要同时连接多个数据库进行数据操作。此时单数据源的方式已无法满足需求,必须使用多数据源来进行解决。 方案一:使用@Primary注解 1.添加多数据源配置项…

    Java 2023年5月20日
    00
  • Java判断对象是否为空(包括null ,””)的方法

    判断对象是否为空是Java开发中非常常见的操作,正确的判断方式可以避免很多空指针异常的出现。以下是几种常见的判断对象是否为空的方法。 1.使用“==”运算符判断是否为null 在Java中,使用“==”运算符判断对象是否为null是最常用的方式,代码示例如下: Object obj = null; if (obj == null) { // 对象为空 } e…

    Java 2023年5月26日
    00
  • spring boot 2.x静态资源会被拦截器拦截的原因分析及解决

    一、问题描述 在使用Spring Boot 2.x开发项目时,我们可能会遇到一个问题,即静态资源(如CSS、JS、图片等)会被拦截器拦截而无法正常加载导致页面样式、交互等异常。这是因为Spring Boot 2.x采用了不同于之前版本的WebMvcConfigurerAdapter配置方式,在配置拦截器时需要特别注意。 二、原因分析 在Spring Boot…

    Java 2023年5月20日
    00
  • 什么是Java线程安全性?

    什么是Java线程安全性 Java线程安全性指的是当多个线程同时访问同一个对象时,保证该对象的行为(包括数据和状态)能够正确地被所有线程访问,而不需要担心数据竞争、死锁等并发问题的发生。 实现Java线程安全的方式有多种,例如使用锁、原子性操作等。 如何实现Java线程安全 以下是几种常见的实现Java线程安全方式: 使用synchronized同步方法 使…

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