小言_互联网的博客

xlsx,xls转java对象

280人阅读  评论(0)

============================Start
xlsx,xls都行哒
文件截图

文件内容:

话不多说代码先上
先导入jar包

org.apache.poi
poi-ooxml
3.17


javabean对象
import lombok.Data;

@Data
public class TestDo {
private String oneTest;
private String twoTest;
}

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.junit.Test;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

public class test {
@Test
public void test1() throws Exception {
//获得本地文件地址
File file = new File(“C:/Users/ermeng/Desktop/result.xlsx”);
//以文件流的形式转换成工作簿
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream(file));
//一表的形式获得工作博Sheet1是默认生成的工作簿名
HSSFSheet hssfSheet = hssfWorkbook.getSheet(“Sheet1”);
//获得表的总行数作为for循环的条件
int rows = hssfSheet.getPhysicalNumberOfRows();
//提前创建数字对象集合用于存放工作簿转换的数据
List testDoList = new ArrayList<>();
for (int i = 1; i < rows; i++) {
//获得每一行数据 一般第一行0是表头这里不获得直接从1开始
HSSFRow hssfRow = hssfSheet.getRow(i);
if (hssfRow != null) {
//新建对象
TestDo testDo = new TestDo();
//获得第一列数据
HSSFCell hssfCellOne = hssfRow.getCell(0);
//获取单元格的值并放入对象
testDo.setOneTest(getValue(hssfCellOne));
//获得第二列数据
HSSFCell hssfCellTwo = hssfRow.getCell(1);
//获取单元格的值并放入对象
testDo.setTwoTest(getValue(hssfCellTwo));
//放入数组
testDoList.add(testDo);
}
}
System.out.println(testDoList);
}

//获得每一单元格的数据
private String getValue(HSSFCell hssfCell) {
    //判断为空时直接返回空字符串
    if (hssfCell == null) {
        return "";
    }
    // 判断工作簿的数据类型在进行取值 不然是取不到值的会报错出异常
    //原来的celltype类型判断已经过时  这里改为用枚举类型来判断
    //下面这三种都是常见的类型
    //boolean型
    if (hssfCell.getCellTypeEnum() == CellType.BOOLEAN) {
        return String.valueOf(hssfCell.getBooleanCellValue());
        //数字类型
    } else if (hssfCell.getCellTypeEnum() == CellType.NUMERIC) {
        return String.valueOf(hssfCell.getNumericCellValue());
    } else {
        //字符串类型
        return String.valueOf(hssfCell.getStringCellValue());
    }
}

}
转换结果示意图:


可以说是很简单了


转载:https://blog.csdn.net/qq_38577164/article/details/101271443
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场