基于Java实现对Excel表格数据的读写(附B站详细讲解视频)
创始人
2024-05-21 10:16:41

文章目录

Maven依赖设置导入相应jar包

读取.xlsx表格文件数据

写入数据到.xlsx表格文件

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

 详细视频教程


Maven依赖设置导入相应jar包

4.0.0org.exampleReadExcelwar1.0-SNAPSHOTReadExcel Maven Webapphttp://maven.apache.orgjunitjunit3.8.1testorg.apache.poipoi3.17org.apache.poipoi-ooxml3.17ReadExcel


读取.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 

运行截图:

 注意:

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

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


写入数据到.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);}}
}

运行截图:


 读写后缀名为.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文档https://www.bilibili.com/video/BV1aV411z7ey?p=4&vd_source=857668257512c5571840acab6bd48bf5

 END.

相关内容

热门资讯

最新或2023(历届)关于铁人... 王进喜,1923年10月8日出生于甘肃省玉门县赤金堡一个贫苦的农民家庭。6岁讨饭,10岁给地主放牛,...
最新或2023(历届)森林防火... 森林防火须知手抄报图片
原创 半... 朝方突然甩出一份声明,把刚有点缓和苗头的半岛,一脚踹回了紧张模式。 2025新年钟声才敲响几天,...