基于Java实现对Excel表格数据的读写(附B站详细讲解视频)

导读:本篇文章讲解 基于Java实现对Excel表格数据的读写(附B站详细讲解视频),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

基于Java实现对Excel表格数据的读写(附B站详细讲解视频)

文章目录

Maven依赖设置导入相应jar包

读取.xlsx表格文件数据

写入数据到.xlsx表格文件

 读写后缀名为.xls类型的表格文件(旧版表格文件)

 详细视频教程


Maven依赖设置导入相应jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>ReadExcel</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ReadExcel Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <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>
  <build>
    <finalName>ReadExcel</finalName>
  </build>
</project>

读取.xlsx表格文件数据

示例:

package Excel;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.util.Scanner;

public class ReadExcel {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入Excel表格文件的磁盘路径:");
        String str = input.next();
        new ReadExcel().readExcel(str);
    }
    public void  readExcel(String path){
        try{
            //1.建立输入流
            FileInputStream fip = new FileInputStream(path);
            //2.在输入流中获取Excel工作簿
            XSSFWorkbook book = new XSSFWorkbook(fip);
            //3.获取工作簿中要读取的工作表,可以通过工作表的下标(从0开始的)或者工作表的名称来获取
            XSSFSheet sheet = book.getSheetAt(0);
            //XSSFSheet sheet = book.getSheet("Sheet1");
            //读取表头字符串
            XSSFRow rows = sheet.getRow(0);
            String ss1 = rows.getCell(0).getStringCellValue();
            String ss2 = rows.getCell(1).getStringCellValue();
            String ss3 = rows.getCell(2).getStringCellValue();
            System.out.println(ss1+"\t\t"+ss2+"\t\t"+ss3);
            //4.获取工作表中数据的总行数
            int n = sheet.getPhysicalNumberOfRows();
            //5.循环逐行读取,打印输出
            for (int i = 1; i <n ; i++) {
                //读取第i行
                XSSFRow row = sheet.getRow(i);
                //读取第0,1,2列,
                String s1 = row.getCell(0).getStringCellValue();
                String s2 = row.getCell(1).getStringCellValue();
                double s3 = row.getCell(2).getNumericCellValue();
                //打印
                System.out.println(s1+"\t"+s2+"\t\t"+(int)s3);
            }
            //关闭输入流
            fip.close();
        }catch (Exception e){
            System.out.println(e);
        }
    }
}

运行截图:

基于Java实现对Excel表格数据的读写(附B站详细讲解视频)

 注意:

  • 读取时设置接收数据的变量数据类型要和表格中数据的类型要一致,否则类型不匹配会报错

基于Java实现对Excel表格数据的读写(附B站详细讲解视频)

  •  涉及文件流的操作必须要抛出异常,可以写在try代码块内部,或者在方法头处抛出响应异常
  •  当Excel文件单元格内数据为空时,要加以判断,否则会报空指针异常
//第0行
XSSFRow row = sheet.getRow(0);
XSSFCell cell=row.getCell(0);
//判断读取对象是否为空
if(cell==null||row==null){
    cell=row.createCell(0);
}
基于Java实现对Excel表格数据的读写(附B站详细讲解视频)
单元格为空时读取数据报空指针异常


写入数据到.xlsx表格文件

示例:

package Excel;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.util.Scanner;

public class WriteExcel {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入数据存放的磁盘路径:");
        String str = input.next();
        new WriteExcel().writeExcel(str);
    }
    public void writeExcel(String path){
        try{
            //1.建立输出流
            FileOutputStream fop = new FileOutputStream(path);
            //2.创建工作簿
            XSSFWorkbook book = new XSSFWorkbook();
            //3.创建工作表
            XSSFSheet sheet = book.createSheet();
            //4.创建一行
            XSSFRow row = sheet.createRow(0);//第0行,即首行
            //5.创建单元格即相应的列
            row.createCell(0).setCellValue("许红豆");//第0行的第0列
            row.createCell(1).setCellValue("谢之遥");//第0行的第1列
            //6.将工作簿写入到输出流,使得其写入到磁盘文件中去
            book.write(fop);
            //7.关闭输出流
            fop.close();
            System.out.println("写入成功!");
        }catch (Exception e){
            System.out.println("写入失败:"+e);
        }
    }
}

运行截图:

基于Java实现对Excel表格数据的读写(附B站详细讲解视频)


 读写后缀名为.xls类型的表格文件(旧版表格文件)

        .xlsx是新版的表格文件,而.xls是旧版的表格文件,二者读写的原理是一致的,代码相近,只是一些类名称不同,主要在工作簿、工作表、行的定义上有所区别

新版.xlsx

  • 工作簿定义
XSSFWorkbook book = new XSSFWorkbook(fip);
  •  工作表定义
XSSFSheet sheet = book.getSheetAt(0);
  • 行定义
XSSFRow rows = sheet.getRow(0);

旧版.xls

  • 工作簿
HSSFWorkbook book = new HSSFWorkbook (fip);
  • 工作表
Sheet sheet = book.getSheetAt(0);
Row rows = sheet.getRow(0);

 详细视频教程

【学习分享】JAVA如何读写Excel文档基于Java实现对Excel表格数据的读写(附B站详细讲解视频)https://www.bilibili.com/video/BV1aV411z7ey?p=4&vd_source=857668257512c5571840acab6bd48bf5

 END.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93430.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!