java xlsx用哪个类_Java读excel(xlsx和xls)两种类型

导入的pom:

org.apache.poi

poi

3.16

org.apache.poi

poi-ooxml

3.14

net.sourceforge.jexcelapi

jxl

2.6.10

工具类:

package com.ruowei.Utils;

import com.ruowei.exception.BusinessException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

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;

import java.io.File;

import java.io.FileInputStream;

import java.text.DecimalFormat;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

* @Author 隋全通(copy环球)

* @Date 2019/4/17 14:36

* @Description读excel 文件的方法接口,读取直接存放数据库

* @Param

* @return

**/

public class ObjectExcelRead {

/**

* @param filepath //文件路径

* @param filename //文件名

* @param startrow //开始行号

* @param startcol //开始列号

* @param sheetnum //sheet

* @return list

*/

public static List readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {

List varList = new ArrayList();

try {

File target = new File(filepath);

FileInputStream fi = new FileInputStream(target);

//进行版本选择解析方式

Workbook wb = null;

if (filename.endsWith(".xlsx")) {

//

wb = new XSSFWorkbook(fi);

} else if (filename.endsWith(".xls")) {

wb = new HSSFWorkbook(fi);

} else {

throw new BusinessException("不是Excel文件!",-2);

}

Sheet sheet = wb.getSheetAt(sheetnum); //sheet 从0开始

int rowNum = sheet.getLastRowNum() + 1; //取得最后一行的行号

for (int i = startrow; i < rowNum; i++) { //行循环开始

PageData varpd = new PageData();

Row row = sheet.getRow(i); //行

int cellNum = row.getLastCellNum(); //每行的最后一个单元格位置

for (int j = startcol; j < cellNum; j++) { //列循环开始

Cell cell = row.getCell(Short.parseShort(j + ""));

String cellValue = null;

if (null != cell) {

switch (cell.getCellType()) { // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库

case 0:

DecimalFormat format = new DecimalFormat("#");

//cellValue = String.valueOf((int) cell.getNumericCellValue()); //int 类型操作

cellValue = format.format(cell.getNumericCellValue());

break;

case 1:

cellValue = cell.getStringCellValue();

break;

case 2:

cellValue = cell.getNumericCellValue() + "";

// cellValue = String.valueOf(cell.getDateCellValue());

break;

case 3:

cellValue = "";

break;

case 4:

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

break;

case 5:

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

break;

}

} else {

cellValue = "";

}

varpd.put("var" + j, cellValue);

}

varList.add(varpd);

}

} catch (Exception e) {

System.out.println(e);

}

return varList;

}

}

a5f5218734f5d96ce844e087d4729ded.gif

068be7e19a8fd7ea1cc73db7ddbb42c1.png

qq_775879106

发布了35 篇原创文章 · 获赞 16 · 访问量 3万+

私信

关注

标签:xlsx,Java,int,excel,new,cell,poi,import,cellValue

来源: https://blog.csdn.net/qq_36245532/article/details/104059320

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值