java如何读取excel_JAVA如何读取Excel数据

1.创建Maven项目在pom文件中添加依赖

org.apache.poi

poi-ooxml

3.17

2.编写代码

import org.apache.poi.ss.usermodel.*;

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

import java.io.FileInputStream;

import java.io.IOException;

public class PoiTest {

public static void main(String[] args) throws IOException {

FileInputStream is = new FileInputStream("src/main/resources/test.xlsx");

XSSFWorkbook workbook = new XSSFWorkbook(is);

//读取Sheet

Sheet sheet = workbook.getSheetAt(0);

Row row = sheet.getRow(0);

//获取最大行数

int rownum = sheet.getPhysicalNumberOfRows();

//获取最大列数

int colnum = row.getPhysicalNumberOfCells();

for (int i = 0; i < rownum; i++) {

//获取第i行数据

row = sheet.getRow(i);

for (int j = 0; j < colnum; j++) {

Cell cell = row.getCell(j);

cell.setCellType(CellType.STRING);

String cellText = cell.getStringCellValue();

System.out.print(cellText + "\t");

}

System.out.println();

}

}

}

3.报错

3.1 异常解决Cannot get a STRING value from a NUMERIC cell poi

poi导入excel表格数据时报java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell异常是因为在读取cell单元格字符串时,有number类型的数据,因此需要把它转化为纯String类型,这样就不会报错了。

报错的地方类似于这样。

//获取单元格

XSSFCell cell = row.getCell(0);

//获取单元格数据

String cellValue = cell.getStringCellValue();

在number类型转化为String类型的过程中造成了Cannot get a STRING value from a NUMERIC cell这样的问题,因此需要在读取excel单元格数据转化之前设置单元格类型为String,代码如下。

//获取单元格

XSSFCell cell = row.getCell(0);

//设置单元格类型

cell.setCellType(CellType.STRING);

//获取单元格数据

String cellValue = cell.getStringCellValue();

3.2 poi导出Excel报错java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factoryat

Exception in thread "main" java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factoryat org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:436)

at org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:238)

at org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:229)

at exportexcel.BuildXLSX.main(BuildXLSX.java:35)

Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

... 4 more

错误原因:

未导入poi-ooxml-schema jar包。我使用的是poi-3.15 , 应该是poi-ooxml-schemas-3.15.jar包

以上就是JAVA如何读取Excel数据的详细内容,更多关于JAVA读取Excel数据的资料请关注脚本之家其它相关文章!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值