poi实现导入excel文件

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,导入功能实现 ,似不似很简单~~~,有问题欢迎留言哦

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值