============================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