poi导入指定样式的excel
pom.xml引入依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
代码
public class ImportPoiController {
public static void main(String[] args) {
//地址应该传进来,这里我直接写死
String address = "C:\\Users\\Lenovo\\Desktop\\工作簿1.xlsx";
//判断文件是否存在,不存在直接返回
File file=new File(address);
if(file.exists()){
//存在 --> 调用service层接口,接在在下面
importEmployee(address);
}else{
System.out.println("文件不存在");
}
}
/**
*
* @date 2021/4/7 16:10
* @param
* @return
*/
public static void importEmployee(String address) {
// BwEmployeeT 泛型是实体类可用HashMap代替
List<BwEmployeeT> list = new ArrayList<BwEmployeeT>();
XSSFWorkbook workbook = null;
try {
// 读取Excel文件
InputStream inputStream = new FileInputStream(address);
workbook = new XSSFWorkbook(inputStream);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
// 遍历工作表
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
Sheet hssfSheet = workbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 遍历当前工作列表的行 **注:从 1 开始循环**
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
Row hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow == null) {
continue;
}
//实体对象 可以用HashMap替换
BwEmployeeT bwEmployeeT = new BwEmployeeT();
//将当前行的每一列值 放对象中
Cell cell = hssfRow.getCell(0);
bwEmployeeT.setName(cell.getStringCellValue());
//单元格是数字时 cell.getNumericCellValue()
cell = hssfRow.getCell(1);
bwEmployeeT.setAge((int)cell.getNumericCellValue());
cell = hssfRow.getCell(2);
bwEmployeeT.setAddress(cell.getStringCellValue());
cell = hssfRow.getCell(3);
bwEmployeeT.setDepartment(cell.getStringCellValue());
//自动生成的uuid
bwEmployeeT.setId(UUID.randomUUID().toString().replace("-" , ""));
//将对象放入集合
list.add(bwEmployeeT);
}
}
//到这里就拿到了所有有数据 入库操作 根据自己实景情况写
list.forEach(bwEmployeeT -> bwEmployeeTMapper.insert(bwEmployeeT));
}
}
实体对象代码
@Data
public class BwEmployeeT {
private static final long serialVersionUID = 1L;
//主键
private String id;
//姓名
private String name;
//年龄
private Integer age;
//现住址
private String address;
//部门
private String department;
}
展示图:
数据库数据:
ok,导入功能实现 ,似不似很简单~~~,有问题欢迎留言哦