java poi xls xlxs,Java利用poi解析xlsx和xls文件

首先,为什么使用poi?jxl只能处理03版之前的excel,也就是xls结尾的,不能处理xlsx。poi兼容两种格式,poi解析两种格式的文件时,唯一的不同就是xls时,为HSSF;xlsx时,为XSSF。

首先是处理Cell对象的小方法:

//这个方法对cell进行处理,传入cell对象,返回cell中内容,String类型。

public static String getCellFormatValue(Cell cell) {

String cellValue = "";

if (cell != null) {

// 判断cell类型

switch (cell.getCellType()) {

case Cell.CELL_TYPE_NUMERIC: {

cellValue = String.valueOf(cell.getNumericCellValue());

break;

}

case Cell.CELL_TYPE_STRING: {

cellValue = cell.getRichStringCellValue().getString();

break;

}

default:

cellValue = "";

}

}

return cellValue;

}

两种处理excel的代码:

xls时:

InputStream inputStream = new FileInputStream("绝对路径.xls");

HSSFWorkbook workbook = new HSSFWorkbook(inputStream);

HSSFSheet s = workbook.getSheetAt(0);

for (int j = 0; j < s.getPhysicalNumberOfRows(); j++) {//获取总行数

Row row = s.getRow(j); // 取出第i行 getRow(index) 获取第(j)行

for (int k = 0; k < row.getPhysicalNumberOfCells(); k++) { // getPhysicalNumberOfCells() 获取当前行的总列数

String value1 = getCellFormatValue(row.getCell(k));//取出第j行第k列的值

System.out.println(value1);

}

}

workbook.close();

xlsx时:

InputStream inputStream = new FileInputStream("绝对路径.xlsx");

XSSFWorkbook workbook = new XSSFWorkbook(inputStream);

XSSFSheet s = workbook.getSheetAt(0);

for (int j = 0; j < s.getPhysicalNumberOfRows(); j++) {//获取总行数

Row row = s.getRow(j); // 取出第i行 getRow(index) 获取第(j)行

for (int k = 0; k < row.getPhysicalNumberOfCells(); k++) { // getPhysicalNumberOfCells() 获取当前行的总列数

String value1 = getCellFormatValue(row.getCell(k));//取出第j行第k列的值

System.out.println(value1);

}

}

workbook.close();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值